Long Tail Pre-Filters vs Post Filters

For my reference, this is a nice categorization of filters for content in Long Tails as expressed by Chris Anderson on his book The Long Tail

Pre-Filters (Old School Business Models based on Top 10s, Best Sellers)

  • Editors
  • Record Label Scouts
  • Studio Executives
  • Department store buyers
  • Marketers
  • Advertisers



  • Blogs
  • Playlists
  • Reviews
  • Customers
  • Recommendations
  • Consumers

Google Glass to enrich Google Maps/Earth with fine grained 3D Models of reality

I was imagining a world maybe 5 years from now, where there’s an insane amount of Google-Glass-like devices out there.

If Google was bold enough to map the streets with cars equipped with GPS and cameras, I think one of the top uses they must have somewhere on their master plan is to use every Glass user’s video feed to map reality to a more fine grained level. It’s easy to see how this data could be used to create 3D detailed models of every city in the world, not just out on the street, but inside buildings to provide us with navigation everywhere, outside or inside.

This will def. be another level of creepy, I foresee a battle to preserve the privacy inside homes and office once this starts happening. How do you prevent someone else from not mapping the inside of your home or house and uploading it to the web?

Finally my genome tells me where I’m from

Screen Shot 2013-06-21 at 3.59.44 PM
Sequencing my DNA in 2013 just cost me $100, exponential technological advancements in effect.

Maybe in 2 years it’ll only cost $10, and in 4 years only $1.

23andme.com rocks, I highly recommend you try this and know in advance what you can do to preserve your health and learn so much about genetics and how they define and affect you.

