Tips for making your Airport Security Line fast and friendlier to others in line.

March 29th, 2013

If you’re a geek traveler with a backpack full of gadgets, perhaps you’ve also obsesivelly thought of how to make this tedious part of travelling as fast and issue free as possible.

Here’s my ritual for the damn TSA Security Line.

I usually travel with:
- A jacket since most places I travel to are cold, or the plane cabin could be cold.
- Backpack
- My laptop.
- iPad, Kindle, SLR Camera.
- Belt for my pants, I used to not bring belts so I wouldn’t have to take them off before the line (that’s how obsessive I am about this)

BEFORE YOU GET INTO THE X-RAY CONVEYOR BELT LINE:

If you are wearing a jacket, place EVERYTHING that you have in your pant pockets (that means wallet, cellphone, keys, coins, etc) except your ID/Boarding pass on your jacket pockets, zip em up if you jacket has zippers. If you don’t have a jacket, or your jacket doesn’t have zippers in the pockets, it’s preferable that you put all these things inside one of the outer pockets of your backpack.

WHILE ON THE X-RAY CONVEYOR BELT LINE:

After you’ve given the go by the security officer and you’re about to grab the plastic trays, take your shoes, belt and jacket off and place them on a container.

Immediatly, open your backpack, take your laptop out, put it on a second container, STACK this container on top of the one holding your jacket/belt/shoes.

Then for the iPad,Kindle,SLR camera grab a third plastic container, and again, STACK IT on top of the other two, now you are carryng everything on a smaller area and more people can walk in behind you towards the x-ray machine conveyor belt.

Put your backpack ahead of the containers, and then start unstacking things in the order you prefer, I like having my jacket and shoes first, then my laptop, and then the rest, so I can put my shoes on, restack everything on the other end, and walk to the area where you can sit and re-arrange.

This way you won’t block the line after your things have been scanned and there’s less of a chance you will forget anything.

Oh, and make sure you wear white socks, you don’t want to be profiled as a crazy eastern terrorist by wearing thin black socks.

Obsessive-compulsive Cheers

Did this help you? Tip $1 Tip $2 Tip $5

Archive.org as a new search engine in FrostWire puts millions of free legal files in your hands.

March 28th, 2013

We’re currently polishing our next release of FrostWire for Android 1.0.6.

Our last release was back in November 2012, since then we’ve received crash reports and lots of complaints that have helped us make the next FrostWire for Android much more robust and compatible for the +2,600 different supported Android devices that run FrostWire on hundreds of thousands of mobile devices every day.

We’ve taken this time to make the search experience considerably faster and we’ve finally been able to integrate our search with another great source of legally free available content, Archive.org.

Archive.org is a non profit organization that crawls and indexes the web’s free content and as of the moment of this writing by having FrostWire connect to its search api you will be able to search through an astonishing number of free and legal works, here’s how they break them down on their home page today:

1,181,452 movies
114,118 live concerts
1,567,041 audio recordings
4,386,872 texts

that’s over 7,246,483 works most of which are tagged with Public Domain and Creative Commons licenses that you’ll be able to download and share with FrostWire.

Most of this content is under the Public Domain and also under Creative Commons licenses.
If FrostWire can detect the license on the content it yields on search results you will see it on screen.

And every year that passes, more works automatically fall into the public domain so you will be able to access more and more information for free absolutely legally, literally from the palm of your hand via FrostWire. We think this goes in line with our mission, and once this update is released the world will be a little better place to be in since all of you will be empowered with free digital works and culture.

Other than that we’ve fixed many crashes, freezes, lowered cpu and memory consumption (which will make your battery last more), we’ve done upgrades on almost all of the application icons, fixed issues for older phones that didn’t have SD cards the way new phones do now, bugs on the audio player and so much more.

Archive.org as a search engine, and a revamp of the search experience is also being added to FrostWire for Desktop so stay tuned for our next desktop release as well (5.5.6)

changelog

