Category: Projects

  • Mobile p2p

    I had some pretty interesting thoughts this evening while making a peanut butter and jelly sandwitch. I’m not quite sure how it started, but I like where it ended up.

    What happens at the intersection of internet-ready mobile phones and peer to peer networks?  Of course when the two technologies meet, whatever you end up wtih will be fully buzzword compliant.  I’m trying to see past the buzz.  Bear with me for a minute.

    Cellular phones are finally beginning to have a decent bit of power, a real operating system, they are java-enabled, wap-enabled, and mms-enabled.  Bandwith is still an issue but it is improving all the time.  What if several peer to peer networks were developed to solve specific problems.  Let’s take a peer to peer geographic-specific network.  Everyone with a phone that is connected to the network is constantly broadcasting their location, and everyone recieves information about phones with in an n feet/mile/meter/kilometer range.  You can query a phone within your radius, request a chat, meetup, collaboration, game, prank, or anything else you can imagine.

    The only problem that I see to a system like this is bandwidth.  Peer to peer networks are notorious bandwidth hogs.  The thing I love about wireless/mobile p2p networks is that developers wound be required to write tight protocols and code to work on these limited devices.  Another thing I was thinking about was the possibility of involving servers or gateways in this mobile p2p network.  I’m pretty sure that with JXTA you can have different classes of nodes.  It shouldn’t be too hard to set up server/proxy/gateway nodes and end user nodes.  The phone deals with the gateway which broadcasts lots of bandwith and filters out anything beyond the radius specified by the phone.

    The great thing is you could have a ton of different p2p networks that do things other than share music.  You could share resources available to your phone, collections of user-taken photographs, expert information about a perticular location or topic, or anything else you can conjure up.

    I see the advantages of a mobile mob of p2p networks outweighing the costs of building the infrastructure.  I have a feeling that much of the work could be done for cheap and much of the load handled by broadband connections at home.  How would that be for disruptive?

    I think that this rant was probably triggered by the stuff that Russ said earlier today, so thanks Russ!  I definately don’t have the time to tackle a project like this right now, but I’m going to throw it on the back burner and let it simmer.  Any thoughts?

  • Coloco

    Interesting.

    I clicked on an ad at Slashdot this afternoon.  At first I thought that it was an ad for Rackspace, but it was for a company called Coloco.  Aparently they’re fairly close to me in Laurel, Maryland.  Their prices seem quite good ($50/mo for 1U colo for example).  I might have to figure out a way to justify this.  I wonder if they’re looking for any sysadmin monkeys.

  • 10-Codes Over IP Followup

    Steve Makofsky (furrygoat) gets it:

    This would be awsome. Its simple, yet an effective means for location based services. Imagine a Pocket PC Phone specifing it’s current location based on cell towers, by the current Wifi access point it’s using, or some sort of integrated GPS – with little more overhead than a standard HTTP GET.

    Yep.  Isn’t that sexy?

  • Ten Codes Over IP

    Bill Kearney thinks about oldskool CB radios and the 10 codes that were used:

    This isn’t quite syndication related. Once upon a time there was CB radio and it’s ten codes. You know, 10-4, 10-20, etc. I’m wondering how these codes might be relevant to notification/update systems. Especially with regard to query/response sessions with wireless and/or low-bandwidth devices. Being able to query for a location started this train of thought. Being able to ask/reply to a ’10-20′, for example, would be rather handy if one were doing any geo-positioned sort of stuff.

    Bill has put together an RDF schema as a thought, but I can see something like this utilized at a much lower level.  Howabout a cel phone running a minimal TCP/IP stack, a stripped down web server (with XML-RPC or SOAP built on top perhaps).  Now imagine that cel phone sending a simple HTTP request to a HTTP 10-20 query:

    HTTP/1.0 200 OK
    Date: Sat, 28 Dec 2002 13:46:23 GMT
    Server: GNokiaSrv/0.2.1
    Content-type: text/plain
    10-20: Lat: 45 35 30 Lon: -90 45 10

    Now imagine all of the wicked things that even a small horsepower processor could do with that information relative to its current location.

    Now, lets take a step back, take a look at some common 10 codes and think about the wicked things that could be done with them.

    Today’s big picture moment brought to you by the number 10 and the letter Z.

  • Java Development With Processing Power

    Matt Raible:

    I took my home-built machine into work this morning – and all was peachy until I asked the help desk to add my computer to the domain. Politics came into play and I was told that the technicians have to build the machines, not some dev-head. No biggie, just get me a faster machine I said. I argued with the guy for a bit as I tried to explain that a 700 Mhz, 128 MB RAM machine was too slow for Java Development. When he said that was one of the fastest machines they had, I almost choked. Luckily, they found a 2 Ghz machine that I get to start using tomorrow – this’ll be the 3rd machine I’ve built since I started last week. Damn. Sure is nice working from home when you have everything setup already. Do you think that tele-commuting will be the wave of the future? The clients that’ve paid me to work from home are getting a heckuva better deal than the ones that require an on-site consultant.

    One of the fastest machines they had?  Ouch.  I think I need to build a new box in the near future.  The more I use Ant and JUnit and do builds more frequently, the more free time I seem to have while things build and test.  My current win-dev box is dual PIII-733, but the quick Athlon stuff is getting really inexpensive.  Hmm…

  • Something Up My Sleeve

    I’ve got something up my sleeve.  I’ve been fiddling around with the python I need (gotta love interactivity) in order to pull it off.  It should be pretty interesting.  It should be trivial but neat.  More info as I code it.

    Python’s ftplib seems really zippy, by the way.  At least over a full-duplex 100 megabit switched network anyway.

  • If You Point to It…

    Well, if I point to enough stuff, I’m bound to help somebody.  I’ve managed to point to two projects that might help Rick (the techno weenie) open source his homebrew RSS aggregator.  Good luck, Rick.

  • AmazonLookup and BNLookup Update

    Updated AmazonLookup and BNLookup to include a redirect option instead of a popup window.  This feature was at Dan Gillmor’s request.  I’ve also released the code under the same creative commons attribution-sharealike license that Jon used for the original code.

  • AmazonLookup Bookmarklet, Now With Bonus BNLookup!

    Access an amazon detail page from your local library’s website, or any website with an ISBN in the url.

    A quick URL replacement in Jon Udell’s LibraryLookup program allows you to go an amazon detail page from any url with a single ISBN number in it.  This was a request by one of Jenny (the shifted librarian)’s friends.  So anyway, here it is:

    AmazonLookup

    AmazonLookup (Redirect)

    The usual: drag it to your ‘Links’ bar on internet explorer, go to a URL with an ISBN in it (a library page for example), click AmazonLookup, and you’re there.  I wondered how fun it would be to transport yourself from Amazon’s page about a book to Barnes and Noble’s page about the same book.  A little more URL tweaking, and we have:

    BNLookup

    BNLookup (Redirect)

    Feel free to pop by your local library’s website, pop over to Amazon, to Barnes and Noble, back to your local library, and so on.

    Update: It should now open full screen in a new window with toolbars and all that good stuff.  I have tested it with IE6, Phoenix 0.5, and Mozilla under windows.  Let me know if you have any problems.  I have licensed AmazonLookup and BNLookup under the Creative Commons Attribution-ShareAlike license.  The original work (and all of the heavy lifting) was done by Jon Udell.  These two scripts are merely a quick hack on Jon’s awesome idea.  See Jon’s recent post for details.  Redirect version added at Dan Gillmor’s request.

    Creative Commons License
    This work is licensed under a Creative Commons License.

  • Egg-Shaped Mini-ITX Case

    Wow.  This is the coolest mini-itx case I’ve ever seen.  I was checking up on Slashdot Japan this morning and saw a link to Lupo.co.jp.  The egg closes when the cd/dvd is not in use.  This is probably one of the slickest mini-itx case designs I’ve ever seen.

    Speaking of Mini-ITX, I bought a SPARCclassic (loaded with OpenBSD 3.2) at the mac junk sale on Saturday.  I was able to snag a bunch of extra stuff, including a gutted Sparc IPC case, which I think will be a perfect housing for my Mini-ITX.  I know that this case mod has been done before, I just want to get the damn thing in a case.  Yes, Greg and Kenneth, I’m finally going to put it in a case.

  • My J2ME Hello World Experience

    Yep.  I followed Colin Fahey’s guide and got his “Hello World” app to run on an emulator.  That emulator is officially the ugliest phone on earth, don’t you think?  Everything was really easy to do, and pretty much just worked.  I set up a file called “j2me.bat” which sets the environment variables that I need, and when compiling, I had to substitute “-classpath” for “-bootclasspath.”  Overall it was an extremely pleasant experience.  Maybe it’s time to take PocketBlog to the next level. 

    I want to state for the record that I glanced at Kablog the other day, though I did not look at it in depth.  I feel that this is a neccesary statement because I might end up with something similar in one way or another to Kablog, and I want to come up with something from scratch.  What I end up with will be released with source (license TBD), and I don’t want to be ripping off a well done commercial product, I want to end up with my own thing.

    Of course, I’ll keep you updated with my findings.

  • J2ME/MDIP for Motorola T720 and Others

    Slashdot:

    r0.ini writes “Nice step-by-step introduction guide on how to make that cool app for your T720.” Worth a read even if you never intend to write a program for your cell phone, for the comparison between BREW and J2ME (and implicitly between Verizon and AT&T).

    I’d like to develop for as many phones as possible without locking myself into a specific manufacturer/platform (if possible).  It looks like the article covers developing for J2ME/MDIP, so it should cover any MDIP compliant device.

    It looks like WAP is the lowest common denominator: it works on the most platforms, though it is as limiting as HTML3.01 or earlier.  Most if not almost all of your processing has to be done on the server side.  This isn’t particularly bad, thought I do have a place in my heart for tightly written compact code that gets the job done.  I think developing for J2ME/MDIP is probably a good idea, though it looks like Nokia has a well designed SDK, and MDIP is in there.

    I’d like to urge developers to stay away from vendor-specific extensions as much as possible.  Ideally, you would be able to write code that would work on both Motorola, Nokia, and other platforms.  I haven’t done any coding for MDIP phones, so I’m not sure that this is the case.  I know that some java-enabled phones have more features than others, so it would be bad to limit higher end phones to lower end features.  However, do your best to “degrade gracefully” for lesser platforms.

    I plan to work in J2ME/MDIP in the near future, and I will blog whatever I find out.

  • Jabber Journal #5 and Strucured Procrastination

    Matt Raible notes that Jabber Journal #5 is out.  Jabber is on my (long) list of things to do when I have free time.  It’s such a cool idea, a cool protocol, a cool way of doing things, I just don’t have the time yet.  Perhaps I’ll work it into a session of structured procrastination.

  • Traffic

    Whoa.  This weblog has generated over a gigabyte of traffic so far this week, and it’s not over yet.  I’ll try to post some stats tomorrow, and if this keeps up I’ll probably have to start paying more a month for web hosting.  Dave’s link and my javablog channel have both contributed to the rise in traffic.

    Welcome to my weblog if you’ve just started reading.

  • Compressed Content

    0xDECAFBAD reminds us that decompressed content is longer than compressed content.  It’s these little gotchas that I stumble with moreso than the hard stuff, and it looks like I’m not alone.

  • Kablog

    I just recieved an email from Todd Courtois from Rawthought:

    Hello,

    We’ve just released KABLOG, a blog posting tool for your PDA or smart phone device.  Based on your website postings, we thought you and your blog readers might be interested in using this software.  KABLOG runs on J2ME/MIDP 1.0-compatible devices (including Handspring Treo and PocketPC), and currently supports posting to Movable Type 2.51 or later. (It may also work with other blog servers that support a similar XMLRPC interface.)  Among other features, KABLOG allows you to write blog entries wherever you are, even when you don’t have a network connection, and upload those entries when you have network coverage.

    This shareware and more information at:

    http://www.rawthought.com/projects/kablog/
     
    Thanks for your support!

    Nice!  I like the MDIP 1.0/J2ME part.  I havent’ checked out Todd’s product, but the screenshots look pretty nice.  Congrats on the wicked project, Todd.

  • Categories!

    I’ve finally taken the plunge and enabled catagories in Radio.  I’ll be notifying javablogs soon!

  • WAPBlog

    I finally got around to implementing that proof of concept I spoke about a few days ago.  It’s a wap-based weblog editor.  I was able to post to my weblog via a email to weblog gateway while I was in florida, but it took way too many steps to be useful.  I tried to implement this a few days ago, but I stumbled across weird errors from a blogger API implementation in PHP.  This afternoon I thought I’d try again, this time in Perl.

    I hit up CPAN for Net::Blogger, which includes Net::Blogger::Engine::Userland::metaWeblog.  I stumbled around that for a little bit, as it’s been forever since I’ve used Perl for something useful.  I was able to quickly post to a test weblog from a perl script.  After that, I created a cgi script that takes info from wapblog.wml and posts it to a weblog.  Wapblog.wml is just a simple wap form and the weblog is currently hard coded in the cgi script.  A lot of stuff is hard coded and it’s quite ugly, but I will get the source out there as quicky as I can deuglify it.

    All of the heavy lifting is done by the the perl modules.  The source is about 45 lines long, but there’s lots of white space (it doesn’t look dense enough to be perl).  The WML that feeds the cgi script is about 24 lines long.  Granted, someone could do a lot more with a small cgi, but I like this solution.  It can probably be run in a hosted environment, as the only requirements are Net::Blogger and CGI.  It’s extremely lightweight.  It lets you blog on the run.  Now all I need is a cel phone with a UI that doesn’t suck.

    Here are some screenshots.  The source is now available: wapblog-0.0.1.tar.gz.  It is currently licensed under the Perl Artistic License.  That may change in the future.  Let me know if the license offends anyone.

    Logon Screen Password Entry Confirmation