Watch me glasshole

August 21, 2014

Some ideas concerning glass interfaces.

Idea1-From ye old tweet

Maybe this is kind of an obvious next step (or maybe it has already happened). But I think it would be really great if there was a control setup where a user put a finger on a smart watch and used recognition of minute transitions as you roll the finger to control things on the screen of something like google glass.

Idea 2- PGP key in your google glass. There is a message on a screen (not your glasses) and it shows up as encrypted gibberish. Everyone in the room whose google glasses have a paired key to the encrypted gibberish can view a live overlay of the decrypted message.

Privacy Unions: an idea

August 7, 2013

I have been kicking this around for a few months now.  The idea is to use a federation of software that controls  what information is shared about a user  (Ad-block, No-Script, Firefox, Tor) in combination with some sort of higher level group or organization of people that sign up-and-in by installing the software package in their browser. Lets call this a “Privacy Union.”

In rough, hand-waving terms you could use this concept/software package to strike a deal between the union and one of the many corporate entities that are interested in mining your data. There could be levels of tiered access, so that if you give away more data you would get more from the company.

What could you get? What could you possibly demand from a Google? Well for one thing you could ask them for your profile. Yeah google, tell me what you’ve got on me. Show me the “me model.” This might actually be good for something like Google, especially if you enable some kind of interactivity where the user can edit the profile to express their actual interests.


I have recently discovered that Mozilla Labs seems to be pursuing a project that would let users share specific interests with websites.

This idea is in that same direction, except it would take back some of what is already shared by users instead of giving out more. Privacy unions could be a valve on the outflow of information about you, your habits, and interests. I suppose you could volunteer more information (similar to above) to sweeten the pot.

To start (as part of the install) you could use something like Vortex a gamified tool to scramble your information

You could also potentially add email aliasing to the mix. The union provides you with “unlimited” email aliases that you can use to sign up for different services, make purchases etc. So when emails come back to you via that alias you know who sold your information. (not sure exactly how to work this last part in)

Browsing history, search profiles, purchase history, contacts, posts, etc. This information, in aggregate, is worth a lot of money. And most people are giving it away for free.

Giving away ideas

August 7, 2013

Its 08/07/13 ? Already?!  Its time to breathe some life into this thing. My inspiration? Well I keep this little notebook full of ideas for phone apps, science projects, schemes for taking over the world, etc. Some are great (hopefully), some are stupid, and some are impossible. Yesterday(?) Google was granted a patent for a customizable screen unlock  and this idea was in the notebook.

“So what? All someone has to do is panic-fail while unlocking their phone in an effort to capture a baby panda yawning at the zoo and they would have this idea.”

Yeah thats true. But I wrote this crappy little idea down in my notebook back in 2010 and it hasn’t done me a damn bit of good since.

“What good are ideas that you do nothing with?”

Yes, thats my thinking exactly. At worst I suppose they are a waist of energy. So this is what I’m going to use that now patented idea for–motivation. If I do something with just one item in this notebook–even give it away–then that is better than nothing (i’m trying out en dashes).

Idea 05/11/10

Android app: “Super Unlock” The way you unlock the phone launches an app. e.g. “C” for camera. Programmable.

PS I would like to give a nod to Charles Stross whose Accelerando I read (in 2003?) on a Palm Pilot while sitting on a throne of broken servers (literally). Here is to *freeing* up some ideas.

And also a shout-out to my buddy Bryan, for telling me to blog about some of my ramblings. Here goes.

the reliability of electronic annotations

July 2, 2012

Think all electronic annotations are crap? You may want to think again.

This recent article and the subsequent blog posts highlight how *smart* non-curated, electronic annotation methods can compete with (and augment) curated efforts.

Here is Iddo Freidberg’s insightful analysis

and Christophe Dessimoz’s inside scoop

Using a controlled, computer-parsable vocabulary (with some sort of structure) enables ‘smart’ electronic annotation that can consider both the information content of your annotation and the confidence of the assignment. For electronic assignment this is much better than picking between “I don’t know” and “a highly specific guess that could be wrong.”

Here is an analysis from the paper on the performance of annotations across sources used at Uniprot-goa:

Notice that larger circles tend to do better in terms of coverage and reliability (with respect to their particular category). Larger circles means more frequent, more frequent often means more general (higher in the ontology). I believe this an important aspect in ‘smart’ automated function prediction. If you are using an ontology and multiple annotation sources, you can design your electronic annotation method to make a tradeoff. The assignment can be more general and more confident (by adding evidence as you go up), while still making an improvement in the knowledge about a gene/protein. You just can’t do that with dumb text!
Also, I want to point out: this doesn’t take away from the importance of manual curation. The paper actually highlights its critical role.