FrostWire 1.0.6 - 03/28/2013
 - Faster search results. Search architecture revised and improved.
 - Includes search results from archive.org, which indexes millions
   of public domain and creative commons works from all over the
   internet.
 - FrostWire won't disable screen locking during audio playback.
   It's now up to the user to set longer auto-locking timeouts if
   they want to use FrostWire as an audio player in their vehicles.
 - UI fix, media player screen is correctly updated if a song starts
   while the screen was locked.
 - Updated icons and graphics.
 - Improved mime type detection.
 - Updated UPnP cling libraries for better Wi-Fi sharing discovery.
 - Multiple crashes and freezes fixed.
 - Opens .torrent files from urls and from any file browser.
 - Fixes a crash when sharing files from third party apps like FileKicker
   which pass filepath uris instead of android provider uris.
 - Fixes double audio playback issue with third party media playing apps.
 - Fixes bug where the app would force close and restart on phones without SD cards.
Did this help you? Tip $1 Tip $2 Tip $5

java: How to get all the files inside a folder and its subfolders without recursion

March 19th, 2013

Most programmers will do this in a recursive fashion, but doing that is putting yourself at risk of hitting a stack overflow error, and it’s 20% slower (according to my tests). Here’s my first implementation of a method that will return just the files (cause I didn’t need the folders, you can always hack it to your needs). This is part of FrostWire for Android and FrostWire for Desktop, all the code is available under the GPL at our github repository.

/** Given a folder path it'll return all the files contained within it and it's subfolders
     * as a flat set of Files.
     * 
     * Non-recursive implementation, up to 20% faster in tests than recursive implementation. :) 
     * 
     * @author gubatron
     * @param folder
     * @param extensions If you only need certain files filtered by their extensions, use this string array (without the "."). or set to null if you want all files. e.g. ["txt","jpg"] if you only want text files and jpegs.
     * 
     * @return The set of files.
     */
    public static Collection<File> getAllFolderFiles(File folder, String[] extensions) {
        Set<File> results = new HashSet<File>();
        Stack<File> subFolders = new Stack<File>();
        File currentFolder = folder;
        while (currentFolder != null && currentFolder.isDirectory() && currentFolder.canRead()) {
            File[] fs = null;
            try {
                fs = currentFolder.listFiles();
            } catch (SecurityException e) {
            }
            
            if (fs != null && fs.length > 0) {
                for (File f : fs) {
                    if (!f.isDirectory()) {
                        if (extensions == null || FilenameUtils.isExtension(f.getName(), extensions)) {
                            results.add(f);
                        }
                    } else {
                        subFolders.push(f);
                    }
                }
            }
            
            if (!subFolders.isEmpty()) {
                currentFolder = subFolders.pop();
            } else {
                currentFolder = null;
            }
        }
        return results;
    }    

Here’s the FilenameUtils if you want the isExtension() implementation and it’s dependencies, you can always code your own there

Did this help you? Tip $1 Tip $2 Tip $5

jar dependencies if you plan to use the cling UPnP library in your android project

March 12th, 2013

This took me quite a while and lots of runtime errors, here are the minimum jars I needed to add to my project since now cling when used on android needs jetty, and damn jetty is broken into a thousand little jars for maximum modularity.

These are the one jars that I needed to not have any more runtime (class not found) errors

jetty-security-8.1.8.v20121106.jar
jetty-http-8.1.8.v20121106.jar
jetty-continuation-8.1.8.v20121106.jar
jetty-io-8.1.8.v20121106.jar
jetty-util-8.1.8.v20121106.jar
jetty-server-8.1.8.v20121106.jar
jetty-servlet-8.1.8.v20121106.jar
jetty-client-8.1.8.v20121106.jar
servlet-api-3.0.jar

Did this help you? Tip $1 Tip $2 Tip $5

How to enable adb logcat on Android 4 (debugging output)

March 4th, 2013

So you got a new Nexus or another Android running Android +4.2 and there’s no “Applications” menu entry in the settings menu.

No worries.

Go to the “About phone” entry at the bottom of settings, then scroll all the way down to the “Build number” menu entry.

Tap on it SEVEN times. (You’ll see funny “toast” messages come along)

When you go back to the main “Settings” menu, you will see a “{ } Developer options” entry.

Cheers

Did this help you? Tip $1 Tip $2 Tip $5

Skiing tips for turns

February 26th, 2013

Took a skiing lesson, I’ll write all these tips here so I can read it next year or the next time I go skiing now that it’s all fresh in my mind:

