Geek T-Shirt Collection #3 - CSS Protest / wedoit4you.com

November 22nd, 2008 Add a Comment »

wedoit4you.com was one of my personal efforts from school, with it I learned a lot about web development, technology, news, and the tech industry since it was a blog before the term was even invented.

During those times, I was learning CSS, and I had to learn about centering elements, I always found it very annoying that you could float elements to the left, or to the right, but there was no “float:center”, and you had to go through all this hoops to do what in the past, we could do just by using the <center/> tag.

This is a self made tshirt, ordered at spreadshirt.com

About wedoit4you.com

More recently wedoit4you.com became a spanish podcast that reviewed the latest happenings in the Internet, Technology and entertainment industries. Me along La Tati did a series of 75 weekly episodes, until the end of the spring of 2008 where my work got pretty hectic and I couldn’t find more time to continue recording, editing, and distributing the podcasts. It reached well over 1500 weekly subscribers listening to it, and we still get mails from users asking for the podcast to come back. Maybe in 2009 :)

Leave a Reply

Java/Reflection notes: Invoking a static main() method from a dinamically loaded class.

November 22nd, 2008 Add a Comment »

Maybe for some wild reason, your Java application will need to execute a pre launcher that won’t know about the Main class it’s supposed to invoke until it’s being executed. For example, you have distributed your Java application but you used pack200 to compress your jars, and your new application launcher will unpack everything, but up to this point, it can’t do an import of the main class, since the jar that contained it, wasn’t available to the virtual machine when java was invoked.

So, your launcher class, finishes unpacking your jars, adds the jars to the current classloader, and now you need to invoke your Main.main(String[] args).

This is how I managed to do it, using Java’s reflection mechanisms

    public final void startMain(String[] args) {
        //this will create a new class loader out of all jars available, see below on next
        //code section of this blog post
        addJars2Classpath();

        try {
            //Instantiate the main class, and execute it's static main method
            Class clazz = jarsClassloader.loadClass("com.mycomp.somepackage.Main");
            Class[] argTypes = { args.getClass(), };
            Object[] passedArgs = { args };
            Method main = clazz.getMethod("main",argTypes);
            main.invoke(null, passedArgs);
        } catch (Exception e) {
            //oh oh
            e.printStackTrace();
        }

    } //startMain

In case you’re interested in how to add new Jars to the classpath during runtime, this is how I managed to do it:

    /**
     * Adds all the newly available jars to the classpath
     */
    public final void addJars2Classpath() throws Exception {
        //Create a new class loader with all the jars.
        Object[] jars = getFiles(getApplicationResourcesJavaFolder(), ".jar");
        URL[] jarUrls = new URL[jars.length];

        for (int i=0; i < jars.length; i++) {
            URL jarURL = null;

            try {
                jarURL = new URL("jar:file:"+(String) jars[i]+"!/");
            } catch (Exception e) {
                //LOG.error("Bad URL for jar ("+jarFile+"):\n"+e.toString()+" ("+jarURL+")\n");
                return;
            }

            jarUrls[i] = jarURL;
        }

        //and this guy here, is the classloader used to load
        jarsClassloader = URLClassLoader.newInstance(jarUrls);
      } //addJar2Classpath

    /**
     * Get a Object array that contains the names of the files
     * that end with 'type' on the given folderPath
     *
     * e.g
     *
     * String[] jarFiles = getFiles(".",".jar");
     *
     */
    public final Object[] getFiles(String folderPath, String type) {
        File f = new File(folderPath);

        String[] files = f.list();

        Vector results = new Vector();

        for (int i=0; i < files.length; i++) {
            if (files[i].endsWith(type)) {
                results.add((String) files[i]);
            }
        }

        if (results.size() == 0)
            return null;

        return results.toArray();
    } //getFiles

Leave a Reply

Joost shows its claws, Embedding now available

November 22nd, 2008 Add a Comment »

Here we go, Episode 35 of Bleach, embed test:

Notes to Joost developers: I had to resize the size of the embedded object, by default it was 640×360, but this is too wide for the standard blog, which usually has a 2 column layout.

It’d recommend 400×225 as the default size for most bloggers to copy and paste without further editing.

This should probably the standard embed code you should have for your users to embrace this:

<object width=”400″ height=”225″><param name=”movie” value=”http://www.joost.com/embed/37aigyt”></param><param name=”allowFullScreen” value=”true”></param><param name=”allowNetworking” value=”all”></param><param name=”allowScriptAccess” value=”always”></param><embed src=”http://www.joost.com/embed/37aigyt” type=”application/x-shockwave-flash” allowfullscreen=”true” allowscriptaccess=”always” allownetworking=”all” width=”400″ height=”225″></embed></object>

Hat tip to the Joost team for allowing embedding, I was waiting for this to start recommending content properly.

Leave a Reply

Monetizing Free Video works better in the Living Room

November 21st, 2008 Add a Comment »