“This is not to say that the curators have made themselves redundant.
On the contrary, as we highlight above, most electronic annotations
heavily rely on manually curated UniProtKB keywords and InterPro
entries. Moreover, given the essential role of curators in embedding
experimental results into ontologies, so does the present study.”

Rebroadcasting some quality signal here.

I can’t tell you how many times I have heard “electronic annotations for Gene Ontology can’t be trusted” as a condemnation of using GO assignments. As we keep accumulating genome sequence, encountering a manually curated gene will be like hitting the lottery (especially for microbes). It is great to see that some intelligent assignments are being made and steps are being taken to characterize their reliability. This article and the subsequent blog posts get a lot of things right. I especially appreciate the use of time-lapse validation, the clear understanding and accounting for the “open-world” assumption, and the creation of performance metrics *that make sense* with respect to the Gene Ontology.

In fact this performance evaluation has got me thinking about my ye old annotation code GRC *shameless plug*

The annotation code had some unsophisticated use of thresholds but it also had, what I thought, were some interesting metrics for evaluating the performance of GO assignment using a reference. It classified annotations as compatible, incompatible, and confirmed.  It went like this: for a particular annotation evaluation using a reference annotation ‘r‘. A term assignment is labelled confirmed if it coincides with or is the ancestor of a reference GO term belonging to r. A term is labelled compatible if it has as its ancestor one of the specific GO terms assigned to r. These represent potential refinements of the current annotation of the gene. A term is labelled incompatible if it does not meet the requirements to be labelled confirmed or compatible.

With respect to organizing ‘live’ non-curated annotations, before time-lapse validation can take place, I think it might be interesting to know if an electronic annotation is ‘compatible’ with the most specific curated/experimental term assigned to a protein.

Here the term “intracellular part” represents a reference function assigned to the reference gene. The terms “intracellular”, “membrane”, and “DNA helicase complex” represent possible GO term assignments and their evaluation with respect to the reference term.

Also, this ‘status’ might be a useful, additional piece of evidence to factor in when determining whether to make an electronic assignment in the first place. If the program ‘knows’ that the annotation you are about to make is ‘compatible’ with an existing experimentally derived annotation, shouldn’t that count for something?

My favorite LibreOffice extensions

April 10, 2011

#1 I have yet to test this feature in LibreOffice but calc2latex is one of the most useful extensions I have ever encountered. What does it do? Simply, it takes a table created in the spreadsheet program and converts it to a Latex table. If you have ever made a large latex table by hand then you can appreciate what a HUGE time saver the calc2latex extension can be. It is fantastic.

#2 A while back (two years ago?) I was delighted to find that OpenOffice has a presenter console that lets the presenter see his notes, a timer, and the upcoming slide separate from the presentation being given. This is extremely helpful if there is a lot of detail or some difficult to remember phrasing that is not meant for the audience. This feature has been available in Microsoft Office and Keynote for some time but it is one of those features whose addition to LibreOffice gives a strong professional touch.

Cool Sites

January 7, 2011

I recently finished teaching a college programming course. During the semester I decided to crowd source my class for websites they frequent or find interesting. Some are well known, some not so much. This is the list I got:

Escapist Magazine Zero Punctuation Funny, short video reviews of select video games

mSpot Stream your music to wherever you are on phone, browser etc. (2GB free)

Know Your Meme Documenting internet phenomena

W3schools Learn all kinds of web development

Ninite Batch installing for multiple programs

Kiva Micro-loans to developing countries (awesome)

Github Social code hosting

SDL Tutorials Programming in SDL a 2D cross-platform graphics library

Wallbase Cool wallpapers

99 bottles of beer Programs that output 99 bottles beer implemented in many different programming languages

OvertoneLabs Support network and code for programming CUI32 microcontroller

Sikuli Programming using screenshots

XIM3 Adapter for using mouse and keyboard on xbox 360

Color Scheme Designer Cool color wheel website

CodingBat Feedback programming practice for Java and Python

Reddit Social news site

Slickdeals and Bensbargains Deal hunting sites

CourtHouseNews Original news content on recent rulings (not just what gets picked up by the major news providers)

Awesome HTPC

May 13, 2009