1. When it’s time to turn, don’t think about breaking with the turn, once you’ve turned the ending position of both skis will make you drop speed.

2. Always put your weight on the downhill ski, never on your uphill ski.

3. Don’t lift your uphill ski as you turn, it’s not necessary.

4. Don’t put them so close together as this will make you put weight on the uphill ski.

5. The uphill ski must barely be pressing against the snow, it should feel the same as when you slide two skis together down perpendicular to the slope from a standing position.

6. Your torso must always be facing the same way as your skis, don’t try to turn with your torso so much (as when you’re learning to turn with plows)

7. You can use your pole to turn when it’s steeper (if you don’t have to think about all the prior tips), still learning this one.

8. After you turn, try skiing on the edge of your skis.

9. If your legs start opening as you ski after the turn, shift your weight towards your downhill ski and bring your uphill closer, not the other way around (cause of falls)

10. After you can do all previous 9 without thinking, try to ski on the hill facing edges of your skis as soon as you make a turn, this is how you start training for carving. You should be leaving to thin lines of snow behind you.

Did this help you? Tip $1 Tip $2 Tip $5

How to check if a Java Process is running on any local Virtual Machine programmatically

January 30th, 2013

Quick and dirty way to check if a Java Process is already running.
Useful if you need to run cronjobs periodically and you don’t know how long they might take, you can add this check at the beginning of your main, and it’ll look for all the local virtual machines that have a main class named like the “processName” string passed to it.

In other words, a quick and dirty programatic jps-like function you can add to your util toolset.

public static boolean isJavaProcessRunning(String processName) {
        boolean result = false;
        
        try {
            HostIdentifier hostIdentifier = new HostIdentifier("local://localhost");
            MonitoredHostProvider hostProvider = new MonitoredHostProvider(hostIdentifier);
            
            MonitoredHost monitoredHost;
            try {
                monitoredHost = MonitoredHost.getMonitoredHost(hostIdentifier);
            } catch (MonitorException e1) {
                e1.printStackTrace();
                return false;
            }
            
            
            Set<Integer> activeVms = (Set<Integer>) monitoredHost.activeVms();
            int thisProcessCount = 0;
            for (Integer activeVmId : activeVms) {
                try {
                    VmIdentifier vmIdentifier = new VmIdentifier("//" + String.valueOf(activeVmId) + "?mode=r");
                    MonitoredVm monitoredVm = monitoredHost.getMonitoredVm(vmIdentifier);
                    if (monitoredVm != null) {
                        String mainClass = MonitoredVmUtil.mainClass(monitoredVm, true);
                        if (mainClass.toLowerCase().contains(processName.toLowerCase())) {
                            thisProcessCount++;
                            if (thisProcessCount > 1) {
                                result = true;
                                break;
                            }
                        }
                    }
                    
                } catch (MonitorException e) {
                    e.printStackTrace();
                }
            }
            
            
        } catch (URISyntaxException e) {
            e.printStackTrace();
        } catch (MonitorException e) {
            e.printStackTrace();
        }
        
        
        return result;
    }

Enjoy

Did this help you? Tip $1 Tip $2 Tip $5

How to Install Instagram on the Kindle Fire HD with FrostWire’s Wi-Fi file sharing

January 5th, 2013

Did this help you? Tip $1 Tip $2 Tip $5

Remee Unboxing

December 5th, 2012

Welcome to my Remee Unboxing, unlike every other night I think tonight I’ll actually want to go to bed because there might be a chance towards doing something productive or fun while I’m in temporary death mode.
Read the rest of this entry »

Did this help you? Tip $1 Tip $2 Tip $5

Can the brain of a man be programmed by man-conceived language and programmers?

December 1st, 2012

When you try to express thought, intent, backed behind some other abstract motivation as a way to cope with the boredom of “reality”, a.k.a. we’re just a bunch of fucking fancy monkeys on a spec of dust. playing a social mind/video game we that must of us somehow respect called “society”, it’s only because our advanced brains have managed to build common abstractions upon abstractions product of which we have things like the technologies that make our lives so much easier.