How to obtain the coordinates of the JTable cell a mouse is hovering over, useful for tooltips within cell renderers.

    public String getToolTipText(MouseEvent event) {
         * This is a Java Swing lesson on how to obtain the coordinates of the current cell
         * as you hover with the mouse on a JTable.
         * You cannot use the renderer component, since it seems that once the table is done
         * stamping the cells with it, the instance of the renderer is not the one under the mouse
         * as it will always yield negative coordinates, for example, our debugger showed that this
         * renderer's coordinates were always (-95,-25)...
         * What we did in this case, to show labels for the specific components inside the renderer
         * was to get the mouse coordinates, and translate its coordinates to the coordinates of the
         * current Cell Rectangle.
         * One interesting gotcha in the process is that you cannot alter the event coordinates and then
         * try to use event.getPoint() since event.getPoint() will always give you a new instance of Point
         * so we keep a copy of that Point and then translate that point.
         * tags: java, swing, table, get current cell coordinates, get table cell coordinates under mouse
        try {
            Component[] components = this.getComponents();
            Point p = event.getPoint();
            int row = table.rowAtPoint(p);
            int col = table.columnAtPoint(p);
            Rectangle currentCell = table.getCellRect(row, col, false);
            p.translate(-currentCell.x, -currentCell.y);

            for (Component c : components) {
                JComponent jc = (JComponent) c;
                if (jc.isVisible() && jc.getBounds().contains(p)) {
                    return jc.getToolTipText(event);
        } catch (Throwable t) {
            //don't risk painting the table over a tooltip
        return super.getToolTipText(event);

Browser breakdown of gubatron.com visitors, the Internet is a better place

IE only 5.47%, YES!

Screen Shot 2013-06-12 at 10.46.13 PM

Follow the geek, and you will taste the future ahead of time.

How did Google get this market share?
Let’s just say that it wasn’t only because they do have a great product, think monopolistic-like powers and a lot of bullying and dictating to partners conditions that favor the adoption of this browser over any other browser, and that’s all I’m allowed to say.

#SCALA #NOTES Difference between list.foreach() and list.map()

[scala]val l = List(1,2,3,4,5)
val lAfterForEach = l.foreach(x => x * 10)
val lAfterMap = l.map(x => x * 10)
println(“Original List: ” + l)
println(“For each operates on each element, returns nothing:” + lAfterForEach)
println(“Map is like foreach but returns new post-processed list: ” + lAfterMap)[/scala]

[bash]Original List: List(1, 2, 3, 4, 5)
For each operates on each element, returns nothing:()
Map is like foreach but returns new post-processed list: List(10, 20, 30, 40, 50)[/bash]

If I were Microsoft (Dictator) CEO for a week

(and things were hypothetically simple, no federal agencies forcing me to do certain things, sending a lot of partners to hell and deal with the lawsuits) I would…

1. Stop fucking around with the huge dominance I still have over the PC Market and milk it as it slowly seems to die.
This means, don’t try to force a touch experience to desktop users. Keep innovating on the desktop, while you move all the bullshit Metro shit to a separate “Windows Touch” that’s meant only for tablets and phones. This works great for Apple, why try to mix the two and give a shitty experience for both? why frustrate your developer community? why kill all the healthy monetizing ecosystems you have built for decades on the desktop instead of letting them evolve on their natural environment. This means putting a real Start Menu on Windows 8, not just a shortcut to metro dashboard.
I’d innovate on a better experience, on a better file system, memory management, CPU and power consumption, and the latest technologies and breakthroughs for operating system borrowing ideas from those crazy linux guys.

2. Remind myself of “Developers, Developers, Developers”. I’d look around and see that developers have been running away with all the great free options the open source community has created over the years, I’d look at my balance sheets and see that what I make on Visual Studio is peanuts, compared to all my other revenue channels and to how much money I spend on marketing and how much money I’m losing with all the developers not coming back and give Visual Studio FOR FREE!

3. Don’t fuck with the gaming Market on XBOX. React now before I lose 70% of my userbase to Sony. Remove all the bullshit restrictions regarding DRM and used games, and instead of trying to shove the console down on people’s throat with stupid marketing campaigns, if I’m going to lose money, then drop that price down and do like I did with the first Xbox. I might even consider getting rid of the Xbox Live monthly fee, somehow sony has managed to deal with these costs, I need to be competitive, specially after seeing the immediate reaction of the media and users after the PS4 has announced a bunch of non-features I’ve created out of my self imposed restrictions.

4. On Windows Phone (which should be Windows Touch) I’d add a Dalvik runtime, just like Blackberry did, and I’d make all Windows Phones compatible with Android apps, and start poaching Android developers over to Windows Phones.

New FrostWire for Android 1.0.8 out

Screenshot of the new FrostWire for Android navigation menu

A new FrostWire for Android is out on Google Play.

In this release we improved our search algorithm to include relevant search results that were being hidden in previous versions.

We’ve also made use of Square’s Picasso Image loading/caching library for displaying all the images on the user interface, resulting in less crashes due to out of memory errors we kept receiving. Now when browsing your Audio files you will be able to see the cover art of the track, making music browsing a lot friendlier.

We’ve removed ad display from the player window, no more admob ads, instead we’ll rely on the support of the community and we’ve placed a donation control which you can always turn off on the application settings.

We’ve added a new navigation menu called “Watch TV” which will either launch or take you to the android market so that you try our new app “FrostWire TV   ” to watch live TV channels (and a huge library of video on demand content). This app is still in beta testing period, we’d love for you to give it a try and give us as much feedback as you can. We’ll reveal more details about our Live TV initiatives and new partnerships on an upcoming press release. As an added bonus,

this release is compatible with OUYA, however there’s still a lot of user experience details that need to be fine tuned for better feedback on non-touch screens. Here is the full changelog:

FrostWire 1.0.8 - MAY/31/2013
 - New main menu entry to launch "FrostWire TV" app.
 - Search algorithm improvement brings better quality and missing search results.
 - Local audio files now show album art making local music browsing friendlier.
 - Fixes bug where audio player would stop instead of pausing when removing headphones.
 - Updated Image caching based on Picasso, better frame rate overall, should see
   less Out of memory error reports.
 - Fixes bug where the search cache couldn't purge old entries nor it could be deleted.
 - Fix for parsing torrents with minor mistakes in trackers list.
 - Less intensive HTML detection during torrent parsing
 - Added jdk14 logging library.
 - Fixes bug where .torrent files and magnets would not open with some file/web browsers.
 - Fixes crash reported when there is no access to the image cache folder.
 - Fixes crash initializing donations Billing Service.
 - Better description for mobile network data usage and bittorrent preferences.
 - Removed Google AdMob.
 - Added donations request component instead of ads.
 - Integrates Offercast offers on installation.
 - Experimental OUYA compatibility.