Well over a year ago I asked a Joost executive why not use some of that money they recently had gotten in funding into going for the living room via Xbox or PS3. I got a politically correct answer about yes, we’ll do it eventually, but that’s not our focus right now.

In the meantime, Hulu was building their platform for the web, and 4 months later it was king of the hill. Joost then had to rethink their distribution and ditched their p2p client for an all Flash streaming based approach, which seems to start picking up traffic but the differences in the audience sizes are ridiculous. A tip for your current approach, and it has to be done a month ago: Allow non-signed users to watch your some of your content (short-clips), and allow for embedding, worked wonders for YouTube, it’d be awesome for all that niche oriented content you have. (Update Nov 22 2008: Joost has just released video embedding!)

But even though Hulu has almost 10 times more traffic now than Joost, it’s earnings are still a joke compared to the advertising earnings of Broadcast and Cable, it’s just peanuts. With Ad Spending going down, it would make sense to me as an advertiser to somehow stay in the living room, with cheaper CPM, and better targeting. Hulu & Joost on the Xbox could do that for me, if only they were available in the living room.

Netflix on the other hand, monetizes month to month, and they also saw the opportunity of getting to your living room in different ways. They’ve tried with their own $100 box, but I find the most interesting and convenient way to get an audience of at least 15 million people that spend hours and hours wasting their time in front of their TV playing video games (with barely any ads) in the Xbox console.
They give me as an Xbox Live customer yet another option to keep my Xbox Live subscription and think twice about getting the PS3 and ditching the Xbox live payments since my Netflix subscription gains added value cause I don’t have to plug my laptop anymore to the tv. Wouldn’t it be awesome to have all those Hulu and Joost shows there too?

Netflix has released their stream service this week via Xbox, and it’s exactly the way I suggested to Joost, make it a free download, negotiate with Microsoft an ad revenue agreement, I can think up so many business models from this partnership… I wish I had super powers.

In any case, pictures speak louder than words some times. I hope bizdevs at Hulu & Joost take a look at this and remotely consider this as a probably great channel for content distribution. This could be your chance to grow your audience several orders of magnite, just become a Microsoft Live developer and port your technology (wish it was as easily done as said, I know), Internet Video needs to compete in the living room, forget about mobile for now, the living room is here now.

See More pictures of my Xbox Live update experience.

Leave a Reply

Chris Pirillo reviews MyBloop.com

November 21st, 2008 Add a Comment »

Chris Pirillo has reviewed this week our Infinite Storage service MyBloop.com very positively, and he has called it “The World’s Biggest Hard Drive.

About Chris
Christopher “Chris” Joseph Pirillo (born July 26, 1973(1973-07-26)) is the founder and maintainer of Lockergnome which is a large blogging network. He spent two years hosting the TechTV television program Call for Help before parting ways with the show. He also hosted the first annual Call-for-Help-a-Thon on TechTV. He now hosts videos on several internet sites, including CNN.com, YouTube and his own website.

Chris Pirillo live streams from his home-office using Ustream technology and uses this to create YouTube videos daily with a focus on software, computers, iPhone applications, and other technology-related topics and events.

Chris Pirillo is also an avid blogger, combining his website which contains over 1,500 posts, and updating his micro-blogging accounts, such as Twitter and FriendFeed daily.

Every year, Pirillo hosts Gnomedex, a technology conference tailored to technology and blogging enthusiasts.

About MyBloop.com
MyBloop.com is a free service that allows its users to store an unlimited number of files absolutely for free. It allows for an evolving and incremental set of functionalities depending on the file types, being the more feature rich, music, playlists and picture files. It has social features, search, and several file sharing functionalities such as flash embedding, which makes it attractive to podcasters and musicians looking to host their audio files and get exposure without paying for the storage or the bandwidth.

Leave a Reply

Geek T-Shirt Collection #2 - Joost Beta T-Shirt

November 20th, 2008 Add a Comment »

A Joost beta tester T-Shirt.

About Joost
(From Wikipedia)

Joost is a system for distributing recorded TV shows and other forms of video over the Web using peer-to-peer TV technology, created by Niklas Zennström and Janus Friis (founders of Skype and Kazaa).

Joost began development in 2006. Working under the code name “The Venice Project”, Zennström and Friis assembled teams of some 150 software developers in about six cities around the world, including New York, London, Leiden and Toulouse. According to Zennström at a 25 July 2007 press conference about Skype held in Tallinn, Estonia, Joost had signed up more than a million beta testers, and its launch was scheduled for the end of 2007.

The teams are currently in negotiations with FOX networks. It has signed up with Warner Music, Indianapolis Motor Speedway Productions (Indianapolis 500, IndyCar Series) and production company Endemol for the beta.[2] In February 2007, Viacom entered into a deal with the company to distribute content from its media properties, including MTV Networks, BET and film studio Paramount Pictures.

Leave a Reply