We’re so advanced now that we have created different conventions of thought to express ideas, some simple, some so genius that can only by understood by few but admired, adored and never really understood by the majority, e.g. nanoscale chip design, nobel prize winner discoveries, Mozart’s work, The Google Search Engine. These individuals managed to be WAY WAY more prominent than the rest, they’re so prominent in fact, that the product of their focus and work has managed to linger in the brains of many of us, ideas, constructs and abstractions so powerful that never die and that actually make it into the real world to change reality.

However, these minds of ours keep expressing their thoughts using the same conventions: Language, Math, Technology, Art, (I’ll even put Religion on this list), and languages, languages, languages, in my case the most amazing abstractions I’ve ever come up with are expressed using computer programming languages.

There’s a certain difficulty in expressing thought and logic through mathematical based logical expressions, tokens, and commands, upon which we start building all sort of high level abstractions, some that could never be matched to what most people realize reality is about.

A programming language is certainly a much lower language than the one that runs on the ultimate computer of all, the human brain.

The human brain runs such an amazing architecture that it can understand thought to such extent that we can collaborate or admire the thoughts of others, e.g. Musicians, Music Lovers, Artists, Art Lovers, Scientists, Science lovers (most geeks are in this group), Film.., you get it…

Once you realize this, you can begin to try and express what you feel or recognize from world with your own abstractions, most of them are probably impossible to expres unless someone is on your brain. I think these are the hidden lower levels, less secure levels of the programming language of the matrix. ;)

Eventually we realize that we can’t be programmed (ultimate human ego trip follows…) that we are like the center of the matrix, the one that runs that simulation, we’re just a special combination of matter in the center of the very universe, capable to start to describe itself, the more it can describe, based on what it learns, it’ll ultimate find out through the spread of thoughts like mine that WE are the creators of the universe, we’re just busy enjoying the moment a little too much now.

So life… if you are elsewhere out there, you’re just another awesome combination, confabulation of a massive amount of atoms to form conscience.

Then, if lower languages born out of such a capable computer, a computer that runs on any language and that learns instantly sometimes to repeat the motion of lots of atoms the same way (thought, cause, reaction), you must realize that it is your mind that programs the universe. Then you can control it.

Are you still up here with me? ;)

PS: And of course, you must start by trying your universe manipulating programming language (run in that brain of yours, what a cool “cpu architecture” eh?) by manipulating others to do as you please, just make sure to use them wisely. #hipnosys #massiveHipnosys

Did this help you? Tip $1 Tip $2 Tip $5



  • Categories

  • May 2013
  • April 2013
  • March 2013
  • February 2013
  • January 2013
  • December 2012
  • November 2012
  • October 2012
  • September 2012
  • July 2012
  • June 2012
  • May 2012
  • April 2012
  • March 2012
  • February 2012
  • January 2012
  • December 2011
  • November 2011
  • October 2011
  • September 2011
  • August 2011
  • June 2011
  • May 2011
  • April 2011
  • March 2011
  • February 2011
  • December 2010
  • November 2010
  • October 2010
  • September 2010
  • August 2010
  • July 2010
  • June 2010
  • May 2010
  • April 2010
  • March 2010
  • February 2010
  • January 2010
  • December 2009
  • October 2009
  • September 2009
  • July 2009
  • May 2009
  • April 2009
  • March 2009
  • February 2009
  • January 2009
  • December 2008
  • November 2008
  • October 2008
  • September 2008
  • August 2008
  • July 2008
  • June 2008
  • May 2008
  • April 2008
  • March 2008
  • February 2008
  • January 2008
  • December 2007
  • November 2007
  • October 2007
  • September 2007
  • August 2007
  • July 2007
  • June 2007
  • May 2007
  • April 2007
  • March 2007
  • February 2007
  • January 2007
  • December 2006
  • November 2006
  • October 2006
  • September 2006
  • August 2006
  • July 2006
  • June 2006
  • May 2006
  • April 2006
  • March 2006
  • February 2006
  • January 2006
  • December 2005
  • November 2005
  • October 2005
  • September 2005
  • August 2005
  • July 2005
  • June 2005
  • May 2005
  • April 2005
  • March 2005
  • February 2005
  • January 2005
  • December 2004
  • November 2004
  • October 2004