I recently built an HTPC, media PC, media center, or what ever you want to call it. For a fairly low price I was able to put together a system that has been able to handle all my “under the TV” needs.
Around the holidays quite a few friends and family inevitably ask “What do you want for the holidays?” i.e. “What should I buy you?” This year I decided to put the parts list for my HTPC on Kaboodle and send the list around. Kaboodle works like your own personal wedding registry (replacing your spouse-to-be with that little voice that says “you NEED this”).

In coming up with the parts list I consulted several sites that specialize in media PC junk: We got served, HDTunerInfo, AVS forum, Channel8, and DesktopReview. The system I came up with actually ended up being fairly close to one that later won an award in some NewEgg competition.

AMD Athlon X2 4850e 2.5GHz Socket AM2 45W Dual-Core Processor $60

ASUS M3A78-EM AM2+/AM2 AMD 780G HDMI Micro ATX AMD Motherboard $65

Western Digital Caviar SE16  500GB 7200 RPM 16MB Cache SATA 3.0Gb/s  $60

CORSAIR 4GB (2 x 2GB) 240-Pin DDR2 SDRAM DDR2 800 (PC2 6400) $35 w/ rebate

Antec New Solution Series NSK2480 Chassis $90 w/ free shipping (Splurge)

LG Black LG Blu-ray/HD DVD-ROM & 16X DVD±R DVD Burner SATA Model $90


VGA SAPPHIRE 100255L HD4670 512M RT $82

That comes to a grand total of $617. Some of the parts were not strictly necessary but I had the benefit of acquiring many of them as gifts. The ATI HD4670 was not needed since the ASUS had an onboard ATI card, but the performance gain is tremendous over an integrated card and I have since learned that I can connect FOUR monitors to the machine using ATI’s SurroundView (using both mobo and discrete ports). The Antec case ended up being a bit bigger than I had imagined (yes the dimensions were posted). I didn’t take into account the room required to connect a butt load of cables to the back. The HDHomeRun tuner has worked well. The only hiccup I have had with it so far is that I can’t record a show if my router is “taking a break.” This has only happened once and I think it is neat to be able to watch TV on any computer via the network (though I haven’t used this yet). The HDHomeRun also has good support and compatibility with several Linux distros. I really like the way this computer ended up. If you use an old case, and cut out the Blu-Ray and extra video card, the core build of this computer ends up being alot of bang for the buck.

Kubuntu KDE 4: Where da plasmoid?

May 12, 2009

Several months ago, excited to try out the shiny new KDE 4, I upgraded to Kubuntu 8.10. Within 5 minutes (thanks to some interesting word choice on a properties menu) I had managed to delete the taskbar (the bar at the bottom) and the system tray and program launcher along with it. Unfortunately I couldn’t seem to hit the right keyword combination in my internet searching to find instructions on how to bring them back without removing my ~/.kde directory (not desirable).

I had an idea about putting a new ~/.kde folder under revision control using SVN and deleting the taskbar to see what file controls the plasmoids. Fortunately my friend in the next cube knew about bazaar (a distributed revision control system) which has an extremely low overhead compared to SVN and is very easy to use. Between the two of us we came up with the following procedure which allowed us to discover that the ~/.kde/share/config/plasma-appletsrc file controls the presence/absence of plasmoids for KDE 4.

This is what we did:

  1. Rename the ~/.kde directory to ~/.kde_bak so that a new one is created when you log out and log in. This will restore the panel at the bottom.
  2. $ cd ~/.kde/share
  3. $ bzr add .   #with bazaar installed
  4. $ bzr ci -m “Hunting for plasmoid control.”
  5. Once again delete the panel at the bottom.
  6. $ bzr status
  7. From the files that were reported as being modified we identified “plasma-appletsrc” as the likely target.
  8. $ bzr diff config/plasma-appletsrc   #that looks like the one
  9. $ bzr revert config/plasma-appletsrc
  10. Copy the prestine version of plasma-appletsrc into ~/.kde_bak/share/config
  11. Remove the current ~/.kde and restore ~/.kde_bak to its rightful place as king!
Lots of containment definitions missing from the plasma-appletsrc file corresponding to the missing task bar.

Lots of containment definitions missing from the plasma-appletsrc file corresponding to the missing task bar.

Hello world!

December 18, 2008

I have decided to document some of the  minutiae that I come across in the day to day.

  • This might keep me from figuring out the same thing twice (or three, four…lots of times)
  • Someone else might find it helpful

Next post I’m gonna kick things off by talking about laptop hard drive BS in ubuntu, upgrade problems with Kubuntu 8.10, and Nepomuk semantic desktop.