Add exported files from the Drupal dump

This commit is contained in:
R. Tyler Croy 2011-05-15 17:06:31 -07:00
parent 1568b6be8c
commit cf34472bbd
837 changed files with 10771 additions and 0 deletions

View File

@ -0,0 +1,10 @@
---
layout: post
title: Another Blog?
tags:
- Miscellaneous
created: 1167839271
---
Why would I sign up for another blog when I barely even create content for the <a href="http://stephen.paskaluk.com/blog">first one</a>? Maybe now I can keep that one clear of <a href="http://stephen.paskaluk.com/blog/?p=31">random bitching</a> and <a href="http://stephen.paskaluk.com/blog/?p=34">cell phone reviews</a>. <br>
<br>
Besides, <a href="http://www.unethicalblogger/blog/tyler">tyler</a> is one cool frood.

View File

@ -0,0 +1,12 @@
---
layout: post
title: New Blogthing
tags:
- Miscellaneous
created: 1167835958
---
After talking with <a href="http://www.hinkty.com">Phil Aaronson</a> about a recent rant of mine (<a href="http://bleepsoft.com/tyler/index.php?itemid=122">Bribing Bloggers, Better</a>) I found out that this domain was available and couldn't resist the temptation. I've been meaning to move to a Drupal-based blogthing for quite some time, and the perfect storm of the domain being available and having a brief moment of free time combined with $9 led to the creation of <a href="http://www.unethicalblogger.com">unethical blogger</a>. <br>
<br>
My own personal blog URL on the site is <a href="http://www.unethicalblogger.com/blog/tyler">http://www.unethicalblogger.com/blog/tyler</a> and I've left open user registration, so you too can have an unethical blog! For example, if I were a Vista shill, I could magically register the username "vistashill" and have an unethical blog at http://www.unethicalblogger.com/blog/vistashill and well, you get the point. I'm going to leave this open and see where it takes me, I am not putting ads on this site, but I must mention the hosting is provided ever-so-graciously by my (good?) friend <a href="http://dave.redterror.net">Dave Steinberg</a> over at <a href="http://www.geekisp.com">GeekISP</a> (GeekISP also happens to host the <a href="http://trac.geekisp.com/bleep">bleep subversion repository</a>, amongst other things). <br>
<br>
I've had better, but I've also had much worse ideas, we'll see where unethical blogging takes me.

View File

@ -0,0 +1,16 @@
---
layout: post
title: scp(1) resume
tags:
- Miscellaneous
created: 1167841754
---
I came across <a href="http://joen.dk/wordpress/?p=34">this blog posting</a> yesterday and figured I'd relay it because all of a sudden it's changed how I transfer large files. While scp(1) doesn't support resuming, but rsync(1) does and in a very <a href="http://en.wikipedia.org/wiki/Captain_Planet">Captain Planet</a>-esque fashion, their combined powers allow for secure, resumable file transfers. <br>
<br>
By adding the following alias to .profile you can easily switch from the stock-scp to a resumable one: <br>
<code>alias scpresume="rsync --partial --progress --rsh=ssh"</code> <br>
<br>
It's then just a matter of using "scpresume" where I would use scp(1): <br>
<code>intellian% scpresume medahugefile.tar.gz remotehost:</code> <br>
<br>
This shouldn't incur too much overhead, but it sure makes large transfers much less painfull on a bad home-user uplink.

View File

@ -0,0 +1,30 @@
---
layout: post
title: Dear HP, Fall On Something Sharp
tags:
- Opinion
created: 1167940808
---
I may be too young to remember a Hewlett-Packard that actually <em>innovated</em> and hired engineers to do more than design crap personal computers, and crappier printers. Like an absolute dolt, I assumed this HP LaserJet 1020 would somehow be different. This time, things would some how work. This time, I wouldn't let myself be suckered in by the promise of quick, efficient printing. <br>
<br>
This time, I would be duped again. <br>
<br>
This printing saga started with an HP Photosmart C3100, a printer that somebdoy thought the all-in-one-ness of the printer would be a great choice, and by golly, the box says it supports Mac OS X! What a gullible chud I turned out to be. As I sat looking at the HP Printer Setup Utility on the right side of my screen complaining that it could not find the printer on the USB bus, and the Mac OS X Printer Setup Utility on the left side of my screen properly finding and identifying the printer on the USB bus, I honestly felt a little part of my soul curling into a ball and just dying. To make things worse, this was on a PowerPC Mac, who knows what sort of explosive chemical reactions might of occurred if I had trying this with my Intel Mac. <br>
<br>
Fast forward at least a year, to a poorly lit apartment in north-western San Antonio. A tall man stares blankly at a printer recently removed from the styrofoam entombing it, wondering first why there is a power cable included in the box but no USB cable, then progressing along to the toner cartridge which has no directions, nor indication on how it is to be inserted into the beast of a printer that lay before him. As with most peripherals purchased from anywhere but an Apple Store, this device may or may not work with Mac OS X (after looking online, the HP LaserJet 1020 apparently can be used <a href="http://www.edtechworld.com/?p=229">from Mac OS X with a 1022 driver</a>). After installing the 1022 driver from the HP.com website, precocious hope is quickly replaced by a subdued rage as the gorgeous 20" screen dims and a message that means nothing other than "restart" is displayed in the center. Shortly after reaching behind the screen and pressing the power button, the message <a href="http://farm1.static.flickr.com/125/340924684_1095df3b14_b.jpg" rel="lightbox">is displayed again</a> as the machine boots up. The device is angrily moved from one end of the office to the other and plugged into a hideous looking Dell machine lying tucked away, following a brief install process, the device succeeds in printing a "Windows Test Page" to verify its functionality, and nothing more. <br>
<br>
Fast forward another couple of days, my attempts to print a PDF from within Mail.app are greeted with a similar subdued anger staring at a crash report from Mail.app and a stack trace that contains the following: <br>
<code> <br>
Thread 0 Crashed: <br>
0 com.apple.CoreFoundation 0x90859b76 CFBundleCopyLocalizedString + 106 <br>
1 com.hp.framework.imaging 0x0eec21f2 AResAccess::CopyExplanationString(ExpType, __CFString const*, short, unsigned char) + 152 <br>
2 com.hp.framework.imaging 0x0eec3b72 AControl::CopyDescriptionString(__CFString const*, __CFString const*) + 132 <br>
3 com.hp.framework.imaging 0x0eec382f AControl::InitDescriptions(OpaqueControlRef*) + 61 <br>
4 com.hp.framework.imaging 0x0eec2b38 ABooleanControl::ABooleanControl[in-charge](__CFString const*, AAccess*, OpaqueControlRef*) + 46 <br>
5 com.hp.framework.imaging 0x0eec4a17 AControl::ControlFactory(AAccess*, __CFString const*, OpaqueControlRef*, int) + 313 <br>
6 com.hp.framework.imaging 0x0eec4fbf AControlGroup::AddNewControl(ADataProvider*, __CFString const*, int) + 83 <br>
</code> <br>
<br>
I now have an HP LaserJet 1020, sitting on the counter that won't print from Windows, Mac OS X, or any Linux I've tried. Excluding Mac OS X/intel, all the OSes properly identify and configure the device, but that's about as far as any of them can go before meeting the iron curtain HP has wrapped around their miserable hardware and software. I have a feeling that the HP iPod was the last device that Hewlett-Packard sold that actually worked, everything I've either purchased, or come across of theirs certainly doesn't. <br>
<br>
R.I.P. Hewlett-Packard; at one point it did grand things in the industry, only to die a slow, suffocating death from its own desire to compete in a flooded commodity PC and printer market.

View File

@ -0,0 +1,16 @@
---
layout: post
title: Going on Tour
tags:
- Miscellaneous
created: 1167912576
---
I have mentioned this to a few people already, but I will be attending te <a href="http://macworldexpo.com">MacWorld Expo</a> this year. Unfortunately the project I have been hustling to attempt to finish in time for MacWorld will not be done until late january/february, so I'll be schmoozing and talking it up at MacWorld, and walking around with a big dunce hat on my head. <br>
<br>
<center><a href="http://unethicalblogger.com/files/tourmap.png" rel="lightbox" title="The Tour Map">The Tour Map</a></center> <br>
<br>
True to my inherent nature (see: dunce), I will be packing the bleep roadshow into my super-mega-awesome VW Jetta and driving from San Antonio to San Francisco. What does this mean for you I bet you're contemplating, well, a one time opportunity not only to meet <strong>me</strong> (a rare honor only bestowed various hiring managers and women of the night) but you too can buy me a beer, lunch, or dinner! If you're a Mac/Mono developer and just happen to either be in San Francisco next week, or along the way, drop me an email (tyler@bleepsoft.com) and I'd be more than happy to stop in $CITY long enough to grab a bite to eat. <br>
<br>
I'm not completely sure what to expect, nor how to schedule my time while there. I'm thinking about forgoing buying a "Users Conference" ticket or a "MacIT Conference" since it seems to be as large a waste of money as lighting my January rent payment on fire. Right now I'm planning on buying an exhibit hall ticket, bringing a stack of business cards, and resum&eacute;s and seeing how many people I can meet. <br>
<br>
Again, if you're going to be there, let me know. The bleep roadshow departs early on the 7th, so my email will be hit and miss en route.

View File

@ -0,0 +1,10 @@
---
layout: post
title: Academic Masochism
tags:
- Academia
created: 1168016950
---
Interesting <a href="http://www.groklaw.net/article.php?story=20070104173624769">post on Groklaw</a> about freely available "courseware". The <a href="http://www.ocwconsortium.org/index.html">OpenCourseWare Consortium</a> seems like a fantastic idea to me. Academia is really all about sharing knowledge. <br>
<br>
I've already bookmarked the <a href="http://ocw.mit.edu/OcwWeb/Mechanical-Engineering/index.htm">MIT Mechanical Engineering page</a>, though I can usually find comparable material in <a href="http://www.engineering.ualberta.ca/mece/">my own department</a>.

View File

@ -0,0 +1,14 @@
---
layout: post
title: Roadshow Departing
tags:
- Miscellaneous
created: 1168127995
---
Over 3,500 miles. <br>
<br>
Over 27 hours of driving. <br>
<br>
One big Mac conference to attend. <br>
<br>
This is absolutely insane.

View File

@ -0,0 +1,14 @@
---
layout: post
title: Texas is bloody big
tags:
- Miscellaneous
created: 1168148632
---
Almost exactly 333 miles into this trip, and I find myself sitting at a texas rest area (free wireless!). I stopped here about 50% because of the free wireless, and about 50% because I really wanted to see what it felt like to go to the bathroom in 30 degree temperatures. <br>
<br>
Unfortunately, thus far the coolest things I've seen are, something on fire on the side of the road, and the moon. West texas isn't really all that exciting. I better get back to cruising though, El Paso is something like 260 miles from here. <br>
<br>
I don't plan on making regular blogging stops, this one just happens to coincide with a more biological deadline. <br>
<br>
Hoping to be through New Mexico by sun up. Eep. <br>

View File

@ -0,0 +1,8 @@
---
layout: post
title: Meeting a Comic Genius
tags:
- Media
created: 1168360432
---
Yesterday afternoon at the <a href="http://stephen.paskaluk.com/gallery/FlashFire">Flash Fire Facility</a> we got a visit from <a href="http://www.cbc.ca/mercerreport/">Rick Mercer</a>. Since it won't be airing for a week or so (and thankfully I won't be in it) I won't yet comment on the stuff we did, but it was pretty cool. It was a lot more fun than some of the other TV spots we've done (local news, <a href="http://www.discoverychannel.ca/dailyplanet/">Daily Planet</a>). Rick was pretty cool, and needless to say very funny. I'd invite him over for a BBQ anyday.

View File

@ -0,0 +1,21 @@
---
layout: post
title: It's Just Diddy
tags:
- Opinion
created: 1168471055
---
I suppose I will really never be able to fulfill my childhood dream of working for Apple Computer, Inc. Bummer. The changing of the name from <em>Apple Computer, Inc.</em> to <em>Apple, Inc.</em> is certainly symbolic, but I think carries far more weight in the industry than anybody is really giving credence. <br>
<br>
Over five years ago, Apple <strong>told</strong> us that the Mac was becoming/is the digital media hub. They <strong>told</strong> us that the Mac was going to be the center of our digital life, and like a dropping a penny into an empty well, nothing happened. A glance of the industry as a whole is almost sickening in terms of the void that just didn't get filled. Apple should not have needed to create the iPod. Apple should not have needed to create the iPhone. To paraphrase what Steve Jobs said to a reporter from CNBC "<em>we create products we want to [need/]use</em>." Apple is slowly learning what John D. Rockefeller learned over a hundred years ago, vertical mergers will make you obscenely rich, or to put it more succinctly in terms of Apple's situation, you cannot trust the rest of the industry "figure it out." The Nomad Jukebox is a decent device, but it doesn't integrate into the rest of my "digital life" like the iPod did when it came out. The Motorola Razr, or the Blackberry are all nice devices, they sleek, they have appeal, but they <strong>just suck</strong>. The software is miserable, and they don't <em>integrate</em> like the iPhone does/will, so they're doomed to play the second-fiddle that Microsoft is finding itself playing with regards to the Zune. <br>
<br>
Moving from Apple Computer to just Apple is a weighty change at least in terms of the company mindset that should have the rest of the industry <strong>scared sh#$less</strong>. Apple is moving away from just computers to something most Mac OS X users have become familiar with, the <em>experience</em> which they have excelled and building with iPhoto, iMovie, iTunes, and the peripherals to go with them. While Microsoft did beat Apple into the living room with the original XBox (I know a number of people that use their first gen XBoxes as both DVD players and media hubs), appleTV has some catching up to do, but has something Microsoft doesn't (besides the religious fanbase), the "experience" necessary to get every joe and smoe type to not only desire an appleTV, but actually use it. <br>
<br>
The iPhone is a good example of Apple's power to look at an existing market and completely change the "level of play" required to compete in that market, and do it in such a way that everybody from Main Street to Wall Street is now paying attention. <br>
<br>
<br>
That's officially my one, requisite, Macworld 2007 blog posting. I'll finish with this image, courtesy of <a href="http://www.stuffonfire.com">David Young's</b> blog. <br>
<br>
<center><a href="http://unethicalblogger.com/files/aapl-rimm.png" rel="lightbox">AAPL vs. RIMM</a> <br>
<br>
pwned</center> <br>

View File

@ -0,0 +1,12 @@
---
layout: post
title: Emission, Coming Soon
tags:
- Cocoa
created: 1168542122
---
As some of you (both rather) may have noticed, the <a href="http://bleepsoft.com/">bleepsoft.com</a> homepage is a bit different these days. <br>
<br>
In the very near future bleep will be releasing an application called "Emission" that, besides the cool icon, will certainly change how I work with the wide array of people across the globe that I deal with on a daily basis. <br>
<br>
As a lot of the network core is still unwritten (yes, it's very network-ey), so I'm not going to disclose too many details, but check out the site, <a href="http://www.devixdesign.com/wlog/">Fernando Lins</a> has done a fantastic job on the icon.

View File

@ -0,0 +1,20 @@
---
layout: post
title: Being White Rocks
tags:
- Opinion
created: 1168930180
---
On my recent trip back from <a href="http://unethicalblogger.com/posts/tyler/roadshow_departing">road trip</a>, I couldn't help but appreciate Chris Rock's commentary on "being white" when he said "I always viewed being white like always having five bucks in your pocket." <br>
<br>
Sitting in line at a border patrol station just east of El Paso, I watched a hispanic family in a van get inspected relatively thoroughly, and couldn't help but giggle at the "inspection" that awaited me: <br>
<strong>Are you a U.S. citizen?</strong> <br>
<em>arrrrrrr</em> <br>
<strong>...Is that a yes or a no?</strong> <br>
<em>yes.</em> (-_-) <br>
<strong>Have a nice day.</strong> <br>
<br>
<br>
I feel secure. <br>
<br>

View File

@ -0,0 +1,12 @@
---
layout: post
title: Cocoa Radio, I'm Almost Relevant
tags:
- Cocoa
created: 1168934782
---
Through some twist of fate, I was <a href="http://www.cocoaradio.com/2007/01/cocoaradio_mwsf_2.html">interviewed on Cocoa Radio</a>. I think I managed to maintain some semblance of competence throughout the interview until some random fellow sat really close to Blake and I and threw my concentration. <br>
<br>
It was pretty fun, Blake and I hung out most of the week (I even rescued him from the airport in <a href="http://flickr.com/photos/philaaronson/356041889/in/photostream/">blue lightning</a> on thursday) so doing the interview was a bit weird, as we talk regularly. <br>
<br>
And thus begins my long hard trek into the public consciousness; I'll be super-famous, just like Sting, you'll see.

View File

@ -0,0 +1,12 @@
---
layout: post
title: Howdy?
tags:
- Opinion
created: 1169143399
---
So today I began what I hope is a great experience at Texas A&M University, but as I walk through the freezing cold weather and enter my first class I realize I have entered a different world. This has nothing to do with the amout of work or toughieness of the classes ( liked my bushism there... heh heh), its getting used to saying Howdy. Howdy, who the dues says howdy...., people dont say hi here, they say howdy.... what is with this, plus depending on how you say it howdy can sound very (insert brokeback mountain joke here). Well lets just hope things work out, i may just revolt and just say, hi. <br>
<br>
whatever <br>
<br>
As always I am the roy

View File

@ -0,0 +1,18 @@
---
layout: post
title: Educating Engineers
tags:
- Academia
created: 1169228449
---
Found an <a href="http://www.itworld.com/Career/3710/061201schoolshift/pfindex.html">interesting article</a> (through <a href="http://ask.slashdot.org/askslashdot/07/01/18/2313232.shtml">slashdot</a>) on how we should be educating engineering students. The bird's eye view is that students should come out of school with the ability to continue learning rather than some specific skillset. The slashdot discussion and the article really cover mostly different ground on the subject, with the comments on /. debating the pros and cons of teaching engineers as thinkers or trades-people and the original article focusing more on how the education of thinkers can be done. Of course this isn't limited to engineering, any really good Comp. Sci. program runs the same give-and-take between teaching students to program and teaching them how to solve problems. <br>
<br>
I don't really think there's necessarily a right answer in any of this. At this point in time it seems to me like the market for Engineers as workers with a certain skill set is notably present (and I'm going to entirely avoid the debate about whether that is right or wrong), while there is undeniable value in being able to apply knowledge outside of a specific skill set (I'm also going to avoid debate about whether this can be taught). <br>
<br>
My own career, thus far, has been a case study in why problem solving is more important than specific skills. I am a graduate of the <a href="http://www.engineering.ualberta.ca/ece/nav03.cfm?nav03=25632&nav02=25630&nav01=24055">Computer Engineering Co-op program at the University of Alberta</a>. Of my five terms of "Work Experience" I spent the first three doing PLC programming, circuit diagrams (in AutoCAD), and specification and ordering of parts for industrial control systems. My last two were spent doing data acquisition programming in Visual Basic in a direct precursor to my current position, which is a mix of Windows programming, putting together custom experiments, and heat transfer research. I'm also preparing to begin a M.Sc. degree in Mechanical Engineering. <br>
<br>
The common theme in all of this is that none of my day-to-day work heavily involves anything I learned as a skill in my undergraduate degree, though I admit I haven't followed an entirely traditional career progression. I heard a Faculty member whom I have a tremendous amount of respect for answer the question "What qualities do you look for when you're looking for graduate students?" with something like "I like to see how they react to problems outside of their comfort zone." Of course he elaborated more on that, and the point was that it much more important for the student to be able to figure out something than to recite something. He also noted that you can get very different solutions to a problem from someone who solves it using a well-trained skill and someone who solves it with ingenuity, reasoning, and research. <br>
<br>
Getting back to the article, I really think the term "meta-skills" is fantastic. While you learn skill in a program (and that's inevitable, most concepts in applied science and engineering are taught through some usable skill) the important thing isn't necessarily the skill or even the concept (which set the "trajectory" talked about in the article), but the ability to turn learning skills and concepts into a skill in itself. I think the article essentially skips the most important part of making that happen for students, telling them directly what they should be gaining. All the hand-on activity in small groups in the world isn't going to help them make that leap if they just see it as another lab assignment in a course that's only marginally (if that) related to the job they hope to have when they graduate. <br>
<br>
As for the slashdot discussion, while interesting, I think it misses the point by focusing on theory vs. application. As many comments correctly point out, both theoretical understanding and practical ability are important, but in the context of the articles theories and concepts are simply another skill learned. A high level mathematics theory is every bit as narrow as a single programming language if the person who knows that skill doesn't have the ability to work outside their "comfort zone". Versatility is key. But like I said, the discussion is pretty interesting. I've noticed quite <a href="http://ask.slashdot.org/comments.pl?sid=217670&cid=17676760">a</a> <a href="http://ask.slashdot.org/comments.pl?sid=217670&cid=17674940">few</a> <a href="http://ask.slashdot.org/comments.pl?sid=217670&cid=17674306">interesting</a> <a href="http://ask.slashdot.org/comments.pl?sid=217670&cid=17675900">comments</a>. As a note on that last comment, it is fairly similar to (albeit longer) the engineering program <a href="http://www.engineering.ualberta.ca">here</a>. All engineers here take a common first year, specialize in years 2-4 (while still taking cross-discipline courses), then have to practice as an E.I.T. for years (a residency of sorts) before being able apply to become a Professional Engineer (which is a term whose use is legally restricted).

View File

@ -0,0 +1,33 @@
---
layout: post
title: Baby, I'll Panic Your Kernel Anytime
tags:
- Software Development
created: 1169339883
---
I've been experiencing a kernel panic for the past couple weeks, sporadically, but I've finally come up with a reliable set of reproduction steps (for my set up anyways). I have a nagging feeling it has something to do with the Parallels Kernel Extensions (specifically the pseudo-networking devices). <br>
<br>
The basics of my kernel panic are as follows, for purposes of demonstration, let's pretend Mac[0] is the machine you feel like kernel panicing, and Mac[1] is some other machine sitting around causing trouble: <br>
<ol><li>On Mac[0] enable "Personal File Sharing" (i.e. turn on Apple File Sharing)</li> <br>
<li>Using Mac[1], mount an AFP share from Mac[0].</li> <br>
<li>Transfer a large file (ISO, DMG, pr0n.mp4) from Mac[0] to Mac[1].</li> <br>
<li>Unmount the shared volume on Mac[1]</li> <br>
<li>Watch Mac[0] go grey <a href="http://farm1.static.flickr.com/51/146561939_a61d4340e5_o.jpg" rel="lightbox">like this</a>.</li></ol> <br>
<!--break--> <br>
I've been able to reproduce this at the login screen for Mac[0], all the way up to full interactivity (running iTunes, Xcode, etc). In my office, Mac[0] is a 20" intel iMac, whereas Mac[1] is a 12" PowerBook G4. If I had more machines to test with, I'm sure I'd be able to reproduce it there as well. I find it very unlikely that the Apple drivers are kernel panicing my box (see crash logs at end of post), as Apple's IOKit drivers seem to be <strong>very</strong> solid, so I'm guessing that it is related to the Parallels kernel extensions (.kext). A brief look at kextstat(8) returns this:<code> <br>
intellian:~ tyler$ kextstat | grep parallels <br>
79 0 0x8d4000 0x5000 0x4000 com.parallels.kext.ConnectUSB (2.5.0) <33 11 6 5 4 3> <br>
91 0 0x8d9000 0x6000 0x5000 com.parallels.kext.Pvsnet (2.2) <5 4 3 2> <br>
101 0 0x6bd000 0x14000 0x13000 com.parallels.kext.hypervisor (2.2) <11 6 5 4 3 2> <br>
102 0 0x9ed000 0xa000 0x9000 com.parallels.kext.vmmain (2.2) <11 6 5 4 3 2> <br>
103 0 0x4a10d000 0x3000 0x2000 com.parallels.kext.Pvsvnic (2.2) <36 4 3> <br>
</code> <br>
Regardless of whether or not Parallels is running, to ensure I don't come off as a Parallels-basher (even if I really am), VMWare leaves kernel extensions loaded when VMWare Fusion isn't running as well:<code> <br>
intellian:~ tyler$ kextstat | grep vmware <br>
95 0 0x48fe5000 0x1b000 0x1a000 com.vmware.kext.vmmon (1.0.0d1) <11 5 4 3 2> <br>
99 0 0x48d7f000 0x5000 0x4000 com.vmware.kext.vmioplug (1.0.0d1) <33 19 5 4 3> <br>
100 0 0x48b74000 0x5000 0x4000 com.vmware.kext.vmnet (1.0.0d1) <5 4 3 2></code> <br>
Anyways, back on topic. Given the inherently cryptic crash logs that a kernel panic will leave behind (if any), it's hard to truly tell what is causing the panic. As much as I like to fantasize about becoming an &uuml;ber 1337 kernel haxx0r, I simply haven't the time to whip out a firewire cable, and use Mac[1] as a debugging console to reproduce and crash my main workstation (Mac[0]). <br>
<br>
As a software developer however, I'm a bit annoyed that these virtualization applications (Parallels, VMWare) are leaving KEXTs loaded into kernel space even when they're not running, leaving the door wide open to crashes like this one. Unfortunately, a kernel is only as strong as it's weakest link/kext, if one of the KEXTs crash in the spectacular fashion in which they normally do, they can bring down an entire system, possibly leaving a lone developer in central Texas with no other options than to crack open a beer shortly after lunch. <br>
<br>

View File

@ -0,0 +1,13 @@
---
layout: post
title: How To Ruin A Publicly Traded Company
tags:
- Software Development
created: 1169343041
---
<strong>Step 1:</strong> <A href="http://www.sco.com/products/unixware714/">Stop developing a product</a> <br>
<strong>Step 2:</strong> <a href="http://ir.sco.com/ReleaseDetail.cfm?ReleaseID=83558">Put a complete imbecile in charge</a>. <br>
<strong>Step 3:</strong> <A href="http://ir.sco.com/ReleaseDetail.cfm?ReleaseID=103273">Bring a lawsuit against one of the largest technology companies on the planet</a>. <br>
<strong>Step 4:</strong> <a href="http://unethicalblogger.com/files/z.png" rel="lightbox">Watch as hilarity ensues</a>. (<a href="http://finance.yahoo.com/q/bc?s=SCOX&t=my&l=off&z=l&q=l&c=">taken from here</a>) <br>
<br>
$1.08 a share, the stock market is a fickle bitch.

View File

@ -0,0 +1,12 @@
---
layout: post
title: iChat hates me
tags:
- Media
created: 1169442498
---
Many Mac users around the world are having problems using video chat on iChat AV. The problem is routers or so I hear, every time I try to video chat with some ( sometimes video chat works) i get an error message concerning a communication error -8. When typed into google, there are several people with my same problem, why can't iChat love everyone equally, does it just hate mexicans. Why can't I hit Video Chat and it just works, I can just hope the new OS can fix this or someone can help me. <br>
<br>
Sorry Apple I just had to say it, <br>
<br>
Roy

View File

@ -0,0 +1,12 @@
---
layout: post
title: Mono Incorporated
tags:
- Mono
created: 1169370753
---
I recently posted this: <a href="http://www.bleepconsulting.com/clients/asi">Customer Brief: Autonomic Software, Inc</a> to the <a href="http://www.bleepconsulting.com">bleep consulting</a> site. While I cannot disclose too much about how "we have done what we have done" I can say that I used the <A href="http://www.mono-project.com">Mono</a> runtime to allow for them to deploy their software onto both Mac OS X and Linux. <br>
<br>
When deploying at a client site recently, I used <a href="http://developer.apple.com/documentation/Darwin/Reference/Manpages/man1/packagemaker.1.html">Package Maker</a> to build a meta-package to install Mono.framework and their software simultaneously. Using the power of <a href="http://developer.apple.com/documentation/Darwin/Reference/ManPages/man8/launchd.8.html">launchd(8)</a> the installer installed a LaunchDaemon job file (.plist) and started the job with launchctl all from within the installer. On the Linux side of things <a href="http://rsync.samba.org/">rsync(1)</a> to sync things into the appropriate places and then fire off the init.d script. <br>
<br>
Overall it's been quite an interesting experience bringing <A href="http://www.mono-project.com">Mono</a> into the corporate world; it's almost like you're telling somebody something that's too good to be true: "wait, I can run this under .NET on Windows, and Mono on everything else? Really?" Unfortunately because of my NDA, I can't disclose too much about the actual project, but it's certainly proved that not only is Mono "enterprise ready," it is probably a better choice to write and deploy software than most other cross-platform frameworks out there.

View File

@ -0,0 +1,8 @@
---
layout: post
title: Get Your Dance On
tags:
- Media
created: 1169521713
---
Now that I've finally figured out where I know <a href="http://semistereo.com">Zach Hale</a> from (via <a href="http://cdevroe.com/">Colin</a> it seems) I wanted to link to <a href="http://poorleno.com/">his mixtape-blog</a>. It''s an idea I've thought about before, but never taken the initiative to do, so golf claps are in order for Zach. Anyways, they're some great mixes with lots of artists you probably haven't been introduced to just yet, check it out over on <a href="http://poorleno.com/">poorleno.com</a>

View File

@ -0,0 +1,14 @@
---
layout: post
title: No Really, What Are You Doing?
tags:
- Miscellaneous
created: 1169523025
---
Like an idiot-moth to a bright lamp, I've somehow been sucked into the <a href="http://twitter.com">latest social web 2.0 zomgzomg craze</a>, I think it's just a subconscious geek's desire to be cool, but regardless, you can find my twitter stream at <a href="http://twitter.com/agentdero">twitter.com/agentdero</a>. <br>
<br>
Most of what's attracted me to the site has been their <strong>very</strong> simple API, which has allowed me to get an application called "Twitterer" up and running in less than a few hours (<a href="http://farm1.static.flickr.com/134/365711838_09664f372f_o.png" rel="lightbox">1</a>, <a href="http://farm1.static.flickr.com/113/364696806_cbc6994d0f_o.png" rel="lightbox">2</a>, <a href="http://farm1.static.flickr.com/184/364696788_eb29e53182_o.png" rel="lightbox">3</a>). I've not yet released it (no icon!) but i've been using it for the past two days and am quite pleased with it (if I may say so myself). In fact, if you have read this before, you might notice a recent trend in posts about webservices...ahem. <br>
<br>
Twitter allows the masses to finally answer the question "what are you doing?" <br>
<br>
To which the masses can reply in a most resounding fashion "nothin really."

View File

@ -0,0 +1,14 @@
---
layout: post
title: WebServicesCore, On The Radar Screen
tags:
- Cocoa
created: 1169471640
---
A little birdie chirped into my email wondering what the radar number for my previous <a href="http://unethicalblogger.com/posts/tyler/webservicescore_why_hath_thou_forsaken_me">gripings about WebServicesCore</a>, and I figured that for all one of the Apple employees that actually read my inane bullshit, behold: <br>
<br>
Radar <a href="rdar://problem/4945073">#4945073</a> ("WebServicesCore lacks support for basic HTTP authentication") <br>
<br>
Let's all cross our fingers and hope for a much needed update to WebServicesCore. If all else fails, we can tap our <a href="http://unethicalblogger.com/files/apple_shoes.jpg" rel="lightbox">shoes</a> together and wish for a new web services API right? <br>
<br>
<small>(What's that weird <a href="http://rentzsch.com/notes/rdarUrls">rdar url</a>?)</small>

View File

@ -0,0 +1,22 @@
---
layout: post
title: WebServicesCore, Why Hath Thou Forsaken Me
tags:
- Cocoa
created: 1169465965
---
I've been hacking around with more webservices-based applications recently (<a href="http://flickr.com/photos/agentdero/tags/twitterer/">Twitterer</a> for example) and I've also reminded myself what an utter pain in the ass they can be in Cocoa. With <a href="http://twitter.com/">twitter</a>, they make available both JSON and XML-based webservices, which is good since they use basic HTTP authentication for their user-specific webservices (i.e. everything but retrieving the public timeline). The XML-based webservices are more or less straight-forward to hack up with Cocoa, all one really needs to do is write a parser (<a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSXMLDocument_Class/Reference/Reference.html">NSXMLDocument</a>) and then make use of the URL loading classes (<a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSURLConnection_Class/Reference/Reference.html#//apple_ref/doc/uid/20001697">NSURLConnection</a>, <a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSMutableURLRequest_Class/Reference/Reference.html#//apple_ref/doc/uid/20001696">NSMutableURLRequest</a>) to retrieve and process, or POST data. This method of interacting with "webservices" (more <a href="http://www.gnu.org/software/wget/">wgetting</a> than anything else) is rudimentary at best, and in my personal opinion, isn't as robust as SOAP webservices are. It does however, work. Regardless of the framework, programming language, or geo-orbital location of the moon, they will work because all you're doing is making an HTTP GET and then parsing the results. <br>
<br>
The benefit of SOAP webservices however, is the almost "literal" translation of objects encapsulated into SOAP messages, into runtime objects. In effect, if I have a Person object defined in my <a href="http://www.google.com/search?client=safari&rls=en&q=define:+WSDL&ie=UTF-8&oe=UTF-8">WSDL</a> and similarly defined in my application (with a good SOAP framework) the objects should be encoded and decoded appropriately when passed via SOAP. The real power of SOAP can be realized when used with ASP.NET (ick) webservices and .NET clients (see <a href="http://www.mono-project.com/ASP.NET">ASP.NET - Mono</a>) where you can relatively quickly and easily build and deploy a services-oriented application. That's .NET/Mono however, my work is dealing with <a href="http://dietrich.ganx4.com/nusoap/">NuSOAP</a> and Cocoa, a less than ideal mix. <br>
<br>
To start hashing out a Cocoa-webservices-oriented application, your first stop should be at a local pub, brewery, or mayor's office for a good round of intoxication, only after every tissue in your body is soaked with fine casket-aged whiskey will you be prepared to embark on your journey. It's usually best to start with a complete WSDL, you can then use /Developer/Tools/WSMakeStubs to generate what resembles some Objective-C that you can flesh out to some extent to provide an intermediary layer between your sane Cocoa code and the actual SOAP method calls. Cocoa makes SOAP painful. The stub code revolves around one magical "object" <A href="http://developer.apple.com/documentation/Networking/Conceptual/UsingWebservices/3_ref_folder/chapter_3.2_section_3.html">WSMethodInvocationRef</a>. Think of WSMethodInvocationRef like you would a sadistic elf that only pops out of his little elf home to kick you in the groin before shouting "TRY AGAIN IDIOT" and scurrying away, there's a bit of magic involved, but mostly pain. Since the invocations will just return a generic "id" type, the only way to really be sure what your webservice invocation returns is to either call [NSObject respondsToSelector:(SEL)] or just trust that the webservice you called will return what you expect, whether it be an NSString, NSDictionary, NSArray, or NSNumber (NSNumber is what's returned in place of numbers and booleans, it's WebServiceCore's cheap way of boxing those primitives). TRY AGAIN IDIOT. <br>
<br>
Something else to note is that things you might expect to be able to use, such as basic HTTP authentication are absolutely non-existent in the magic WebServicesCore black-box. With a URL loading-based webservice (JSON, XML) you can just use the delegate method: <br>
<code>- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge</code> <br>
And authenticate from there, popping around through the various NSURLConnection delegate methods. I have also experimented with updating the SOAP endpoint to include a URL something like the following: <br>
<code>http://user:password@bleepsoft.com/some/stupid/url</code> <br>
While one might assume the HTTP subsystem hidden behind that magical WSMethodInvocationRef would handle this appropriately, and translate it to the basic HTTP authentication tokens, it just doesn't work. TRY AGAIN IDIOT. <br>
<br>
The alternatives are few and far between if you <strong>absolutely need</strong> to use SOAP webservices for a certain Cocoa project, I am working on converting a framework that <a href="http://toxicsoftware.com/blog/">Jonathan Wight</a> wrote to use the URL loading classes in Cocoa, but other than that learn to love WSMethodInvocationRef or plead with your web developers to rewrite their existing webservices with <a href="http://www.xfront.com/REST-Web-Services.html">REST</a>, JSON, etc. WebServicesCore is an antiquated pain in the ass, and probably hasn't been updated since Steve Jobs was at NeXT. <br>
<br>
TRY AGAIN IDIOT. <br>

View File

@ -0,0 +1,14 @@
---
layout: post
title: FTGL#
tags:
- Mono
created: 1169571188
---
I neglected to mention it here, but I <a href="http://stephen.paskaluk.com/blog/?p=37">released</a> some quick code to allow me to write text in OpenGL and C#. It's called <a href="http://ftglsharp.paskaluk.com">FTGL#</a> and hopefully someone besides me will have a use for it. <br>
<br>
The <a href="http://trac.geekisp.com/bleep/wiki/FTGLSharp">wiki page</a> has svn info <br>
<br>
Disclaimer: I posted this in the mono category, but haven't actually tested it on mono yet. <br>
<br>
Update: I have finally gotten around to actually running this on Mono (version 1.2.2.1) on Windows.

View File

@ -0,0 +1,29 @@
---
layout: post
title: Thread Cancellation in C#
tags:
- Mono
created: 1169617431
---
After some recent frustrations using Thread.Abort() and Thread.Join() in C# I adopted another means of cancelling a thread. In the previous iteration of this code, it was hanging on the following code:<code> <br>
myThread.Abort(); <br>
if (!myThread.Join(5000)) { <br>
Console.WriteLine("Failed to join secondary thread"); <br>
}</code> <br>
Under certain conditions (such as invoking unmanaged code from C#), the function being executed by the thread "myThread" can cause the Thread.Join(uint) to block indefinitely regardless of what timeout value (in microseconds) is passed as an argument to Join(). <br>
<!--break--> <br>
Instead of using the Thread class' functions for cancelling a thread, it is much more reliable to use a stay-alive boolean instead in your thread. In my code, the thread serves as a basic runloop that iterates a couple of times a second, so I added the following code:<code> <br>
private static readonly object threadLock = new object(); <br>
private static volatile bool threadStayAlive = false; <br>
<br>
public static void ThreadFunc() { <br>
//... <br>
lock (threadLock) { <br>
if (!threadStayAlive) <br>
return; <br>
} <br>
//... <br>
}</code> <br>
Elsewhere in the code, instead of calling both Thread.Abort() and Thread.Join(uint), I set threadStayAlive to false, and call Thread.Join(uint) to ensure that the thread is properly cancelled before continuing execution. I've tested this for about an hour or so trying to replicate the infinite-blocking that would occur with Thread.Abort() and Thread.Thread.Join(uint) and I've not been able to lock up my application yet with the stay-alive boolean. Checking the boolean periodically inside the thread function will allow the the code to appropriately clean up after itself instead of relying on Thread.Abort() which may interrupt whatever the thread is executing at any given time leaving your application in an inconsistent state. Catching a ThreadAbortException inside the thread function can help prevent inconsistent thread states, but I've found it's not preventing any amount of thread lock-ups like the stay-alive will. <br>
<br>
Regardless of the framework, threading is never something to be undertaken lightly; it is absolutely essential to know what your thread should be doing so you don't end up with race conditions or corrupted objects. Thread handling in C# is relatively straightforward, and certainly not as frustrating as pthreads, but still can have the same general threading related bugs.

View File

@ -0,0 +1,26 @@
---
layout: post
title: Twitterbot. No Really, I Need To Be Stopped
tags:
- Mono
created: 1169560301
---
Ok, <a href="http://flickr.com/photos/agentdero/tags/twitterer/">Twitterer</a> almost had a valid excuse, but this is just bloody unnecessary. I wrote a C# (Mono) news bot for <a href="http://twitter.com">twitter</a> last night out of boreom while waiting for a client to finish writing the webservices needed for my project. The Twitterbot is based <strong>very</strong> loosely on <a href="http://menti.net/?p=85">Mario Menti</a>'s perl source code, in that I took the tinyurl idea (and that's about it). I wrote the bot with the concept in mind of using one bot to manage all the feeds at once, which does have a slightly undesirable affect of posting the updates for all the feeds at once, but with a bit of tweaking that can be lessened. <br>
<br>
The bot is used to run the following twitter-things: <a href="http://twitter.com/googlenews">googlenews</a>, <a href="http://twitter.com/googlenewsworld">googlenewsworld</a>, <a href="http://twitter.com/googlenewssports">googlenewssports</a>, <a href="http://twitter.com/googlenewsus">googlenewsus</a>, <a href="http://twitter.com/googlenewsent">googlenewsent</a> <br>
<br>
<!--break--> <br>
<br>
<h3>the technical details</h3> <br>
The Twitterbot makes use of <a href="http://rss-net.sourceforge.net/">RSS.NET</a> for all its incoming feed parsing, but uses the standard System.Net.WebRequest class for posting to both <a href="http://twitter.com">twitter</a> and retrieving the proper <a href="http://tinyurl.com">tinyurl</a> link. The basic structure of the bot is simple, whenever it grabs new items it'll check that feed's last (stored internally) items to prevent duplication of twitter-posts, and then will shorten the title, generate the tinyurl link and finally post the tiny message to twitter. One of the issues I discovered with <a href="http://news.google.com">Google News</a> is that they randomize the story providers for any given story, i.e. a they might push out a story to their feeds about China's shooting down of a satellite but each time the bot updates that feed may return a different title for the story from a different news organization. In order to prevent flooding, the bot currently has a twitter-posting maximum of two per iteration, which combined with the update interval (30 minutes) helps cut down on both duplicate stories, but also spamming the living hell out of twitter. <br>
<br>
The file format that the bot reads feeds and twitter information from is also simple:<code> <br>
&lt;feeds&gt; <br>
&lt;!-- &amp; -> &amp;amp; --&gt; <br>
&lt;feed name="Google News" url="http://news.google.com/news?ned=us&amp;amp;topic=h&amp;amp;output=rss" twitter="user" password="pass"/&gt; <br>
&lt;/feeds&gt; <br>
</code> <br>
<br>
I think I am going to release this as open source in the very near future but I want to check with the twitter guys first to take any steps necessary to prevent spamming their goofy little service. I really think my bot would help organizations use twitter as a minimalistic content delivery platform (market-speak!) if they already spit out content in standard RSS formats elsewhere, but I don't want to step on any toes. <br>
<br>
A nice and neat little Twitterbot, all in less than 300 lines of code :)

View File

@ -0,0 +1,11 @@
---
layout: post
title: Twitterbot Is Now Open Source
tags:
- Mono
created: 1169643850
---
As I <a href="http://unethicalblogger.com/posts/tyler/twitterbot_no_really_i_need_to_be_stopped">previously mentioned</a>, I've written a small C# application called "Twitterbot" that grabs items from an RSS feed and retrofits them for <a href="http://twitter.com">twitter</a>. After discussing it with some of the folks over at twitter, they have no problem with me open sourcing the litte bot, so I give you, <a href="http://trac.geekisp.com/bleep/wiki/Twitterbot">the Twitterbot</a>. <br>
<br>
I also added a few fixes this morning after adding the <a href="http://twitter.com/hybridized">hybridized</a> twitter-thing:<ul><li>Improved duplication checks</li><li>Refresh slow-downs between 12:00 and 6:00 am (exclusive)</li><li>Better error handling</li><li>A few comments :)</li></ul> <br>
The Twitterbot can be downloaded from the subversion repository, details are located on the <a href="http://trac.geekisp.com/bleep/wiki/Twitterbot">Twitterbot's page</a>. The Twitterbot is <a href="http://trac.geekisp.com/bleep/wiki/BSD_License">BSD licensed</a> and will run with both .NET and <a href="http://www.mono-project.com">Mono</a>. Enjoy!

View File

@ -0,0 +1,14 @@
---
layout: post
title: Publishing War on the Horizon
tags:
- Academia
created: 1169829128
---
Apparently, predictably, and late to the party, research publishers are getting nervous about the push for <a href="http://en.wikipedia.org/wiki/Open_access">Open Access</a>. Hopefully this is just an idea for a push from the publishers that will quickly be dropped, but from an <a href="http://www.nature.com/news/2007/070122/full/445347a.html">article on nature.com</a> (found via <a href="http://science.slashdot.org/science/07/01/25/2155223.shtml">slashdot</a> of course): <br>
<br>
<cite>Public access equals government censorship</cite> <br>
<br>
I hesitate to even quote that because it's so far off-base.<!--break--> There was more too, but since this is just an article on a potential future publicity campaign I don't really think a thorough response is warranted. If the publishers ever try pushing this BS on the research community I have no doubt the response will not be what the publishers hope. <br>
<br>
These publishers have to realize that the entire reason they exist at all is because they have been the best way to make information available to as many people as possible. Publishing researchers want their work to be available and if traditional publishers can't continue to be a relevant way to make that happen then they simply don't have a viable business model. Personally I still think there's value in subscriptions to printed journals, and I'm sure people I work with feel the same.

View File

@ -0,0 +1,10 @@
---
layout: post
title: Basic HTTP Authentication with WebServicesCore
tags:
- Cocoa
created: 1170281202
---
<a href="http://www.ditchnet.org">Todd Ditchendorf</a> is the man I have to thank now, not only for his fantastic <a href="http://www.ditchnet.org/soapclient/">SOAP Client</a>, but now for "showing me the way" in terms of using CFNetwork to handle basic HTTP authentication with SOAP webservices in Cocoa. Performing the basic HTTP authentication is still an absolute pain in the ass, but it is possible nonetheless. <br>
<br>
Without further ado, <a href="http://www.ditchnet.org/wp/2007/01/30/example-code-webservices-core-cfnetwork-for-soap-http-auth-on-os-x/">take it away Todd</a>.

View File

@ -0,0 +1,12 @@
---
layout: post
title: We're all retarded.
tags:
- Opinion
created: 1170283296
---
I <a href="http://www.makezine.com/blog/archive/2007/01/aqua_teen_hunge_1.html">came across this</a> after reading a bit about the "bomb scare" in Boston today, and cannot come to any other conclusion than "we're retarded." In the picture in the article linked above, even I can clearly see that it's really not a bomb, it's hardly even a "device" but nonetheless, these "<a href="http://www.cnn.com/2007/US/01/31/suspicious.packages.ap/index.html">hoax packages caused alarm in Boston</a>." <br>
<br>
I fear that in this age of increased terror-McCarthyism and ridiculous (shallow) security measues, if I were to forget my backback under the table in an outdoor caf&eacute;, I would return later to retrieve it and be greeted by a bomb squad apprehensively approaching my backpack filled with nothing more explosive than a half-eaten roast beef sandwich. <br>
<br>
To the staff of "Aqua Teen Hunger Force" it was nice knowing you, and I'm sorry but you're all about to be implicated in an eeeevil terrorist plot to bombard Boston with poor animation; regardless, I hear Cuba has wonderful weather this time of year.

View File

@ -0,0 +1,10 @@
---
layout: post
title: I'm on another podcast
tags:
- Cocoa
created: 1170371707
---
Steve Scott of <A href="http://latenightcocoa.com/">Late Night Cocoa</a> asked me a couple weeks ago if I wanted to come on and talk about <a href="http://bleepsoft.com/buildfactory">BuildFactory</a> and continuous integration, and then that slowly morphed into talking about webservices and Dumbarton as he noticed I posted some WebServicesCore gripes. We got to chatting a bit about why Mac developers don't seem to "appreciate" webservices as much as those in the .NET world, etc and eventually got together to record <a href="http://latenightcocoa.com/?q=node/20">Web Services with R. Tyler Ballance</a>. <br>
<br>
If you've not checked out Late Night Cocoa, I highly recommend it, it's already shaping up to be a good (technical) podcast about Mac development (the <A href="http://latenightcocoa.com/?q=node/16">Core Data with Marcus Zarra</a> interview was fantastic, a hard one to follow). If nothing else I hope most developers can use my interview to get a better feel for what's available in the growing webservices (2.0!) landscape. A more active discussion about the strengths and weaknesses in the Cocoa frameworks can do nothing but make the Mac development community stronger, check it out!

View File

@ -0,0 +1,29 @@
---
layout: post
title: Webservices with Dumbarton
tags:
- Mono
created: 1170319882
---
While I have been know <a href="http://unethicalblogger.com/posts/tyler/webservicescore_why_hath_thou_forsaken_me">to</a> <a href="http://unethicalblogger.com/posts/tyler/webservicescore_on_the_radar_screen">gripe</a> <a href="http://unethicalblogger.com/posts/tyler/basic_http_authentication_with_webservicescore">about WebServicesCore</a>, there are however options now when developing service-oriented applications. Introducing, <a href="http://allan.imeem.com/blogentry/gbgC7kTg">Dumbarton</a>; Dumbarton is basically a ObjC-C# bridge that makes use of the Mono embedded API to allow you to utilize C# code from within your Cocoa application. Personally, I think writing SOAP consumption code in C# using Mono or .NET is far nicer than trying to write something using C/Objective-C via WebServicesCore, so this is my "favorite" option. The word favorite being in quotes as unfortunately Dumbarton is a bit complex to use and bundle for a smaller Cocoa application. <br>
<!--break--> <br>
Dumbarton is however an option, so I wrote up a quick example that makes use of a currency exchange rate webservice via <a href="http://www.xmethods.com/ve2/ViewListing.po;jsessionid=FgQTd9d1ATcFfxMGvYXYCj-W(QHyMHiRM)?key=uuid:D784C184-99B2-DA25-ED45-3665D11A12E5">xmethods.com</a> and essentially rehashes the proverbial "Currency Converter" sample project with an up to date exchange rate. I've pushed the project <a href="http://github.com/rtyler/CurrencyConverter/"><strong>to GitHub</strong></a> in case you want to check out the whole project. <br>
<br>
<h3>the nitty gritty</h3> <br>
Mostly because I'm a lazy developer (who isn't?) I used the standard "wsdl" executable that you can find in .NET or Mono to generate the necessary stub class for providing the last intermediary layer between our desktop application. The method that's generated (synchronous) that we'll write our wrapper for is: <br>
<code>public System.Single getRate(string country1, string country2);</code> <br>
which will handle the actual webservice invocations which we'll write a small Dumbarton wrapper for. Interacting with SOAP webservices in .NET/Mono is quite simple however, so it'd be trivial to take an existing set of generated stubs and modify them, or simply write all the code from scratch. <br>
<br>
The Dumbarton wrapper provides the neccessary "boot strapping" for a bridged object between Cocoa and Mono and also "acts" as the bridged object for the C# class. For example, our Dumbarton wrapper class is called CurrencyConverter which is a subclass of DBMonoObjectRepresentation, and in the wrapper method we call: <br>
<code>[self invokeMethod:"getRate" withNumArgs:2,str1,str2];</code> <br>
which will invoke the C# method getRate(string,string) and return a MonoObject pointer. The bridged methods will return a MonoObject pointer which you can either unbox with the DB_UNBOX_* macros provided in the DBBoxing.h file, or you can invoke methods on that object like CurrencyConverter does with: <br>
<code>(MonoString *)(DBMonoObjectInvoke(rateObj,"ToString",0,NULL))</code> <br>
in order to return a string, or another MonoObject pointer to use. Overall it's really simple to use once you have all the ducks in a row, such as llinking against the Mono.framework and the Dumbarton.framework properly, and you load them into the DBMonoEnvironment appropriately. <br>
<br>
<h3>notes on CurrencyConverter</h3> <br>
I bundled a Dumbarton.framework build that I had handy inside the Subversion repository, but I have linked this against the Mono 1.2.3-preview that I have installed on my machine, so I recommend you checkuot the latest Dumbarton from Subversion (<code>svn co svn://svn.myrealbox.com/source/trunk/Dumbarton</code>) and install the latest stable version of <a href="http://mono-project.com/Downloads">Mono</a> (1.2.2). If you feel like trying out the preview, you can grab the <a href="http://mono.ximian.com/monobuild/preview/download-preview/">Mono 1.2.3 preview</a> installer to link your custom Dumbarton build against. Something to note however, is the Installation Path in the Dumbarton Xcode project is set to /Library/Frameworks currently, so if you want to link against it and bundle it inside your application bundle you'll need to update that to <strong>@executable_path/../Frameworks</strong> and then bundle it in the same fashion you would with <a href="http://growl.info">Growl</a> or <a href="http://andymatuschak.org/pages/sparkle">Sparkle</a>. You will also need to setup a copy files or a build script phase to handle your bundling of the DLLs inside the application bundle as well. Distributing an application that uses Mono and Dumbarton is a bit stickier, as you have to pick and choose which libraries to bundle, etc, check out <a href="http://lists.ximian.com/pipermail/mono-osx/2006-December/000701.html">this thread</a> from the mono-osx list. <br>
<br>
<h3>the springer final thought</h3> <br>
Depending on your familiarity with developing with C# in either Mono or .NET, Dumbarton may be a great option for utilize existing .NET code for webservices, write cross-platform webservices code, or just avoid the pains of WebServicesCore; it can also be another frustrating stop on the avenue of SOAPy pains if you misunderstand how Dumbarton or C# works. It's currently on my ever lengthening todo list to start documenting far more of what you can do with Dumbarton, but hopefully the examples distributed with the source, along with CurrencyConverter provide a good starting point for those who feel crazy enough to try it out. <br>
<br>
As a side note, I have 8.6444 pound in my wallet right now.

View File

@ -0,0 +1,12 @@
---
layout: post
title: Absolute Frustration
tags:
- Opinion
created: 1170446333
---
Time-Warner (again) had an outage this morning, and it has somehow left my Linksys WRT54G absolutely incapable of routing properly. <br>
<br>
From the router administration page, I can ping public servers. From inside the network, I can ping ping local machines. I can properly resolve hostnames, I just can't ping anything on the public internet, from inside the network. My router has become absolutely dysfunctional as anything but a simple switch. <br>
<br>
I'm only lamenting that I don't know of a taller building from which to hurl this miserable piece of shit from.

View File

@ -0,0 +1,32 @@
---
layout: post
title: Mono, Winforms, Tao, and Me
tags:
- Mono
created: 1170457820
---
I finally got around to testing FTGL# with Mono on Windows. Didn't require any modification, but there's one oddity ... <br>
<br>
<code> <br>
C:\Documents and Settings\stephen\My Documents\work\FTGLSharp\sample\bin\Debug>"FTGLSharp Demo.exe" <br>
Opening Font File C:\Windows\Fonts\arial.ttf <br>
Setting 24pt, 72dpi <br>
Done font initialization <br>
sap.ftgl.MainForm, Text: FTGL.OnActivated() called <br>
sap.ftgl.demo.demoControl.forceRefresh() <br>
sap.ftgl.demo.demoControl.OnPaint() called <br>
sap.ftgl.MainForm, Text: FTGL.OnActivated() called <br>
sap.ftgl.demo.demoControl.forceRefresh() <br>
sap.ftgl.demo.demoControl.OnPaint() called <br>
</code><code> <br>
C:\Documents and Settings\stephen\My Documents\work\FTGLSharp\sample\bin\Debug>mono "FTGLSharp Demo.exe" <br>
Opening Font File C:\Windows\Fonts\arial.ttf <br>
Setting 24pt, 72dpi <br>
Done font initialization <br>
sap.ftgl.MainForm, Text: FTGL.OnActivated() called <br>
sap.ftgl.demo.demoControl.forceRefresh() <br>
sap.ftgl.MainForm, Text: FTGL.OnActivated() called <br>
sap.ftgl.demo.demoControl.forceRefresh() <br>
</code> <br>
<br>
I don't know yet if it's Mono or Me (I'm usually missing some detail ...) but <code>OnPaint()</code> isn't happening when it should if I fill my control with another control <br>

View File

@ -0,0 +1,10 @@
---
layout: post
title: Kernel Panics Do Weird Things
tags:
- Software Development
created: 1170535223
---
With the arrival of my <a href="http://flickr.com/photos/agentdero/sets/72157594514593862/">new Airport Extreme base station</a> came two new ways I can kernel panic my machine. So I now have 1, 2, 3 ways, three ways to panic my machine, <a href="http://en.wikipedia.org/wiki/Count_von_Count">ah-ah-ah-ahhhhh</a>.Besides the usual enjoyment of seeing <a href="http://farm1.static.flickr.com/125/377792291_54c0ba81bf_b.jpg" rel="lightbox">this wonderful image</a>, you can experience some weird things when your OS X machine reboots. <br>
<br>
In the attached video, I found that my mouse was in a perpetual state of scrolling down. Not a quick scroll either, a nice leisurely one, the kind you take on the beach, a nice leisurely scroll down in <strong>every</strong> window with a scrollbar in the entire operating system. Gak.

View File

@ -0,0 +1,10 @@
---
layout: post
title: Mono Winforms Update
tags:
- Mono
created: 1170697979
---
The pre-release version of Mono 1.2.3 handles the painting events properly, so it appears that FTGL# actually works on Mono, at least on Windows. <br>
<br>
Thanks to the kind folks in <a href="http://www.mono-project.com/IRC">#mono-winforms</a> for taking a look at this for me.

View File

@ -0,0 +1,10 @@
---
layout: post
title: Tiring
tags:
- Miscellaneous
created: 1170910986
---
I am not certain if forgetfulness is a side effect of working too much, or general stress, but I spent about a minute looking around for my keys before finding them still sitting in the lock on my front door. <br>
<br>
Whoops.

View File

@ -0,0 +1,17 @@
---
layout: post
title: I ain't Shipley, but PmpMyApp
tags:
- Cocoa
created: 1171013080
---
Ever since coming across the (draft) specification for <a href="http://files.dns-sd.org/draft-cheshire-nat-pmp.txt">NAT-PMP</a> I've been almost in love with the absurdly simple NAT port mapping protocol. The unfortunate downside is that NAT-PMP isn't well supported except on Airport base stations, one of which <a href="http://farm1.static.flickr.com/123/377791549_dd858e380e_b.jpg" rel="lightbox">I recently acquired</a>, so as is customary when I welcome a new device into my apartment, I had to write some code for it. I hate to sound like a fan-boy, but like Bonjour, <a href="http://www.stuartcheshire.org/">Stuart Cheshire's</a> other baby, NAT-PMP is sickeningly simple. A series of straight-forward UDP packets is all that is needed for a local (inside the NAT) device to create a mapping on the NAT device itself. <br>
<!--break--> <br>
To exhibit this functionality, I've created a sample application that uses a tiny little library I built to create and destroy mappings on the NAT-PMP enabled device. The application is called "PmpMyApp" and can be found <a href="http://github.com/rtyler/PmpMyApp"><strong>on GitHub</strong></a> <br>
<br>
The code contained in pmpmapper.c has three basic functions that perform the functionalities that NAT-PMP provides, and are aptly named as well: <br>
<code>struct sockaddr_in *pmp_get_public(); <br>
pmp_map_response_t *pmp_create_map(uint8_t type, uint16_t privateport, uint16_t publicport, uint32_t lifetime); <br>
pmp_map_response_t *pmp_destroy_map(uint8_t type, uint16_t privateport);</code> <br>
<br>
The pmp_get_public() function returns a pointer to a sockaddr_in that contains the external IP address of the NAT device. The pmp_create_map() function does the heavy-lifting, in that it will create the actual mapping (and the deletion too, with a zero lifetime) and will tell the NAT device to persist the mapping for the number of seconds specified with the lifetime argument. The code is commented so it should be very easy to get a feel for how to use the pmpmapper functions, a good place to start is by examining how it's used in the <a href="http://github.com/rtyler/PmpMyApp/blob/master/source/XzibitController.m#L14">PmpMyApp source</a>. (<strong>Note:</strong> All of the PmpMyApp code is BSD licensed)

View File

@ -0,0 +1,12 @@
---
layout: post
title: Internal Server Error
tags:
- Miscellaneous
created: 1171064999
---
You may have noticed recently (hopefully not) this site kicking back a simple, plain-text error: <code>An internal server error occurred. Please try again later</code> <br>
<br>
The root of this issue was some scripts inside Drupal simply taking too long and timing out, which I believe, has been resolved by enabling <a href="http://www.geekisp.com/faq/6_61_en.html?highlight=eaccelerator">e-accelerator</a> in the site's .htaccess file. I'm hoping that has killed the errors, if it hasn't feel free to drop me a line at tyler@bleepsoft.com and let me know the site is broke again :) <br>
<br>
Special thanks to Dave at <a href="http://www.geekisp.com">GeekISP</a> of course for being accommodating with my silly complaints.

View File

@ -0,0 +1,12 @@
---
layout: post
title: Terminally ill
tags:
- Miscellaneous
created: 1171450821
---
There's really not a decent explanation for this, other than Terminal.app went bonkers. I've seen this happen before to some extent if you have an NSWindow that has transparent background, but a partial background drawing like here is something completely new. <br>
<br>
This sort of weird nonsense only happens to me. <br>
<br>
If the video link isn't showing up in the RSS feed, <a href="http://unethicalblogger.com/files/ghostly_terminal.mp4">here it is for you</a>.

View File

@ -0,0 +1,10 @@
---
layout: post
title: "In the news last week: DRM"
tags:
- Opinion
created: 1171656501
---
DRM made news thanks to Steve Jobs' <a href="http://www.apple.com/hotnews/thoughtsonmusic/">open letter</a>. I don't really have anything to say that hasn't been said already, but I found an article today that <a href="http://www.engadget.com/2007/02/16/drm-the-state-of-disrepair/">sums it up pretty nicely</a>. <br>
<br>
Of course I don't use iTunes much anyway, I'd much rather buy-and-rip CDs. I guess I'm doing just what Bill Gates <a href="http://www.techcrunch.com/2006/12/14/bill-gates-on-the-future-of-drm/">says</a>.

View File

@ -0,0 +1,19 @@
---
layout: post
title: Twitterbot Basic HTTP Authentication Errors
tags:
- Mono
created: 1171880681
---
As <a href="http://unethicalblogger.com/posts/tyler/twitterbot_no_really_i_need_to_be_stopped#comment-17">some of you</a> may have noticed, the <a href="http://trac.geekisp.com/bleep/wiki/Twitterbot">Twitterbot</a> seems to always fail to authenticate properly against <a href="http://www.twitter.com">twitter's</a> basic HTTP authentication prompt when run from Mono 1.2.3 on Mac OS X. This was neither an error in twitter's webservice (I have been running my bots from a FreeBSD machine with Mono 1.1.13 for some time now) nor in the Twitterbot code itself, but rather a regression in the System.Net.Configuration namespace, I'll let "kangaroo" (the developer who found and fixed the bug) explain: <br>
<!--break--> <br>
<code>13:03 &lt;@kangaroo&gt; ok its falling in to DoPreAuth <br>
13:04 &lt;@kangaroo&gt; Authorization auth = AuthenticationManager.PreAuthenticate (this, creds); <br>
13:04 &lt;@kangaroo&gt; thats returning null <br>
14:04 &lt;@kangaroo&gt; got a patch for you <br>
14:04 &lt; rtyler&gt; to compile into mono or my app? <br>
14:05 &lt;@kangaroo&gt; <a href="http://monoport.com/1821">http://monoport.com/1821</a> <br>
14:05 &lt;@kangaroo&gt; mono <br>
14:05 &lt;@kangaroo&gt; you need a new System.dll</code> <br>
<br>
The patch should make it into the next bug-fix release of Mono (1.2.3.2) and should allow you to once again run Twitterbot on Mac OS X, otherwise you might want to try another machine, or step back a few point releases if it's <em>that</em> critical to have you Twitterbot running.

View File

@ -0,0 +1,10 @@
---
layout: post
title: Completely Off-topic
tags:
- Opinion
created: 1172071359
---
I try to separate my political leanings from my work, especially when it comes to blogging, etc, but this is too much. The <a href="http://www.reflector.com/local/content/news/stories/2007/02/19/roll_call.html">House passed non-binding resolution on Iraq</a> which is the latest in the long list of completely neutered actions by our legislative branch. <br>
<br>
It's not a question of "supporting the troops" or "protecting the children" or "stopping terrorism" if you don't have the <strong>spine</strong> to keep the executive branch in check (what a quaint idea) <strong>resign</strong> so we can find somebody who isn't an absolute coward. Regardless of which side you lean towards politically, <strong>any</strong> executive branch that's given carte blanche is dangerous.

View File

@ -0,0 +1,10 @@
---
layout: post
title: I'm Shocked
tags:
- Opinion
created: 1172247233
---
I'm shocked that anything as simple as a music download site offering popular music (not major label stuff, but still some high profile artists) in <a href="http://www.michaelgeist.ca/index.php?option=com_content&task=view&id=1719&Itemid=125">unprotected mp3 files</a> could be <a href="http://www.cbc.ca/technology/story/2007/02/22/tech-puretracksmp3launchissues-20070222.html">done so poorly</a>. Seriously, how crappy must that system be if they have to force a .wma extension onto the mp3s? If they have a non-ActiveX download setup what's the deal with Mac downloads? How hard is it to have a properly descriptive error message for Mac users? <br>
<br>
I can't even come up with words to describe how poorly they've done this. Has nobody involved with this mess ever actually thought of testing the site?

View File

@ -0,0 +1,14 @@
---
layout: post
title: The Visual Basic Stigma
tags:
- Software Development
created: 1172870489
---
I recently recommended to a client that a project they were looking to have done in Visual Basic should be done in C#, but I found that it wasn't as easy as I thought it would be to articulate *why* I was recommending that. The easy answer was because I'm a C programmer at heart and C# is what I'm into these days, but given that the bulk of my professional experience in the last 4-years has been in Visual Basic, and that both C# and current versions of VB are fairly interchangeable for someone familiar with both, that reasoning seemed a bit weak. <br>
<!--break--> <br>
I came across <a href="http://clintonforbes.blogspot.com/2007/02/why-dont-visual-basic-programmers-get.html">this article</a> on programming in Visual Basic and it really rings true to me. I don't enjoy programming in VB quite as much, but at the end of the day I'll look back and realize that it made almost no difference to me at all. I have the same embarrassment about programming in VB that the author talks about on occasion, and I have the same thing with Windows programming in general in comparison to C on Unix-like systems. <br>
<br>
I also thought the <a href="http://en.wikipedia.org/wiki/Comparison_of_C_sharp_and_Visual_Basic_.NET">wikipedia article</a> comparing VB and C# had a pretty interesting section on the VB and C# programming cultures. I know that my first project in VB6 was terrible. I had a fairly strong C on Unix programming mindset and even though the concepts should have been the same it took me a long time to figure out how to adapt what I knew about programming &quot;The Right Way&quot; to that environment. I can't honestly say for certain that was the fault of VB, it may have been my unfamiliarity with doing graphical user interfaces, but to this day it still feels more natural to follow good programming practice in C#. <br>
<br>
Speaking of that first VB program, I'm inclined to agree that, given enough time <a href="http://www.daltonlp.com/view/491">I will think my old code was crap</a> when I look back ...

View File

@ -0,0 +1,8 @@
---
layout: post
title: BarCamp Austin, Again
tags:
- Software Development
created: 1173208449
---
It seems that I might be going to <a href="http://barcamp.org/BarCampAustin">BarCamp Austin<sup>2</sup></a> this next weekend. I'll be presenting on "the importance of webservices" or something about as exciting. I'm still working on my presentation (ick) and I'm going to try to incorporate as many useless buzzwords, pot-shots at George W. Bush, and cult movie references as possible. I'm not sure how it's going to be, at least 41% more exciting than my last BarCamp presentation on Cocoa hacking and why everybody should, but still 12% less turtle-neck than a Steve Jobs keynote. I'll be sure to post my slides and hopefully a video or audio of the presentation later, but we'll see if I can make a presentation worth posting first.

View File

@ -0,0 +1,10 @@
---
layout: post
title: Teeny-tiny Updates
tags:
- Miscellaneous
created: 1173665916
---
If you look at the sidebar, you might notice a new "Twitter" column has been added, which I intend on using to keep a good aggregated feed of the unethical blogger users' <a href="http://twitter.com">twitters</a>. I have also added a new category "<a href="http://unethicalblogger.com/blog_categories/literature">Literature</a>" which I hope I'll be able to populate soon enough with book reviews, and other miscellaneous bits of criticism and commentary. <br>
<br>
I've noticed a few registered users that haven't commented or blogged about anything yet, which I hope they will remedy soon enough as I'd really like to sucker more folks into using the site or "blogging unethically" (har, har).

View File

@ -0,0 +1,10 @@
---
layout: post
title: Soldiers of Fortune
tags:
- Opinion
created: 1173688552
---
I am watching this show on "the long war [on terror]" ("Our childrens' childrens' war") which is covering private contracting firms that are working with the military, specifically <a href="http://www.blackwaterusa.com/">Blackwater USA</a> which is seriously one of the scariest companies I've read about in a while. I'm not a fan of our ever growing federal government, but turns out they're dutifully employing <em>mercenaries</em> in a war on an already questionable moral foundation? Fun. <br>
<br>
There is no question that we're involved in a global war of ideologies, but we're walking a fine line between that and a crusade, and mercenaries only sweeten the pot.

View File

@ -0,0 +1,18 @@
---
layout: post
title: "A Review: The Metamorphosis"
tags:
- Literature
created: 1173912206
---
Imagine yourself awaking to find that you simply arent; arent yourself that is. Such is the situation that Gregor Samsa, Kafkas unfortunate “victim” in <i>The Metamorphosis</i>, finds himself in. Gregor awakens one morning from “unsettling dreams” to find that “he” has transformed from a (presumably) twenty-something traveling salesman into a beetle-like vermin. The story of Gregors unfortunate predicament begins with the climax, the transformation, and slowly descends from there to Gregors ultimate demise. Unlike some of the past philosophers I have read who tend to write essays or prose, Kafkas insight takes the form of a parable of the conflicts of Gregor Samsas internal “self” with his external self and surroundings. This mask of fiction concealing the philosophical musings of the story makes them quite difficult to spot upon initial inspection (in my opinion), making a second read through or browsing of academic articles on the piece if not a necessity, highly recommended. <br>
<br>
Kafkas splitting insight is not for the faint of heart, at the same time that Gregor is lamenting his condition (specifically when he, as the vermin, attempts to get out of bed) he is also pleased with his escape from some of his “human” responsibilities that have shackled him to a miserable existence as a traveling salesman working in a soul-grinding firm paying off a debt owed his employer by his parents. As the story progresses, unbeknownst to Gregor, the reader is shown more to convince them that the family was more akin to vermin than Gregor may have transformed into. In Gregors early reflection he cites the importance of his work to help support his family and the necessity of his sacrifice (of freedom) to work in the firm that his parents are indebted to. As time wears on however, and Gregor is incapable of working (contrary to popular belief, vermin dont sell too many Encyclopedias door to door) his father attains a job as a bank-messenger and his family lets out one of the rooms, in the spacious apartment Gregor provided, to three “roomers” indicating that Gregors degrading sacrifice at the firm may not have been necessary at all, ergo the Samsas may have been the vermin feeding off of Gregor instead of the inverse. <br>
<br>
The issue of food, or rather nourishment, is another interesting theme Kafka adds into the already complex literary-gumbo of <i>The Metamorphosis</i>. The first day of Gregors transformation he is offered some of his favorite food by his sister Grete (we can assume she is trying to help cure what is perceived as an illness by Gregors family as opposed to the transformation it truly is) to which he refuses and scurries back under the couch to which he oft finds refuge. As the story wears on Grete slowly discovers that Gregor, the new Gregor, prefers what essentially boils down to table-scraps and garbage, but this is still not enough to “nourish” Gregor. He consistently complains (in thought) about a longing for nourishment, a lack of fulfillment of some sort that is finally placated one day when he hears the beautiful violin music Grete has taken to playing for the three “roomers.” This still doesnt seem to be enough to “nourish” Gregor in the sense that he still longs for something, a certain something that he finds the fateful morning when he exhales his last breath with the rising morning sun (finding contentment, or fulfillment, with death is an interesting point Kafka raises for me after reading a few essays on both Absurdism and Existentialism). <br>
<br>
Slowly Gregor becomes more of a curse in the eyes of the rest of the Samsas instead of a son with an inordinate amount of legs. When Gregor dies, it is a release in more than one sense. While Kafka cites most immediately the lifting of the burden from the Samsas backs, it is apparent that Gregor has also been relinquished of his conflicts with the firm, his parents, and most importantly, himself; with his death Gregor is finally set free, just as he had hoped to become after repaying his parents debt to his employer. While there is some academic discussion on whether the metamorphosis itself relinquished Gregor from some of his bourgeois-responsibilities, it is without a doubt that in his death he finds the freedom for which he had longed. An interesting point was raised in one of the analysis of the piece that pointed out that maybe the parents were truly the “blood-sucking vermin” with regards to the last few pages of <i>The Metamorphosis</i>, when the parents turn to Grete, the daughter, and prepare her to be married off to a good husband, pointing out that with Gregor (the initial host) gone they must switch to a new one, Grete. <br>
<br>
Unlike most stories, there are no likable characters in <i>The Metamorphosis</i>, as Gregor continues to act more and more like the “vermin” he has transformed into and his parents react negatively to their sons predicament, the reader is left without solace. Although Gregor eventually attains the freedom he had so desired, he is still a poor choice for the “hero” of Kafkas work. That is not to say however, that there are no identifiable characters; Gregor typifies a lot of the internal struggle most found themselves in, in the whirlwind of capitalist growth in the early 20th century along with the lessening of the importance of the individual; both very fundamental conflicts most (including Kafka) found/find themselves in, especially in western culture. Simultaneously many can identify with the denial the Samsas find themselves in with their disgust of the vermin that comes to inhabit Gregors room. <i>The Metamorphosis</i> is widely regarded as one of, if not the, most important pieces of literature Kafka ever had published, but is a difficult pill to swallow and at the same time a worthwhile exposure of the conflict that Kafka, and many others, have struggled with. <br>
<br>
I highly recommend, if you have not already read <i>The Metamorphosis</i>, purchasing the “Bantam Classics” version of <i>The Metamorphosis</i> which includes over one hundred pages of critical essays and academic discussions on Kafkas masterpiece. Translator (and PhD) Stanley Corngold made a fantastic selection of analytic essays on the story ranging from incisive psychological analysis of Gregors transformation to the oedipal conflict and reversal of roles between the father and son that constantly lurks beneath the surface. Dutifully reading all of the explanatory notes on the text as well as the critical essays that Corngold included in the book drive the point firmly into place, Kafka was a brilliant writer and, like his tragic heroes, was a tormented individual who may have found solace in the escape that his death (from tuberculosis) ultimately offered him.

View File

@ -0,0 +1,20 @@
---
layout: post
title: Perforce On The Road, p4tunnel
tags:
- Software Development
created: 1174220443
---
The best means of accessing a <a href="http://www.perforce.com">Perforce</a> repository is over an SSH tunnel, to access my home repository while I'm on the road I use a handy-dandy little script to do a few things:<ul><li>Access Perforce</li><li>Access <a href="http://www.perforce.com/perforce/products/p4web.html">P4Web</a></li><li>Setup a SOCKS5 proxy</li></ul> <br>
The proxy is more so I can have some semblance of security while on open wireless networks, the rest should be self explanatory. <br>
<br>
Anyways, straight from /usr/local/bin, here's my p4tunnel script:<code> <br>
#!/bin/sh <br>
<br>
HOST="yourhost.com" <br>
PROXY_PORT="8081" <br>
<br>
echo "===> Creating tunnel to ${HOST} with a SOCK5 proxy on port ${PROXY_PORT}" <br>
<br>
ssh ${HOST} -L 1666:localhost:1666 -L 8080:localhost:8080 -D ${PROXY_PORT} -C <br>
</code>

View File

@ -0,0 +1,8 @@
---
layout: post
title: I'm Seriously Famous
tags:
- Mono
created: 1174576173
---
Okay, maybe not. But as it turns out, the <a href="http://www.unethicalblogger.com/posts/tyler/twitterbot_no_really_i_need_to_be_stopped">Twitterbot</a> however, is! A short 5-minute guide to setting up the Twitterbot has been created over <a href="http://engtech.wordpress.com/2007/03/22/howto-twitter-rss-broadcast-feeds-twitterbot-guide/">here on the engtech blog</a>, and does a far better job of documenting how to get started with the Twitterbot than I ever wanted to. With the help of a Twitterbot, <a href="http://twitter.com">twitter</a> can be a great news-to-SMS gateway, or damn near anything else you can think of doing with about 140 characters worth of content either IMed or SMSed to you.

View File

@ -0,0 +1,13 @@
---
layout: post
title: In the fifth dimension
tags:
- Slide
- Miscellaneous
created: 1175396447
---
I figured I might as well come out and say it, things have been changing quite rapidly lately, thus the latency on blog postings. In the past two weeks, I have accepted a job offer, moved to San Francisco, and started working at <a href="http://www.slide.com/">Slide, Inc.</a> with a friend of mine <a href="http://stuffonfire.com/">David Young</a> (and quite a few other folks who are prime friend-candidates). <br>
<br>
I'm not sure yet how this is going to affect my Mac (development) musings, but what I do know is that in the coming weeks <a href="http://www.python.org">Python</a> and I are going to become best of friends...or I'm going to kill it. <br>
<br>
There's still quite a few things in the pipeline, such as an update to the Twitterbot, and Twitterer, a customized version of <a href="http://andymatuschak.org/pages/projects">Sparkle</a>, and of course, <a href="http://www.bleepsoft.com">Emission</a>. I hope that the dust settles soon so I can return to wasting endless amounts of time blogging and hacking on open source projects, but that remains to be seen.

View File

@ -0,0 +1,12 @@
---
layout: post
title: CocoaHeads Silicon Valley
tags:
- Cocoa
created: 1176357251
---
<a href="http://theocacao.com/document.page/450">Scott Stevenson</a> beat me to the punch in announcing it, but I might as well reflect the sentiment and invite you all (even those of you who actually don't live in Silicon Valley) to come out to Cupertino tomorrow (thursday) night to see if I can actually pull off a Windows-esque presentation in front of a room full of Mac developers. <br>
<br>
I will be discussing a lot of the latest developments in .NET 3.0 and Visual Studio 2005 and contrasting them where appropriate to the state of Mac development with Xcode, Cocoa, Objective-C and all the other niceties that Leopard's developer tools offer. If possible I will also try to work in a bit about <a href="http://www.mono-project.com">Mono</a> as another alternative in the sea of options for developers these days. <br>
<br>
I'll make sure that I either post my slides to my <a href="http://flickr.com/photos/agentdero">flickr stream</a> or the PDF of the slides to this blog after the fact. If I don't however post before Saturday that means I've probably been beaten up and left for dead by a room full of <em>angry</em> Mac developers.

View File

@ -0,0 +1,14 @@
---
layout: post
title: City of Lost Boys
tags:
- Opinion
created: 1177201910
---
I have struggled to characterize the city of San Francisco ever since first coming out here for a job interview almost a year ago. The city escapes generalization because of the sheer magnitude of intermixing of races, cultures and economic classes, regardless I still am constantly fascinated by San Francisco (that and <a href='http://www.skateboardingbulldog.com/">skateboarding dogs</a> of course). There are two pervailing characteristics about the bay area that I'm noticing already that are only tangentially related, but help make San Francisco the place it is, nobody ever grows up, and it also seems that everyone is a dreamer. <br>
<br>
Despite the obvious age differential between some of my coworkers, and the different types of people that I meet either walking down the street or into a bar, I feel amongst my peers. It is uncanny to come from a place like Texas where the lines between young and old are drawn firmly in the dry, cracking soil, to a place like this where the more traditional boundaries between people have deteriorated. As a weird karmic side-effect, almost everybody seems to be perpetually stuck in their mid-to-late twenties. <br>
<br>
The youthful exuberance that floods over most of the bay area, and Silicon Valley, seem to be one of the many reasons why the topsoil is so welcoming to startups. Like most starry-eyed young people, not yet jaded by the harsh realities of an unforgiving world, so many people here have a dream to strike it rich. Unfortunately, like those that came to this part of California so long ago for the gold contained in the hills, almost nobody will strike gold. But just like birthday presents to your grandmother, it's the thought that counts. <br>
<br>
The perpetual optimism of San Francisco has made it the butt of numerous jokes but also the target of many envious eyes and in general a fun place to be. While it is very possible that <a href="http://buzz.vox.com/">Buzz</a> might be (temporarily) leaving the insanity, I'm thrilled to join in just the same.

View File

@ -0,0 +1,30 @@
---
layout: post
title: Choosing a platform, Windows and Linux
tags:
- Software Development
created: 1177526955
---
Came across <a href="http://www.oreillynet.com/onlamp/blog/2007/04/the_virtues_of_monoculture.html">an article</a> through <a href="http://it.slashdot.org/it/07/04/25/0050217.shtml">slashdot</a> (I should almost template that intro) that presents the opinion that Microsoft wins over developers by not offering the wide variety of development tools for Windows that are available on Linux. I've got quite a bit of insight on this topic, and I'll get to that in the context of some quotes from the article, but let me start with one thing I think the author has absolutely right. <br>
<br>
<cite>Every time I thought I was going to be stuck, there were a dozen articles explaining how to do exactly what I needed to do, with sample code that was up to date with the versions of the software I was using, and that actually related to the problem I was trying to solve.</cite> <br>
<br>
There are always cases where you end up thinking "this example isn't what I want" on any platform, but by and large the material you can find on <a href="http://msdn2.microsoft.com/en-us/library/default.aspx">MSDN</a> is second to only the OpenBSD man pages in documentation that I've found useful and usable. There is also a huge amount of additional information online for .NET programming (<a href="http://www.codeproject.com/">Code Project</a> comes to mind). This is the only part of the article I can say I strongly agree with. <br>
<br>
<!--break--> <br>
<br>
<cite>I thought Id share a few thoughts on why people seem to be drawn to the Microsoft Way.</cite> <br>
<br>
The reason I do Windows development is because it has been the platform available for every job I've had since 2001. When I was a co-op student working with industrial control systems I did PLC programming and the manufacturers provided Windows tools to work with. When I started my current day job they were looking for a nice Windows replacement for an old DOS program. I do a lot of quick data acquisition setup for experiments and I typically grab a Windows laptop and one of a pile of cheap PCMCIA data acquisition cards that we have lying around that don't have Linux drivers. I'm doing some freelance application development for a medium sized company which is an all-Windows shop. None of these reasons have anything to do with lack of choice, and I suspect my experience is fairly similar to a lot of Windows developers. <br>
<br>
<cite>Microsoft offers the certainty of no choices. Choice isnt always good</cite> <br>
<br>
There is no lack of choice on Windows. Most of the options available for Linux also apply to Windows. I can do a project in Visual Basic, C, C#, C++, Java, Ruby, Python or Perl, or choose Win32, .NET, Mono, GTK+, Qt, WxWidgets, or nearly anything else under the sun. I will admit this may or may not apply as much to web development, since that is an area I generally stay away from, but saying there is no choice for development on Windows is simply not true. Just because there is an obvious preference doesn't mean the choice doesn't exist. I should state explicitly that I won't consider only products offered by Microsoft to be the same as choices for programming on Windows. Just because the OS provider is also a tool provider does not preclude the existence or use of other tools. <br>
<br>
The astute among you may have noticed I've sidestepped the choice of Linux distributions, and I did so intentionally. I consider it prerequisite for becoming a developer on either platform to be a user of that platform. If you are talking about converting Windows developers to Linux developers they first have to be Linux users, at least to some level of proficiency, and vice versa. The distribution choice is much relevant to users than to developers. <br>
<br>
<cite>The takeaway I get from this entire line of reasoning is this: that somehow, someway, we need to start doing some winnowing</cite> <br>
<br>
What I really think about why developers program on and for Windows instead of Linux is that Windows is still the dominant environment for most of these developers, exactly the reasons I gave for my own programming on Windows. I've done some Linux programming at my day job in addition to my Windows programming. The longer I'm here the more I'll do and the less dominant Windows will become in this one organizational group. The issue as I see it isn't the quality of the OS or the available development tools, nor is it the number of tools available, it is simply a matter of inertia. <br>
<br>
Unfortunately I'm in no position to bring Mac into this discussion, but it'd be great to see some discussion of that as well.

View File

@ -0,0 +1,8 @@
---
layout: post
title: Site Upgrade
tags:
- Miscellaneous
created: 1177914937
---
Just a side note, I upgraded this site to <a href="http://drupal.org/">Drupal</a> 5.1 this weekend. I'm not sure if there will be any visible changes besides the obvious theme change, but overall things should work smoother. <br>

View File

@ -0,0 +1,31 @@
---
layout: post
title: Im in ur phonez
tags:
- Software Development
created: 1177929000
---
In a weird sort of cosmic coincidence, I happened to be researching some of the mobile developer tools available after a weekend of toying with the <a href="http://msdn2.microsoft.com/en-us/windowsmobile/default.aspx">Windows Mobile 5.0</a> framework (which is pretty cool by itself) within Visual Studio 2005, and while I was doinking around on the internet, I came across Nokia's <a href="http://www.forum.nokia.com/main/resources/technologies/open_c/">Open C</a> platform. By itself Open C is pretty impressive, but after digging around some more the entire Nokia development platform is certainly not what I expected. Quicker than you can say OMIGOSHSYMBIANSUCKS I found myself immersed in <a href="http://www.openmobilealliance.org/tech/affiliates/wap/wapindex.html">whitepapers</a> and code all targetted at developing for the gigantic mobile market. <br>
<br>
Before I dive into Windows Mobile, I must first disclaim that I'm a relatively big fan of the .NET platform, usually by means of the <a href="http://www.mono-project.com">Mono Project</a>. The <a href="http://msdn2.microsoft.com/en-us/netframework/aa497273.aspx">.NET Compact Framework</a> (referred to as .NET CF) is merely an extension of the .NET framework meaning you can use a lot of the same code and know-how for developing Windows Forms interfaces for Windows Mobile enabled smart phones as well as already existing code for the backend of your embedded application (there is also an interesting extension on .NET CF available at <a href="http://www.opennetcf.org/">OpenNETCF</a>). The power of this sort of portability should go without saying, but why not say it anyways? Because of .NET CF I can write the same services and network interoperability code that can be used in my desktop application and take it straight over to my embedded application with zero or minimal hassle (optimizing your bloated desktop code for an embedded application is always a good idea). In addition the normal trimmings of .NET, the Microsoft.WindowsMobile namespace offers a myriad of device-specific APIs for sending messages, interacting with a smart phone's contacts, calendaring, camera, media player and all the rest that comes stock on modern Windows smart phones. With a saturday afternoon spent in an empty office pouring over API documentation and hacking furioiusly on some test applications, I could send messages, take pictures, play with contact information and do some G-rated damage to a Windows smart phone (<a href="http://channel9.msdn.com/Showpost.aspx?postid=209122">Rory Blythe's screencasts on the subject are a fantastic resource as well</a>). The obvious downside is that it <em>is</em> Windows (Mobile) and that the consumers that tend to own Windows smart phones tend to be business types who walk around with suits and have the word "synergy" tattooed on their buttocks. Not my cup of tea, nor my target market. Next! <br>
<br>
On the other side of the world to Nokia. Nokia's S90 platform is expansive to say the least, and runs on <a href="http://www.s60.com/life/s60phones/browseDevices.do">quite a few devices</a> as well. While I'm certainly not "in the biz" with regards to mobile device development, the sheer size of the entire S90 platform and the varying means of using it surprised me. Nokia's S90 platform builds on top of Symbian (ick!) which, fortunately, powers more than half the mobile market but, unfortunately, sucks. You know it, I know it, even <a href="http://www.symbian.com/">Symbian Ltd.</a> knows it, so let's stop pretending. With regards to Nokia's developer tools though, they offer a relatively stock <a href="http://www.forum.nokia.com/info/sw.nokia.com/id/d9f7e9b2-3932-4358-9e8e-aa5cd26be54e.html">Java API for developers</a> to use (<a href="http://www-128.ibm.com/developerworks/opensource/library/os-ecl-rcp/">eSWT</a>? gross!), their <a href="http://www.forum.nokia.com/main/resources/tools_and_sdks/carbide_cpp/">Carbide C++</a> framework which builds on top of Symbian's own C++ libraries, and even a <a href="http://www.forum.nokia.com/info/sw.nokia.com/id/ee447e84-2851-471a-8387-3434345f2eb0/Python_for_S60.html">Python API</a> for their SDKs (the <a href="http://www.mono-project.com/Maemo">Maemo</a> work is worth a look too). Most interesting to me was their <strong>Open C</strong> project which borrows some of the best bits and pieces from a few open source projects and brings them to the mobile platform. While Nokia <a href="http://www.s60.com/life/s60phones/displayDeviceOverview.do?deviceId=262">obvious doesn't have a clue with device design</a> they do seem to be with it in terms of the open source world. Open C is built primarily on top of OpenBSD and OpenSSL libraries with a bit of libz and GNOME thrown in there as well. <br>
<table width="100%"> <br>
<tr><td><b>libc</b></td><td>OpenBSD</td></tr> <br>
<tr><td><b>libcrypt</b></td><td>OpenSSL</td></tr> <br>
<tr><td><b>libcrypto</b></td><td>OpenSSL</td></tr> <br>
<tr><td><b>libglib</b></td><td>GNOME</td></tr> <br>
<tr><td><b>libm</b></td><td>OpenBSD</td></tr> <br>
<tr><td><b>libpthread</b></td><td>OpenBSD</td></tr> <br>
<tr><td><b>libssl</b></td><td>OpenSSL</td></tr> <br>
<tr><td><b>libz</b></td><td>libz</td></tr> <br>
</table> <br>
Either somebody at Nokia really wants to piss Theo de Raadt off, or they have a high opinion of his work! Personally I wouldn't have chose OpenBSD, but their unwaivering committment to the "absolutely open source" ideology seems to make their projects an ideal fishing ground for commercial ventures who are really looking to stand atop the shoulders of giants. <br>
<br>
Even Blackberry has tools <a href="http://www.blackberry.com/developers/resources/index.shtml">readily available for developers</a>, but I can't say I've researched them too much. I'm pretty sure that people who develop applications for Blackberries go sterile or get cast outside the universe at armageddon or something. <br>
<br>
The device development world is riper than ever for some killer application development, <a href="http://www.opera.com/products/mobile/">the Opera guys seem to get it</a> (they use <a href="http://www.trolltech.com/products/qtopia">Qtopia</a> from what I can tell</a>), <a href="http://www.google.com/gmm/index.html">the Google guys seem to get it</a>, where are the smaller shops? If the iPhone turns out to have some sort of "<a href="http://rentzsch.com/cocoa/iphoneIndieAppDevelopment">Cocoa Mobile Edition</a>" (a poor ripoff on my part from <a href="http://java.sun.com/javame/index.jsp">JavaME</a>) then I think we will see an influx of Mac independent developers to the iPhone as a platform all battling for a tiny niche of a niche just as they are on the Mac platform. What about the entire rest of the mobile market? <br>
<br>
With the growing ubiquity of the mobile devices market the opportunity for independent developers to write killer applications for Windows Mobile, Symbian, embedded Linuxes, and possibily the iPhone, is more attainable than ever. The tools to develop are either free or cheap, and you don't necessarily need to be a hero-programmer to develop applications for these embedded systems anymore either. <br>
<br>
That said, Brent, I'll buy you a beer when I see <A href="http://www.newsgator.com/NGOLProduct.aspx?ProdID=NetNewsWire">NetNewsWire</a> iPhone Edition.

View File

@ -0,0 +1,14 @@
---
layout: post
title: Windows Eye for the Cocoa Guy
tags:
- Software Development
created: 1177980477
---
I finally got around to posting the slides for my presentation at the april <a href="http://cocoaheads.org/us/SiliconValleyCalifornia/">CocoaHeads Silicon Valley</a> meeting. <img src="http://unethicalblogger.com/files/keynote_icon.jpg" align="right"> The motivation for the talk was to introduce my fellow Mac developer colleagues to some of the goods and bads of modern Windows develolpment. One of the primary points I tried to bring across was that Apple doesn't <em>yet</em> have an IDE that I would put on the same level as Visual Studio 2005, which is arguably one of the most complex and complete IDEs out there (with Eclipse in a close second, in my opinion). Xcode (and friends) in Leopard are <strong>very</strong> close to taking the throne away from Microsoft in that respect, but there are still a few things that are holding them back, such as gdb, which is still a relatively primitive debugger. <br>
<br>
With .NET 3.0 however, Microsoft is fighting back hard for the make-believe "most cool framework" award, with additions like Windows Presentation Foundation (formerly called Avalon). The downside of a lot of .NET 3.0 however is Microsoft's incessant love of all things XML, as WPF is based primarily on XAML which is grotesque on a good day. <br>
<br>
Unfortunately I can't repeat my entire presentation, and I didn't want to post my presenter notes, but hopefully you can ascertain enough information from my presentation. <br>
<br>
<a href="http://www.flickr.com/photos/agentdero/sets/72157600162163767/">Windows Eye for the Cocoa Guy</a>

View File

@ -0,0 +1,10 @@
---
layout: post
title: Twitterbot Recap
tags:
- Mono
created: 1178062136
---
While trudging through some comment spam, I came across some older comments that I felt needed recapping in <a href="http://unethicalblogger.com/posts/tyler/twitterbot_no_really_i_need_to_be_stopped">this post about my Twitterbot</a>. An anonymous poster had asked about some issues with Mono on Mac OS X returning 401 Unauthorized errors when using HTTP authentication within the <a href="http://trac.geekisp.com/bleep/wiki/Twitterbot">Twitterbot</a>. The issue was fixed relatively quickly after I brought it to the attention of some of the Mono developers, and the fix will be included in <a href="http://mono.ximian.com/monobuild/preview/download-preview/">Mono 1.2.4</a> (preview available). <br>
<br>
There shouldn't be any more issues with regards to running the Twitterbot on any platform supported by Mono now. In the future I would also like to add better history and duplicate checking by using either a flat-file datasource or one that feeds on a database, but the latter would probably make the program far more complex and difficult to use. Ideas, as usual, are always welcome.

View File

@ -0,0 +1,16 @@
---
layout: post
title: Windows Eye for the Cocoa Guy, The Series
tags:
- Windows Eye for the Cocoa Guy
created: 1178178004
---
After giving the idea a bit of thought and the desire to further alienate myself from my fellow Mac developers (i've noticed the drop in hits when I started mentioning Windows development versus Mac development), I've decided to turn "Windows Eye for the Cocoa Guy" into a series of posts detailing some of the architectural and semantical differences between developing applications in Cocoa on Mac OS X, and .NET on Windows. I've found myself lamenting my performance at the <a href="http://cocoaheads.org/us/SiliconValleyCalifornia/">CocoaHeads Silicon Valley</a> meeting because I felt like I either didn't have the time, or carelessly glossed over a lot of details that should have been mentioned. I was cramped for time before the presentation as well so I couldn't prepare enough (see: any) code samples or demos beforehand to pimp out some features of .NET or Visual Studio that are still lacking in Objective-C 2.0 and Xcode. <br>
<br>
I'm still crafting some of my points to make in upcoming posts, by <a href="http://www.ditchnet.org/wp/">user request</a> (<a href="http://unethicalblogger.com/posts/tyler/windows_eye_for_the_cocoa_guy">here</a>) I intend to cover XAML in general (as well as <a href="http://en.wikipedia.org/wiki/Microsoft_Silverlight">Silverlight</a>) contrasted against the "freeze-dried objects" model that <a href="http://en.wikipedia.org/wiki/Interface_Builder">Interface Builder</a>, with a dash of Windows Forms Designer too. <br>
<br>
Also on the yellow notepad of bloggery, I would like to touch on the differences between C# Events in how they're handled and created versus the <a href="http://inessential.com/2007/04/25.php">less than popular</a> NSNotification way of doing events in Cocoa. Major differences also exist between the ways of doing .NET asynchronous I/O compared to Cocoa "asynchronous I/O," in quotes because, as much as I love the runloop, scheduling tasks to the runloop doesn't count in my opinion as asynchronous I/O [1]. <br>
<br>
While I enjoy being slightly provacative, I'm really aiming to be pelted with rocks at WWDC. You'll be able to find me sitting at a table all by myself outside Moscone. Regardless of the certain doom I will face posting about Windows development from a Mac developer perspective, I hope the series will at the very least be interesting and educational. <br>
<br>
<strong>1.</strong> <small>The lack of "real" asynchronous calls in Cocoa <em>bugs the hell</em> out of me. Darwin is one of the few operating systems I've developed on with functions like <a href="http://developer.apple.com/documentation/Darwin/Reference/ManPages/man2/aio_read.2.html">aio_read(2)</a> and friends. Besides scheduling a call on the runloop, you can spawn a worker thread yourself, both options don't take advantage of the <strong>aio_*</strong> functions which just...sucks.</small>

View File

@ -0,0 +1,14 @@
---
layout: post
title: My Guilty Pleasure
tags:
- Media
created: 1178483600
---
Reminiscent of Michael Bolton, Peter's side-kick, from <a href="http://en.wikipedia.org/wiki/Office_Space">Office Space</a> I find myself indulging more and more in one of my numerous, geeky, guilty pleasures. Hip-hop. Not just <em>any</em> hip-hop, dirty south hip-hop. Sideways-sittin', wood-grain grippin', screwed and chopped, smoked-out dirty south hip-hop. One of the few exports that I'm proud Texas has produced (<a href="http://en.wikipedia.org/wiki/George_W._Bush">ahem</a>) in the last ten or fifteen years. Texas hip-hop in general is a weird mix between the "roots" of rap in that a lot of it focuses on the ghettoes and hardships the artist has experienced growing up in places like Houston's 5th ward, to the "more modern" hip-hop which has become more and more about women, cash, and cars; mainstays of any good hyper-masculine artform. <br>
<br>
There. Now you all know. I'm a sandals-wearing, Volkswagen driving, computer programming, book reading, hip-hop fan. Chances are, if I'm driving somewhere, in between points A and B, I'm bumping in my blue Jetta to some David Banner, Paul Wall, Mike Jones, Slim Thug and even some good old Geto Boys. Forget the east coast-west coast nonsense, with the exception of artists like Mos Def, the new home for hip-hop is in the south. <br>
<br>
While working, I listen to a few internet radio stations whose collections of hip-hop far exceed my own. In the past I have listened to a great bit of <a href="http://smoothbeats.com/home.shtml">Smoothbeats.com</a> which is a more traditional hip-hop and rap station, but since leaving Texas I find myself listening to <A href="http://thugzone.com/">Thugzone.com</a> far more. I recommend them both if you're in the same ackward cultural boat that I am, or if you just loves you some hip-hop. <br>
<br>
The hip-hop scene has definitely embraced the internet with independent artists like Slim Thug and Mike Jones using it to get their music out to their audiences without relying on rich, prodominently white, record executives to decide which music was more fit for black America. Fortunately for the suburban white kids among us, who have been able to side-step the mainstream media and enjoy the works of artists who may be only from a few miles away but are on the other side of a deep crevasse of social precendence and economic class-structure.

View File

@ -0,0 +1,18 @@
---
layout: post
title: Our employees are our most valuable asset
tags:
- Slide
- Software Development
created: 1178791890
---
Having an epiphany over a two-beer lunch on a Wednesday isn't hard, and if you can't, make it a three-beer lunch. I had one such epiphany today where, as if stars in the mental mockup of the corporate world inside my head, started to come into alignment. It is one thing to release a corporate memo that states 'employees are our biggest asset'"or similarly market-drone-tainted nonsense, it is another thing to try to maintain a state of human resources nirvana where your employees genuinely <strong>like</strong> each other. In my less than expansive track record as a professional software developer, I've always chose the cut in pay, over dealing with colleagues that I don't like. That is to say, I've always opted for the companies to work for where I really enjoyed working with who I'm working with, regardless of what I've been working on. In the end, it's just code. They're just projects. And none of it really matters if you absolutely abhor your coworkers. <br>
<br>
I don't. I enjoy working with who I work with, and if you've followed the constant stream of absolute nonsense from <a href="http://twitter.com/agentdero">twitter stream</a> it might start to become apparent why I spend so much time at <em>the office</em> (cue suspenseful music). I realized that I'm in the right place over the aforementioned two-beer lunch when I made a reference to a paragraph-long snippet from an ancient page of <a href="http://www.jwz.org">Jamie Zawinski's</a> and everybody at the table knew exactly what I was talking about (<a href="http://www.jwz.org/gruntle/nscpdorm.html">Wednesday, 21 September 1994</a>). The references to <a href="http://en.wikipedia.org/wiki/Arrested_Development_%28TV_series%29">Arrested Development</a>, or just the common understanding that we will all make jokes, and often the funnier ones are at each others' expense, all make the office a very enjoyable place, to where you can find yourself getting carried away until the wee hours of the morning. (<a href="http://www.slide.com/static/jobs">Did I mention we're hiring?</a>) <br>
<br>
The startup atmosphere is certainly refreshing after dealing with smaller companies for so long that just "don't get it" when it comes to balancing between trying to bring products to the market yesterday, slowly grinding employees into either burnout or other companies, and the companies that don't understand you're allowed to think big, even if the payroll is small. It is also harder for companies to grow, while maintaining their "startup" tendencies. Apple seems to be proverbially stuck in the "90 hours and loving it!" mode, while Yahoo! has gone from a Web 1.0 blitzkrieg of products to a slow, lumbering giant that operates in every sense that you'd think a large software company, with the right hand not knowing exactly what that pesky left hand is doing over there. Google just has too much damn money. Microsoft is disintegrating into the IBM of old, and all of them fail to capture the fun and excitement of the startup, even though some have tried so valiantly to replicate it[1]. <br>
<br>
At the end of the day, the majority of us (Americans) need to find some sense of satisfaction and identity in what we do for a living, the importance of who you work with for the majority of your day is the difference between waking up in the morning and dreading what is to come, and waking up in the morning looking forward to lunch just so you can cut out of the office and hang out with your coworkers (I was going to fabricate some statistics about heart disease and stress levels, but the well ran dry shortly after that two-beer lunch when I exceeded my quota of bullshit for the day). In any given job interview that I've been on, I've always been measuring them up while they measure me up, asking myself important questions like if I work here:<ul><li>will this person annoy me?</li><li>will I be thoroughly caffeinated?</li><li>will I <strong>need</strong> to work 12 hour days, or might I just choose to sometimes?</li><li>if we accidentally got into a bar fight with a competitor, would we win?</li><li>will the world come to an end if we miss a deadline?</li></ul>There is little worse (professionally) than ending up on a team, or in a company with people you would try to avoid in public, but on the flip so there is little better (professionally) than ending up on a team, or in a company with people you would come to the office to hang out with even if you didn't have to. <br>
<br>
<br>
<strong>[1]</strong>: <small>The startup atmosphere seems to thrive around the idea of "make it big or go home." They tend to know that their time is limited so they try to shoot for the stars while they have a chance, some make it there, some burn up on the descent back down.</small>

View File

@ -0,0 +1,10 @@
---
layout: post
title: Sp4mz0r
tags:
- Miscellaneous
created: 1179610398
---
After receiving an email a few weeks back about blog spam on my former blog, I decided that I'd go ahead and remove it. About 500 random spam comments later, it's been mostly removed. I'm still wondering if the captcha is <em>that</em> much better for Drupal, or if I've simply not posted anything popular enough to register on the Digg, or O'Reilly blog radars to attract the spam bots? I feel so unloved :) <br>
<br>
As a side note, I finally got around to fixing the Drupal mail issue for this site, so if you attempted to register, but never got the confirmation you can request a new password to reset your account. I'm also testing the Twitter Drupal module with this post. Oy.

View File

@ -0,0 +1,31 @@
---
layout: post
title: "Conference Season: OSBC"
tags:
- Opinion
created: 1180231424
---
I was fortunate enough to be able to go to "OSBC" (Open Source Business Conference) during this past week, I didn't exactly have a badge and I didn't register, I walked right in and snooped around since OSBC was hosted at the Palace Hotel on New Montgomery and Market St (a mere two blocks from <a href="http://www.slide.com">Slide</a> offices). It was <strong>right there</strong>, how could I resist? While at OSBC I met up with my good friend <a href="http://talk.bmc.com/blogs/blog-whurley/whurley/">whurley</a> to have lunch, meet some folks, and the usual pointing and laughing at the suits scurrying about. After the meeting a few folks and taking in a lot of what was going on, I couldn't help but thinking: <br>
<br>
<center><strong>Shit.</strong></center> <br>
<br/> <br>
<br>
<em>They</em> know, <em>they</em> know, <em>they</em> know. Not only do <em>they</em> know, <em>they</em> now use it casually the same way <em>they</em> started to talk about "emerging web technologies", the "services oriented architecture", the "power of viral marketing through the blogosphere", etc. <br>
<br>
<em>They</em> are now talking about "leveraging open platforms" and "the convergance of open source and <em>their</em> systems". <strong>This</strong> has become nothing more than a bullet point on a poorly made PowerPoint presentation, nothing more than another tagline in a corporate press release. <br>
<br>
<center><strong>Shit.</strong></center> <br>
<br/> <br>
<br>
It's over now, it was such a fun ride, but it is so over it hurts. Looking at the big companies re-orienting themselves around a more "open source" attitude is almost as painful to watch as last year's State of the Union address. Apple adopted open source out of necessity, Novell adopted open source out of necessity (besides, remember how much Groupware SUCKED?), why are these other companies adopting open source? It's the hip new thing of course! <br>
<br>
Overhearing suits talking to one another, blindly curious as to what the others' companies' "open source strategy is" is like nails on the chalkboard of my little open source soul. It is a completely empty thought for <em>them</em>, just as once upon a time <em>they</em> were buzzing about <em>their</em> new "web presence strategy" regardless of whether or not it made sense for "Johnson Toxic Chemicals USA, Inc." to have a web presence, <em>they</em> wanted one so they could checkoff a tally-mark on the "Uninformed Suits Monthly" magazine survey. <br>
<br>
If we're lucky they won't corrupt it too much like they did to the internet in the late 90's. <a href="http://talk.bmc.com/blogs/blog-whurley/whurley/observations-from-osbc">whurley's</a> comment "they're here" with regards to the number of lawyers that he came across at OSBC is extra-special scary. It's funny though, just the other week as I was partaking in yet another "GPL vs. MPL vs. BSD" license flamewar, I couldn't help but think: "you know what would make open source better, <strong>some more fucking lawyers</strong>." The only way I would want lawyers muddling with open source would be if their name was "Johnny Cochran," <a href="http://en.wikipedia.org/wiki/Chewbacca_defense">purely for the entertainment value alone.</a> <br>
<br>
Just like everything good that's ever happened, rock music, the Olympics, rap music, hockey, and of course, beer. Open source is about to be commercialized and turned into a commodity by soulless corporations and lawyers. <br>
<br>
It was fun while it lasted, I guess. <br>
<br>
<center><strong>Shit.</strong></center> <br>
<br/>

View File

@ -0,0 +1,13 @@
---
layout: post
title: Almost There
tags:
- Slide
- Miscellaneous
created: 1180938640
---
For the past two weeks I've been in super-mega-extreme stress mode, helping release an insane amount of features, applications, and fuzzy bunnies, which means my miscellaneous hacking time has been consumed by the man. I've got two week old code sitting in my /Software folder waiting to be tested, committed to Subversion and released for my "Windows Eye for the Cocoa Guy" series. <br>
<br>
I've casually mentioned to a few friends that we'll catch up when the insanity dies down, to which I get chuckles and "nice knowing you" comments. <br>
<br>
You Silicon Valley veterans suck. <br>

View File

@ -0,0 +1,28 @@
---
layout: post
title: Long Live the License Flamewar
tags:
- Opinion
created: 1181333669
---
It's been far too long since I've lobbed a shell in the direction of a good "discussion" on open source licensing, so <a href="http://talk.bmc.com/blogs/blog-whurley/whurley/the-death-of-a-software-license/">thanks whurley</a>. I haven't stood on my soapbox/posted here in a while either, what better opportunity to go off on why I don't think the GPLv3 does anything worthwhile and what I think is wrong with nearly every GPLv3 vs. GPLv2 discussion. <br>
<br>
The non-problem that v3 tackles is <a href="http://www.fsfeurope.org/projects/gplv3/tokyo-ciaran-transcript.en.html#tivoisation-and-freedom">"tivoization"</a>. The concept here is that Tivo takes linux, customizes it, puts it on their set top boxes, makes their customizations available, and locks down the set top boxes you can't change the software running on them. To the first reason at the link I gave, I say "so what". Tivo makes a device that phones home and you can't turn it off. There is no issue modifying the software, as they correctly point out, but you can't make the hardware operate with that modification. I don't think preventing people from repurposing hardware is something that should be pursued in a software license. <br>
<br>
They go on to further justify this with <a href=http://www.fsfeurope.org/projects/gplv3/tokyo-ciaran-transcript.en.html#tivoisation-and-catastrophe">a doomsday scenario</a>. The reason it seems far fetched is because it is. The programmable computer is simply not going to disappear. Special purpose computers are being locked down, but that is nothing new. I have a pile of electronics in my home that I can't program and I don't think one of them running Linux should make that any different. <br>
<br>
I'll also note that they <a href="http://www.fsfeurope.org/projects/gplv3/tokyo-ciaran-transcript.en.html#q4">don't seem to look at a doomsday scenario<a/> for the so-called <a href="http://weblog.infoworld.com/openresource/archives/2007/03/gplv3_goes_weak.html">ASP loophole</a>. <br>
<br>
The other feature GPLv3 offers that I don't see much value in is the patent provisions. One more weapon in a patent arms race. While I appreciate that things like patent pledges have worked largely as a deterrent to widespread software patent lawsuits, so far, the GPLv3 is applying a small bit of salve to a sore while doing nothing for the <a href="http://lpf.ai.mit.edu/Patents/industry-at-risk.html">disease</a>. <br>
<br>
Now I'm going to talk about the argument itself. If we look through the <a href="http://talk.bmc.com/blogs/blog-whurley/whurley/the-death-of-a-software-license#comments">comments</a> <br>
to the post that I originally linked we can sum them up pretty easily. <br>
<ul> <br>
<li><em>The respectful disagreement</em> - These are good, I'm a bit hard on GPLv3 proponents when my real problem is with Free Software Zealots.</li> <br>
<li><em>You don't understand the problem</em> - they don't understand that it's even possible to have a different opinion, or they just feel as though your opinion doesn't matter</li> <br>
<li><em>Trust me, there is a problem</em> or <em>that loss of freedom is for your own good</em> - Gee, thanks. I just needed to be reminded that RMS is "Far-sighted" and that my opinion still doesn't matter</li> <br>
<li><em>Just go with it, the goals are the same, this is just an update</em> - Obviously some people chose the GPLv2 thinking Tivo was fine. A purported Bruce Perens gave this one along with some more constructive comment</li> <br>
<li><em>Yeah, you tell'em whurley</em> - agreement with very little substance, my comment included</li> <br>
</ul> <br>
<br>
Thinking that people who disagree with the GPLv3 just need to be educated is wrong. I'm sick of seeing "You don't understand," "Trust in RMS," and "This is just an update" responses. Not every issue is a war to be argued, and not everyone will agree with you. I think you become a zealot when you decide that you are obviously right and there is no room for disagreement.

View File

@ -0,0 +1,25 @@
---
layout: post
title: Insanity.
tags:
- Slide
- Software Development
- Facebook
created: 1182691338
---
It's been exactly one month since the <a href="http://ma.gnolia.com/groups/f8">F8</a> event (Facebook Platform Launch) changed everything, and it's still going. <br>
<br>
Rumor has it that users at some point translate into money, and at some point that money <em>might</em> see my bank account. I'm not holding out hope for this, but it's a novel idea. <br>
<br>
Who would of thought that some of the <a href="http://www.flickr.com/photos/agentdero/610280231/">goofiest ideas I've ever implemented</a> would take off? <br>
<br>
Here's the differences that I've found:<ul><li><strong>Indie Developer:</strong> "Man it'd be cool to have a couple of thousand users"</li><li><strong>Enterprisey Contract Developer:</strong> "Man it'd be cool to have a couple hundred thousand users"</li><li><strong>Startup Developer:</strong> "Man, I hacked up something over the weekend that has a couple of million users. Ho hum, to the pub?"[1]</li></ul> <br>
The sheer scale of the market on the web is mind-boggling, despite working for a <a href="http://www.slide.com">web company</a>, I still stand by Todd Manning's comments of "I hate the web, the web is stupid." It's a fact I accept however, I hate Windows as a development platform, but I'm willing to accept that it's too large of a market to ignore (something the guys at <a href="http://plasq.com/">plasq</a> get with both <a href="http://plasq.com/skitch">skitch</a> and <a href="http://plasq.com/comiclife">ComicLife</a>). <br>
<br>
Not three months ago my days were filled with <a href="http://www.mono-project.com">C#</a> and now it's all <a href="http://python.org">python</a> all the time. <br>
<br>
<br>
I'll sleep when the bubble pops. <br>
<br>
<br>
<strong>[1]</strong> <em>Just kidding, I cherish every single one of my users like they were my own children, staying up late worrying, wishing it were legal to hit them with a plank of wood</em>

View File

@ -0,0 +1,20 @@
---
layout: post
title: Thriving in a Development Vacuum
tags:
- Software Development
created: 1182879667
---
Last week there was a post on <a href="http://www.codinghorror.com/blog/">Coding Horror</a> about the <a href="http://www.codinghorror.com/blog/archives/000890.html">"Dangers of programming alone"</a>. Jeff quotes <a href="http://eddiesguy.blogspot.com/2007/06/creating-my-own-personal-hell.html">this article</a> which does a fairly good job of expressing the plight. Programming is not a full-time aspect of my work (at least not now) but when we need an application to do some piece of analysis or run some piece of equipment I am the sole developer. While I can relate to watching myself make those mistakes I don't share the same bleak opinion of being a lone programmer. Over the years I've been slowly figuring out how to make the sole-developer arrangement work. <br>
<!--break--> <br>
<ul> <br>
<li><strong>Discipline is key:</strong> As mentioned in the original post, and quoted on Coding Horror, there is a lack of oversight in a situation like this. You are your own overseer. You have to have a great deal of resolve to keep your code clean, to keep your work prioritized, to keep on deadline, to keep up with documentation.</li> <br>
<li><strong>It isn't really a vacuum:</strong> I've got <a href="http://dave.redterror.net">some</a> <a href="http://unethicalblogger.com/blog/tyler">friends</a> online that I frequently bounce ideas off of and vent to. They often don't know specifics of what I'm working on, and they don't work on anything similar to what I'm doing, but it has still been vital to keeping me sane.</li> <br>
<li><strong>Keep learning new things:</strong> My early work was all in VB6, since then I've done projects in C, C#, Java, and Ruby, as well as a bit of dabbling in Python. If I had been stuck doing VB6 all this time I probably wouldn't be coming back tomorrow.</li> <br>
<li><strong>Be in control:</strong> Keep in contact with the relevant parties involved in the project. Don't be afraid to say things like "this can't be properly implemented in that amount of time" or any other variation of "no". It's hard to say "no" because, at the end of the day I really <em>want</em> to do almost every project that gets proposed.</li> <br>
<li><strong>There's more to life:</strong> At the end of the day, every day, I go home and I play with my kids. There is no project, no deadline, and no responsibility in my professional life that is more important to me than my family. Of course that doesn't mean that I don't work late, or work at home on weekends, but it provides a necessary balance when work starts to stress me out. Of course this really has nothing to do with working in a vacuum, it is a basic necessity for any position.</li> <br>
</ul> <br>
<br>
I think suggesting that programmer should demand to work with other programmers, as suggested in the Coding Horror post, is a bit extreme. The real requirement is to be able to work in a way that won't drive us insane, whether alone or in a team. <br>
<br>
Of course this is all based on my personal position, which doesn't involve programming for all 52 weeks in a year, being constrained to one project for extended periods of time, or distributing my applications to any wide audience. Maybe what I should be writing about is all the reasons I love my job ...

View File

@ -0,0 +1,31 @@
---
layout: post
title: Mono, meet Facebook
tags:
- Mono
- Slide
- Facebook
created: 1183571295
---
Recently I've been developing <a href="http://www.facebook.com">Facebook</a> applications on behalf of <a href="http://www.slide.com">Slide</a> (my employer) using our <strong>killer</strong> internal frameworks. While this has resulted in an extremely fast turn around from the whiteboard to release and 8 of the most used applications on Facebook with well over 15 million users, it's all in Python, about 100 miles and a "tabs vs. spaces" flamewar away from what I "used" to do, <a href="http://www.mono-project.com">Mono</a>. <br>
<br>
Believe it or not, Mono has full ASP.NET 1.1, and a near-complete ASP.NET 2.0 class compatibility (<a href="http://www.mono-project.com/ASP.NET">check it out!</a>). Not only that, there's <strong>two</strong> different ways of hosting a Mono/ASP.NET application, via <a href="http://www.mono-project.com/Xsp#ASP.NET_hosting_with_XSP">xsp2</a> (for development) or with Apache 2 and <a href="http://www.mono-project.com/Xsp#ASP.NET_hosting_with_Apache">mod_mono</a> (for production). The only logical progression for a hacker such as myself, was to write a Mono-based Facebook application, and thus <a href="http://unethicalblogger.com/files/WeatherSharp.png" target="_blank">Weather#</a> was born. <br>
<!--break--> <br>
<strong><big>Development</big></strong> <br>
Fortunately the pervasiveness of Facebook client libraries is approaching the commonality of Twitter client libraries, mostly because it's a simple REST API, and it's <em>cool</em>. Since somebody already wrote the code, and weaseled it into the <a href="http://www.mono-project.com/AnonSVN">Mono Subversion repository</a> (facebook-sharp) I decided to use it instead of rolling my mini API. The code was a bit old, and obtuse to deal with, so I simply incorporated all of the classes into my project, building everything into my web application. Using one of the many SOAP webservices available on <a href="http://xmethods.net/ve2/ViewListing.po?key=uuid:DC12A48B-1A20-36B1-4AB5-9D7EEF18193E">xmethods.net</a>, I used the wsdl.exe app to generate my SOAP client stubs (which are always subclasses of System.Web.Services.Protocols.SoapHttpClientProtocol), which left me with only about 150 lines of interface and basic glue code to bring these components together such that on page load:<ul><li>The user location information is fetched from Facebook</li><li>A SOAP request to the weather web service is made per zip code or city</li><li>The return data is parsed and fed into the page for display</li></ul> <br>
The entire project was built in <a href="http://www.monodevelop.com/">MonoDevelop</a> which has pre-built ASP.NET templates which include customizable build, run and deploy settings for the MonoDevelop build system. When you click "Run" from inside MonoDevelop IDE, it will rebuld the solution, launch your project inside of xsp2 and then open up a new tab in Firefox to the web application. Building/Testing/Deploying is definitely the easiest part of the road to ASP.NET on Mono. <br>
<center><img src="http://unethicalblogger.com/files/md_building.jpg"/></center> <br>
While the <a href="http://www.mono-project.com/ASP.NET_Visual_Designer">ASP.NET Visual Designer</a> is not yet ready for prime time, it's only a minor set back in that you can't drag and drop your web interface together a la Visual Studio .NET, but you have to revert to how most of the web builds their interfaces, with templates and by hand. Given the sheer simplicity of the <a href="http://unethicalblogger.com/files/WeatherSharp.png" target="_blank">Weather# interface</a>, this wasn't a major hurdle to overcome. <br>
<br>
<strong><big>Deployment</big></strong> <br>
The only true problem with this near-perfect development setup is the actual public deployment, there are only a <a href="http://www.mono-project.com/FAQ:_ASP.NET#Hosting">few hosts</a> that provide mod_mono hosting as of yet. One of the most beneficial features of Mono however, is the <strong>full</strong> binary compatiblility with .NET, meaning you can develop your entire web application using the free and open source Mono tools, and then deploy your web application to an IIS ASP.NET server (which are very common in the hosting biz). If you have a colocated server, or a virtual private server, it's trivial to setup mod_mono on your Apache 2 web server with most of the mainstream Linux OSes and *bSD's. With ubuntu, in my case, there's only a few packages to install via Synaptic and then move the configuration over in the /etc/apache2/mods-enabled directory and make sure your configuration is correct. That said, if you're the proud owner of a colocated server it should be trivial to configure everything properly. <br>
<br>
<strong><big>Facebook Integration</big></strong> <br>
Facebook includes a couple key parameters in their calls into your page to present the user your application, such as the <strong>fb_sig_user</strong> and <strong>fb_sig_session_key</strong>, both of which you can pass into any Facebook client library to start to have your application querying the Facebook Platform. Weather# only makes this call once to <a href="http://developers.facebook.com/documentation.php?v=1.0&method=users.getInfo">users.getInfo</a> to fetch the location information it needs. You can query for a lot more information if necessary, but for the purposes of this example, fetching the location was as basic as was necessary. The most complex part is setting up your Facebook applications settings in "<a href="http://www.facebook.com/developers/apps.php">My Applications</a>", the Weather# information can be found <a href="http://unethicalblogger.com/files/monosample_appsettings.jpg" target="_blank">here</a> (opens in a new window). The most important information is in the screenshot, but if you'll note the callback URL settings. They are set to "iframe" for development purposes (and my desire not to open another port in the firewall to my workstation) and are hitting localhost port 8081, which is the local port I configured my MonoDevelop-deployment xsp2 settings to use. If you switch it over to FBML, you will either have to serve up FBML to the canvas page, or an &lt;fb:iframe/&gt;, but both require Facebook being able to contact your callback URL for proxying purposes. <br>
<br>
<strong><big>&lt;fb:conclusion/&gt;</big></strong> <br>
Developing with ASP.NET on Mono is essentially no different than developing with ASP.NET on the stock Microsoft .NET assemblies with the key difference being...no Microsoft .NET assemblies, and no IIS. Meaning, that if you're comfortable with C# or Visual Basic, you can very quickly, and very cheaply develop ASP.NET-based web applications (or web services) and serve them from within your existing <a href="http://en.wikipedia.org/wiki/LAMP_(software_bundle)">LAMP</a> infrastructure. In my opinion, this is one of the best options out right now for current web development, right behind Python; the absolute power of the .NET class libraries is unparalleled, from web controls, to web services, to <a href="http://en.wikipedia.org/wiki/ADO.NET">ADO.NET</a> for data storage, the tools available to the overworked and underpaid developer are worth looking into if you're not already "in the know." mod_mono and xsp2 both run on Mac OS X, Linux, and FreeBSD, and are in the package systems across those platforms (<a href="http://www.macports.org/">MacPorts</a>, <a href="http://en.wikipedia.org/wiki/Advanced_Packaging_Tool">APT</a>, or <a href="http://www.mono-project.com/Mono:FreeBSD">Ports</a>). MonoDevelop works on Linux and FreeBSD, you can get it working on Mac OS X but it's about as painful as a brazilian bikini wax (erm..so I'm told). <br>
<br>
<br/> <br>
<strong>Resources</strong><ul><li><a href="http://unethicalblogger.com/files/WeatherSharp.png">Weather# screenshot</a></li><li>Source: <strong>svn co svn://svn.geekisp.com/bleep/trunk/WeatherSharp</strong></li><li><a href="http://developers.facebook.com/">Facebook Developers Site</a></li><li><a href="http://www.mono-project.com/Mod_mono">mod_mono</a></li></ul> <br>
<br>

View File

@ -0,0 +1,23 @@
---
layout: post
title: "Conference Season: iPhoneDevCamp"
tags:
- Software Development
created: 1184057251
---
I showed up late to <a href="http://barcamp.org/iPhoneDevCamp">iPhoneDevCamp</a>, so late it was Saturday evening and I had just enough time to meet up with <a href="http://whurley.com/">whurley</a>, <a href="http://blake.typepad.com/">blake</a>, and some of the guys that whurley brought from <a href="http://www.bmc.com/">BMC Software</a> before whurley and I went back to <a href="http://www.slide.com">Slide</a>'s offices to get some devcamp work done for the night. Overall, I had an absolute blast at the event, despite posting the following to twitter before I arrived: "Walking towards iPhoneDevCamp. I feel so 2.0". The premise behind the devcamp was an interesting one, despite <a href="http://www.potionfactory.com/">royally</a> <a href="http://rentzsch.com/">screwing</a> <a href="http://www.wilshipley.com/blog/">us</a> <a href="http://gusmueller.com/blog/">developers</a> <a href="http://inessential.com/">by</a> <a href="http://www.red-sweater.com/blog/">trying</a> <a href="http://www.gigliwood.com/weblog/">to</a> <a href="http://talblog.info/">spin</a> <a href="http://toxicsoftware.com/">web</a> <a href="http://www.noodlesoft.com/blog/">technologies</a> <a href="http://www.happyapps.com/blog/">as</a> <a href="http://supermegaultragroovy.com/blog/">an</a> <a href="http://www.plasq.com/">SDK</a>, a lot of people still banded together to develop web applications that target the iPhone. Not that the iPhone isn't a cool device, but the browser is an absolute crap platform. As so many people have already pointed out, Cocoa rocks, Javascript, not so much. <br>
<!--break--> <br>
<strong>The Hacks</strong> <br>
The innate suckage of Javascript makes the hacks created by people at the devcamp <strong>so</strong> much cooler! One of my favorites (that I didn't write of course) was an application that would allow you to remote control your Mac called <a href="http://code.google.com/p/telekinesis/">Telekinesis</a>, followed closely by cooler (and more social) hacks like <a href="http://flashmob.skitow.net/">a flash mob app</a> or the best word processor around for the iPhone, <a href="http://goffice.com/">gOffice</a>. In tune with the odd, and usually useless, nature of devcamp hacks, came <a href="http://homepage.mac.com/bbmac1/FileSharing3.html">iSleuth</a> which is both a Mac application and a web application allowing the user to keep an eye on what's happening at the regular Mac while using their mobile one, these guys got extra points for using a real live baby crib during their demo to show how a user could protect their baby, ostensibly with a $2,000 security system. <br>
<br>
All in all the (web) applications that were developed were some great hacks, and great examples of developers making due with minimal resources and no API or great developer tools, both of which <a href="http://developer.apple.com">Apple</a> is usually known for providing. <br>
<br>
<strong>My Hack</strong> <br>
Despite wearing a staff badge the last one and a half days while I attended the devcamp, I primarily hacked on an idea originally pitched to me by some of the BMC developers that showed up as "the hard part." I became so entrenched in the hack that I didn't sleep on saturday night trying to finish it in time for the demo session on Sunday afternoon at 2pm, before realizing around 11am on Sunday that I would probably have to clear this with my employer before open sourcing the project. I won't go into too much detail about it, since I can't post source code just yet (i'll post separately when I get the okay), but there are a few things worth noting: <ul><li>It uses an arbitrary data set, in this case Flickr photos</li><li>The math is still off a little bit, so the sizing is also off, and thus, it's not done :)</li><li>I have yet to add reflection support</li><li>There are still a few rendering issues with the stacks</li></ul>That said: <a href="#" onclick="window.open('http://unethicalblogger.com/files/coverflow.jpg', 1, 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=514,height=254,left = 463,top = 323'); return false;"><strong>Cover Flow</strong></a> <br>
<br>
I'm still working on it, and am preparing to be sued as soon as I polish it up to look closer to Apple's version :) <br>
<br>
All in all, despite what some people might say about the commercial aspects of the devcamp (being hosted at Adobe's Townhall here in San Francisco, among other things) I think it was a great success, bringing people together to make do with the "iPhone SDK". I enjoyed myself and can't wait to help organize the next one when Apple finally releases Cocoa ME (Mobile Edition). <br>
<br>
<br/> <br>
<strong>Note:</strong> Somehow my (more common than not) late night hackery got me in an <a href="http://www.latimes.com/business/la-fi-phonecamp9jul09,0,3989709.story?coll=la-home-center">L.A. Times article</a>, I didn't have the heart to tell the reporter that I do this at least once or twice a week. <br>

View File

@ -0,0 +1,10 @@
---
layout: post
title: New Email, etc
tags:
- Mono
created: 1185087139
---
Digging through my repository of domain names i rent, I finally found one I felt like using for some of my open source hacking; specifically my dealings with <a href="http://mono-project.com">Mono</a>, <a href="http://wiki.openmoko.org">OpenMoko</a> and <a href="http://www.macosforge.org/">Mac OS Forge</a>. I finally setup <a href="http://www.monkeypox.org/">monkeypox.org</a> for both email, general web servitude, and moved most (if not all) of my related mailing list subscriptions over to <a href="mailto:tyler[ZOMGAT]monkeypox[ROFLDOT]org">tyler(at)monkeypox.org</a>. <br>
<br>
You can find me at that mailing address for all things Mono, and most things non-work related. I'm fine with giving out a few email address @monkeypox.org to some of my Mono compadres, provided they're super-cool and pass a 42km long obstacle course.

View File

@ -0,0 +1,39 @@
---
layout: post
title: Starting with OpenMoko.
tags:
- Linux
- OpenMoko
created: 1185011139
---
I've already ordered my <a href="http://openmoko.com/">OpenMoko</a>-based phone already and anxiously await its arrival to the U.S. from <a href="http://www.fic.com.tw/">FIC</a>. The first order of business will of course to see if I can use it as a real phone, which I'm not holding out for since it's very obviously both beta hardware and software. More importantly however, I'm very excited at the idea of getting <a href="http://mono-project.com">Mono</a> running on the mobile, Linux/arm-based device. <br>
<br>
In the meantime, I've been playing around with the OpenMoko platform inside of the <a href="http://fabrice.bellard.free.fr/qemu/">QEMU</a>-arm emulator. Enjoy :) <br>
<br>
<center> <br>
<h3>Meet OpenMoko</h3> <br>
<a href="http://www.flickr.com/photos/agentdero/863492910/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1140/863492910_6f264e179c_o.jpg" width="440" alt="Welcome to OpenMoko" /></a> <br>
<!--break--> <br>
<br>
<h3>Booting Linux</h3> <br>
<a href="http://www.flickr.com/photos/agentdero/863492920/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1159/863492920_d4749cab8a_o.jpg" width="440" alt="Booting OpenMoko" /></a> <br>
<br>
<h3>The OpenMoko Interface</h3> <br>
<a href="http://www.flickr.com/photos/agentdero/863492924/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1428/863492924_c8db6bb737_o.jpg" width="440" alt="OpenMoko Home" /></a> <br>
<br>
<h3>Running a Terminal</h3> <br>
<a href="http://www.flickr.com/photos/agentdero/863551934/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1091/863551934_44195048bb_o.jpg" width="440" alt="OpenMoko Terminal" /></a> <br>
<br>
<h3>OpenMoko Mail</h3> <br>
<a href="http://www.flickr.com/photos/agentdero/863551952/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1026/863551952_233319c009_o.jpg" width="440" alt="OpenMoko Messages" /></a> <br>
<br>
<h3>Ordering Take-out</h3> <br>
<a href="http://www.flickr.com/photos/agentdero/863551980/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1024/863551980_5ca4479e22_o.jpg" width="440" alt="OpenMoko Dialing Out for Thai" /></a> <br>
</center> <br>
<br>
All in all the interface definitely needs some work, but as my iPhone toting coworker <a href="http://stuffonfire.com">David Young</a> said "how cute!" <br>
<br>
The platform in general has a lot of potential in my opinion, it's still up for grabs whether FIC will completely miscarry on producing decent hardware to run the phone, but you never know. The biggest key will be whether open source developers, notable for producing some of the most horrid user-interfaces since Windows 95, can cope with the new design paradigm that a smaller touch screen interface creates. I'm going to be doing my part, and for that much I'm very excited. <br>
<br>
<br>
<strong>Is that a penguin in your pocket or are you just happy to see me?</strong>

View File

@ -0,0 +1,13 @@
---
layout: post
title: IronRu..OOH SHINEY!
tags:
- Mono
created: 1185204042
---
While debating which set of bugs to squash next, I popped open <a href="http://www.opencommunity.co.uk/vienna2.html">Vienna</a> and started catching up on <a href="http://www.go-mono.com/monologue/">monologue</a> and came across Jb Evains' <a href="http://evain.net/blog/articles/2007/07/23/ironruby-first-drops">post regarding IronRuby</a> which <a href="http://www.iunknown.com/2007/07/a-first-look-at.html">John Lam</a> from Microsoft posted as just being "released" (pre-mega-alpha). <br>
<br>
While I don't use Ruby, or even IronPython on a day to day basis, I have done a lot of work in Cocoa (Objective-C) and to a greater extent, Python. Watching hackers get dynamic languages up and running on top of the CLR is almost like watching Neil Armstrong walk on the moon, you were hoping that it could be done, but up until you actually saw it, you weren't really sure if it could actually be acheived. <br>
<br>
<img src="http://unethicalblogger.com/files/ironruby_interpreter.jpg" width="440"/> <br>
Unfortunately, I don't care for Ruby's syntax in comparision to Python's, but that still doesn't mean I can't get excited about dynamic languages on top of the CLR, wahoo!

View File

@ -0,0 +1,30 @@
---
layout: post
title: Facebook Grokathon, and how we're trying to take over the world.
tags:
- Slide
- Software Development
- Facebook
created: 1185624747
---
My day (friday) began like most others tend to working at <a href="http://www.slide.com" target="_blank">Slide</a>, it began with the previous day and another all night hacking session on an idea Nik (from <a href="http://appaholic.com/display/2357179312" target="_blank">SuperPoke!</a>) had. Before too many people came into the office I found myself running back to my barely-furnished, marginally decorated apartment to take a shower before leaving for Palo Alto, stopping outside 612 Howard, a.k.a. Slide HQ, on my return trip for a brief cigarette to collect my thoughts and remember that this is all going to make us insanely rich (in theory), I hopped in the elevator. After pitching the idea Nik and I stayed up all night hacking on to our Director of Engineering, <a href="http://jeremiah.slide.com/" target="_blank">Jeremiah</a>, I woke Nik from a beanbag in the game room and along with Will Liu (also behind SuperPoke!) we three Facebook Platform developers stepped into <a href="http://max.slide.com/" target="_blank">Max</a>'s BMW M3 and raced off towards Palo Alto. <br>
<br>
Fortunately, not only is Max a good driver, but the M3 is a <strong>phenomenal</strong> car, which got us there in a swift 30 or so minutes, just in time to show up 15 or 20 minutes late for the <a href="http://www.facebook.com/event.php?eid=2408662427" target="_blank">Facebook Grokathon</a>. We met up with <a href="http://james.hotornot.com/" target="_blank">James Hong</a> of "Hot or Not" while we were walking towards the Facebook Cafeteria and as we entered, Kevin Hartz of <a href="http://www.eventbrite.com/home" target="_blank">event brite</a> said: <br>
<br>
<center><strong>"Let's all pause now that Slide has arrived"</strong></center> <br>
(<em>I'm probably butchering the quote</em>) <br>
<br>
<center><p style="visibility:visible;"><object type="application/x-shockwave-flash" data="http://widget-9b.slide.com/widgets/slideticker.swf" height="300" width="400" style="width:400px;height:300px"><param name="movie" value="http://widget-9b.slide.com/widgets/slideticker.swf" /><param name="quality" value="high" /><param name="scale" value="noscale" /><param name="salign" value="l" /><param name="wmode" value="transparent"/> <param name="flashvars" value="cy=ms&il=1&channel=144115188086330779&site=widget-9b.slide.com"/></object><br/>(<small>Photos courtesy of <a href="http://flickr.com/photos/sethgoldstein/" target="_blank">Seth Goldstein</a></small>)</p></center> <br>
<br>
I immediately sat down on the floor and popped open my laptop, partially to take notes, and partially because I still had lots of stuff to do! After holding up <a href="http://unethicalblogger.com/files/Photo 12.jpg" target="_blank" rel="lightbox">this sign</a> to Meagan Marks, one of my favorite Facebook employees (alongside Dave Morin and Chris Putnam), I hopped on VPN and got to work. Hacking, taking notes, and listening to people's presentations was very reminiscent of my limited time in college, the hacking bit is more the reason why the time was limited, but that's another story. <br>
<br>
Since we arrived late, Max presented close to last instead of the scheduled first, and I'm glad that Max mentioned that he wasn't going to try to upstage anybody and announce an API or let on to too many of our viral marketing strategies. He just casually noted that our applications have touched most of Facebook's userbase in one capacity or another and that Hot or Not's "<a href="http://appaholic.com/display/3129295789" target="_blank">Moods</a>" application has been integrated into Top Friends for almost a month. In fact, a lot of our application has APIs for them, Top Friends for example integrates into My Questions, FunWall, SuperPoke and Moods, and those applications at some level or another reciprocate. In the end it is more a question of how we, as a business, strategically partner with other companies or individuals inside the Facebook space than whether we feel the compulsion to stand up in front of our peers and say "Look! This stuff we're doing is so awesome! Aren't we awesome!?" <br>
<br>
While Dave Morin (head honcho behind the Facebook Platform) was giving a final presentation, Top Friends became the first application on Facebook to hit 10 million installed users. Aren't we awesome?! :) <br>
<br>
As the meetup started to come to an end I felt that was a lot of what the meetup/grokathon degraded into, which from a human standpoint, is understandable. We are all battling it out to be "King of the Facebook Platform", so at every meetup like this to come there will be a bit of chest pounding just as there will be collaboration, business dealings, and (hopefully for the next one I attend) good food. <br>
<br>
This is only just the beginning, the one year, not the today's two month, anniversay of the Facebook Platform launch should be very interesting. <br>
<br>
<center><p style="visibility:visible;"><object type="application/x-shockwave-flash" data="http://widget-51.slide.com/widgets/slideticker.swf" height="320" width="426" style="width:426px;height:320px"><param name="movie" value="http://widget-51.slide.com/widgets/slideticker.swf" /><param name="quality" value="high" /><param name="scale" value="noscale" /><param name="salign" value="l" /><param name="wmode" value="transparent"/> <param name="flashvars" value="cy=ms&il=1&channel=144115188086330705&site=widget-51.slide.com"/></object></p> <br>
</center>

View File

@ -0,0 +1,70 @@
---
layout: post
title: Songbird, a visual review
tags:
- Opinion
created: 1185635396
---
A few nights ago, not knowing what I should hack on and thinking about <a href="http://shana.iidbbs.com/" target="_blank">Andreia</a>'s post about her progress <a href="http://worldofcoding.blogspot.com/2007/06/slowly-but-surely.html" target="_blank">embedding XulRunner in a Mono-based Windows Forms application</a>, I remembered something I had heard about vaguely a few months ago (really vaguely, like remembering to turn the oven off after you've already been on vacation for two weeks). <a href="http://www.songbirdnest.com/" target="_blank">Songbird</a>, a Gecko-based media player being touted as the possible Firefox for media applications, and as their site says:<blockquote> <br>
<em> <br>
Songbird™ is a desktop Web player, a digital jukebox and Web browser mash-up. Like Winamp, it supports extensions and <strike>skins</strike> feathers. Like Firefox®, it is built from Mozilla®, cross-platform and open source.</em></blockquote> <br>
<br>
Feeling curious, bored, and a bit sadistic, I decided I'd give it a whirl on my MacBook Pro. How bad could it be? Besides the fact that they call themselves a "desktop web player" which means god-knows-what, it can't be that terrible, they have an &uuml;ber leet black interface! <br>
<br>
It was bad. Very bad. <br>
<br>
Songbird is at version 0.2.5 and is marked as a developer preview, and as a developer, I didn't like the preview. I would however, recommend trying out Songbird with a grain of salt in that they have to battle with Mozilla's notoriously bad source code and maintaining cross-platform capability across numerous architectues for Linux, Windows and Mac OS X. Regardless, on to the pictures! <br>
<br>
<strong>Starting up Songbird for the first time</strong> <br>
<center><a href="http://www.flickr.com/photos/agentdero/928414124/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1066/928414124_592ce196c1_o.jpg" width="400" alt="Songbird, EULA!?" /></a></center> <br>
Any application that first presents the user with useless legalese is not off to a good start, especially when Songbird has such an uphill battle to fight against WinAmp and iTunes. I'll subtract a point for the annoyance, but it's a recoverable error for 0.2.5 <br>
<br>
<br>
<strong>Agreeing to use the software</strong> <br>
<center><a href="http://www.flickr.com/photos/agentdero/927570649/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1130/927570649_4011a60ae6_o.jpg" width="400" alt="Songbird, GPL == EULA?" /></a></center> <br>
YIKES! One cannot stress this enough with any software that embeds the GPL, or any other software <strong>source</strong> license with their released distributions (looking at you OpenOffice.org). <em>Are you out of your damn minds?!</em> Minus five points! <br>
<br>
Phew, almost lost it there, now that I've agreed to promise not to violate the GPL when I play songs or "play the web on my desktop" as I inferred from their website, I can continue to get to actually use the software. <br>
<br>
<strong>Setting up Songbird</strong> <br>
<center><a href="http://www.flickr.com/photos/agentdero/928416108/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1179/928416108_5b473cf491_o.jpg" width="400" alt="Songbird, first run" /></a></center> <br>
Before you get to playing music, you definitely need to go through a first run setup, just like iTunes does, to set some initial presets. Nothing out of the ordinary here, but I do appreciate the checkbox to turn off reporting my usage or setup information, +1. <br>
<br>
<strong>Downloadin' ur extenzionz!</strong> <br>
<center><a href="http://www.flickr.com/photos/agentdero/928416252/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1081/928416252_95d4d700ff_o.jpg" width="400" alt="Songbird, Fetching extensions" /></a></center> <br>
I was a bit taken aback by the fact that I needed to download the extensions that one would assume were already bundled, since they're selected in the installation process. Given the immaturity of the project, these extensions could have drastically changed since they bundled and pushed the release, so no point change, I can understand their decision even if I don't agree with it. <br>
<br>
The images get a bit bigger from here on out, so they'll be linked and pop up in an inline image window thanks to a derivative of <a href="http://www.huddletogether.com/projects/lightbox/" target="_blank">Lightbox</a>. <br>
<br>
<strong><a href="http://farm2.static.flickr.com/1104/927572649_3eb4ac6e05_o.jpg" rel="lightbox">Importing iTunes Library</a></strong> <br>
Fortunately they prefill the textbox with the full path to my iTunes library, otherwise I might not be able to find it myself, assuming I'm a normal user. No points awarded for common sense :) <br>
<br>
<strong><a href="http://farm2.static.flickr.com/1417/927572923_27fd97175f_o.jpg" rel="lightbox">Importing iTunes Library, seriously</a></strong> <br>
I'm a bit confused, I thought I just imported my iTunes library? Unfortunately Songbird can grab the meta-data properly from my iTunes.xml library file, but can't seem to find the actual music! Therefore, the user needs to select their actual iTunes music folder, or whereever they <em>actually</em> store their music! Adding another step between me, and hearing my commemorative "10th Anniversary of The Wiggles" tracks is definitely not a good thing, -1. <br>
<br>
<strong><a href="http://farm2.static.flickr.com/1245/928416800_c833c19238_o.jpg" rel="lightbox">Now to my music!</a></strong> <br>
Not so fast cowboy, first, Songbird needs to tell me that some of my tracks failed to import. Does it mean my AAC music? Or my iTunes Store purchases? Wait, or does it mean my OGG music? Oh well, something failed somewhere. Now that that's done, you don't go straight to your music you just spent about 3 clicks too many importing, you go to some silly media-homepage in Songbird's internal browser. I don't care! I know what Songbird is! I just <em>downloaded and installed</em> it! All I wanted was to hear some rocking good kid's tunes from "The Wiggles." Minus three points for standing between me and my music. <br>
<br>
<strong><a href="http://farm2.static.flickr.com/1220/927571041_b4aa335276_o.jpg" rel="lightbox">Menus galore!</a></strong> <br>
<strong><a href="http://farm2.static.flickr.com/1110/927570841_63053cbf64_o.jpg" rel="lightbox">No really, menus!</a></strong> <br>
<strong><a href="http://farm2.static.flickr.com/1362/927572325_abb508707f_o.jpg" rel="lightbox">Menus and sidebars!</a></strong> <br>
The menus for most of Songbird are reasonably well done, but they have some fetish for including images and non-standard things in their interface. For example, at least on Mac OS X, I can't think of a single application outside of Safari's "History" menu that includes little icons in their menus to let you know exactly what you're reading <em>really</em> is what it says it is. Their side navigation bar also includes, just like Firefox does, bookmarks for crap I don't care about. They're trying to follow some conventions, but not conventions for my platform, a measely one point awarded. <br>
<br>
<strong><a href="http://farm2.static.flickr.com/1109/927570757_99934ed89e_o.jpg" rel="lightbox">Browsing the library</a></strong> <br>
Fortunately, they weren't able to convolute the most basic function of the media player, playing and browsing through media. +2. <br>
<br>
<strong><a href="http://farm2.static.flickr.com/1169/927571109_6dd4ad0d7f_o.jpg" rel="lightbox">Mini-birds</a></strong> <br>
<strong><a href="http://farm2.static.flickr.com/1218/928414900_4a1c400d4b_o.jpg" rel="lightbox">More mini-birds</a></strong> <br>
One thing they definitely have over iTunes, is their minimized mode is much more compact, and definitely sleeker, +2. <br>
<br>
<strong><a href="http://farm2.static.flickr.com/1099/927571401_b0be89d69f_o.jpg" rel="lightbox">Browsing mp3 blogs</a></strong> <br>
<strong><a href="http://farm2.static.flickr.com/1228/927571541_99114432ab_o.jpg" rel="lightbox">Browsing "custom" mp3 blogs</a></strong> <br>
Essentially, a podcast, I think? Not sure if they're trying to coin the phrase "mp3 blog", but giving me a more direct access to sites that offer feeds is certainly nice, their hybrid browser + playlist interface is pretty interesting as well, +1 for trying something different. <br>
<br>
<strong><a href="http://farm2.static.flickr.com/1132/927570301_3fc0ad1ae7_b.jpg" rel="lightbox">Trying to use it as a browser</a></strong> <br>
In the above image, I decided I should try to click on the links inside the Songbird browser, and I'm not sure if it's a good thing that it opened up my default browser of choice, or absolutely retarded. Given that I work at <a href="http://www.slide.com">software company</a> I am sure that this tiny behavioral decision must have taken forever, I can't even make up my own mind about it, might as well give them a pity point since I know that some poor developer probably had to switch this back and forth 8 times before this shipped. <br>
<br>
<br/> <br>
Ultimately, as a developer and big proponent of open source, I can certainly appreciate what they're trying to do with Songbird. On the other hand, as a user of computers in general, I don't care for what they've acheived <em>thus far</em>. Making great software takes a HUGE investment of both time and money, looking over the pond of media players to iTunes for an example, which took over 7 years to get to where it is today and it <strong>still</strong> sucks (sort of). As a Mac developer, I would recommend ditching their insane reliance on Firefox's codebase and use WebKit as their internal browser and strive for more native interfaces, but that's just being picky now isn't it? <br>
<br>
<big><strong>Final Score: <u>-2</u> :(</strong></big>

View File

@ -0,0 +1,38 @@
---
layout: post
title: Hacking with IronPython
tags:
- Mono
- Linux
created: 1185801848
---
I've been wanting to play with <a href="http://www.codeplex.com/IronPython">IronPython</a> for a <strong>very</strong> long time, but never really got around to it since most of my days are either consumed with <a href="http://www.python.org">Python</a> or <a href="http://www.mono-project.com">Mono</a> to some capacity, but never both. <br>
<br>
Despite my initial instinct to flee in terror after looking over some of the IronPython examples I found on various blogs, I decided it would at the very least be worth an install just to check out the interpreter, and to see how well it performs on top of Mono. <code> <br>
ccnet% ipy <br>
IronPython 1.0.2467 on .NET 2.0.50727.42 <br>
Copyright (c) Microsoft Corporation. All rights reserved. <br>
>>> </code> <br>
<br>
<strong>Scary!</strong> But familiar, so I forged ahead undaunted, wanting to start hashing some strings, I figured I'd import the md5 module and get to work. <br>
<code> <br>
ccnet% ipy <br>
IronPython 1.0.2467 on .NET 2.0.50727.42 <br>
Copyright (c) Microsoft Corporation. All rights reserved. <br>
>>> import md5 <br>
Traceback (most recent call last): <br>
File md5, line unknown, in Initialize <br>
File hashlib, line unknown, in Initialize <br>
File hashlib, line unknown, in __get_builtin_constructor <br>
ImportError: No module named _md5 <br>
>>> </code> <br>
<br>
Alright, so there are still some holes in the IronPython bridge into Python, but this is fine by me, I can call into .NET code! One other thing that seemed to be missing was the 'select' built-in module, which in turn made my little 'telnetlib' based project fall on it's head. <br>
<br>
I run an <a href="http://www.icecast.org/">icecast2</a> server on my workstation, so I can just tune in with my MacBook Pro, and get whatever stream is being served up by the server. The source for the icecast2 server is a script using <a href="http://savonet.sourceforge.net/wiki/Liquidsoap">Liquidsoap</a> which allows for shuffling, bumps, and a couple of other things to make my music-listening experience better. One of the nice things about Liquidsoap is that it has a telnet interface, so I can glean meta-data about what's playing, or control the playlist through the telnet interface. With this telnet interface in tow, I set out to hack up a Windows Forms and IronPython-based controller for already scripted radio station. And thus, my little IronRadio Controller was born:<center><a href="http://www.flickr.com/photos/agentdero/953004545/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1331/953004545_b2e1f6aa41_o.jpg" width="400" alt="IronRadio Controller" /></a></center> <br>
<br>
Unfortunately, I couldn't use Python's native "telnetlib" so I rolled my own IronTelnet class that would permit basic reads and writes to the telnet server, but other than that, the IronRadio Controller is mostly WIndows Forms code and some events cobbled together. The interface is unfortunately poor, as I don't have an <a href="http://developer.apple.com/tools/interfacebuilder.html">Interface Builder</a> for WIndows Forms, let alone IronPython-based Forms (not to mention I could care less about spit-and-polish for anything in X11.app). <br>
<br>
The source for the script can <a href="http://trac.geekisp.com/bleep/browser/trunk/IronPython/IronRadio.py">be found here</a>, and will require IronPython and Mono to run (or .NET if you're on a Windows machine). <br>
<br>
I'm still trying to figure out if I can use IronPython with mod_mono to replace fighting with mod_python, but there are no guarantees as to whether that will work or be worth the trouble.

View File

@ -0,0 +1,51 @@
---
layout: post
title: "Subversion branching with less Pain\xE2\x84\xA2"
tags:
- Slide
- Software Development
created: 1186129471
---
No matter how good of a source control system you use, branching can always cause loads of problems, and even painful <a href="http://worsethanfailure.com/Articles/Happy_Merge_Day!.aspx" target="_blank">merge days</a>. At <a href="http://www.slide.com" target="_blank">Slide</a>, and other companies I've worked with that use Subversion, branching has been particularly painful because Subversion just doesn't maintain branch history like some commercial source control systems (like <a href="http://www.perforce.com" target="_blank">Perforce</a>), in fact "branching" is quite literally making a copy of the trunk in Subversion. <br>
<br>
Depending on the lifespan of a particular branch, and how often you refresh your branch from the mainline branch, merging back down to the main branch can go from bad, to even worse. Interestingly enough, running an `<strong>svn diff $BRANCH $MAIN</strong>` will give you the correct changes on the appropriate files that have been modified in the branch, where as running an `<strong>svn merge -r $START:$END $BRANCH ./</strong>` (whereas ./ is your working copy of main) can break in tremendously painful ways causing mis-merges and unintended rollbacks of previous changesets. <br>
<br>
While merging down to the main branch today I decided to mix and match both <strong>svn diff</strong> and <strong>svn merge</strong> such that I would only merge changes down to the main branch that had been modified in my development branch, ensuring that nothing was changed on the main/stable branch that wasn't intended. The end result was a <a href="http://www.python.org" target="_blank">Python</a> script that would execute the appropriate commands and merge the files one by one from one branch to the other, allowing the developer or QA engineer to check each file before commencing the merge. <br>
<br>
After some serious tweaking and a couple of test branches in Slide's Subversion repository, <a href="http://trac.geekisp.com/bleep/browser/trunk/svnutils/merge-safe.py" target="_parent">merge-safe.py</a> was born. The script is a bit hackish right now in that it executes <strong>svn(1)</strong> instead of using Py-Subversion bindings (which haven't <em>ever</em> worked the way I had hoped). There is definitely room for improvement as well, but the basic flow is there such that merge-safe.py will diff the two branches and aggregate a list of files that have been modified since the branch was originally cut from the main/stable branch, then iterate through the file list and either merge (if the file has been edited) or copy (if the file has been added) to the main branch as is necessary. <br>
<br>
The script should always be run from the <strong>base directory</strong> of your working copy of the mainline branch, so if your main working copy is in /home/tyler/slide/main, this script could be run from that directory like: <br>
<code>python ~/scripts/merge-safe.py -h</code> <br>
In general <strong>I</strong> think the script is easy to use, but I also wrote it so I'm open to suggestions for improvement or ideas on how to more efficiently merge branches together with Subversion. <br>
<br>
You can check the code out with: <br>
<strong>svn co svn://svn.geekisp.com/bleep/trunk/svnutils/</strong> <br>
<br>
<strong>Usage</strong> <br>
<code>ccnet% python qa/svnutil/merge-safe.py -h <br>
Usage: <br>
<br>
The merge-safe script should help you, the lowly startup employee <br>
more effectively merge one branch to another by examining which files have changed, and merge/copy those to the destination branch. <br>
<br>
Examples: <br>
Do a dry-run of merging from $SRC to $DST where r1002 is the starting branch of $SRC and r1050 is the last revision to merge from $SRC <br>
<br>
%> python some/dir/merge-safe.py -s $SRC -d $DST -r 1002:1050 --dry-run <br>
<br>
Do an interactive merge from $SRC to $DST <br>
%> python some/dir/merge-safe.py -s $SRC -d $DST -r 1002:1050 -i <br>
<br>
Usage: $prog [options] <br>
<br>
<br>
Options: <br>
-h, --help show this help message and exit <br>
-s SOURCE, --source=SOURCE <br>
The source branch to merge from <br>
-d DEST, --dest=DEST The destination branch to merge to <br>
-i, --interactive Enable merging interactively on each file <br>
--dry-run Run with --dry-run enabled <br>
-r REVISION, --revision=REVISION <br>
Specify the revisions separated by a colon (i.e. -r <br>
100:104)</code>

View File

@ -0,0 +1,12 @@
---
layout: post
title: Ordered Filled
tags:
- OpenMoko
created: 1186305244
---
My <a href="http://bestpractical.com/rt/" target="_parent">RT</a> ticket #3824 was finally filled late last week, so I should be receiving my <a href="http://www.openmoko.org/" target="_parent">OpenMoko</a>-based (developer preview) mobile phone sometime in the next couple days. <br>
<br>
As far as getting <a href="http://www.mono-project.com" target="_;parent">Mono</a> functional on top of the device, it seems that the <a href="http://www.openembedded.org/" target="_parent">OpenEmbedded</a> project and their <a href="http://developer.berlios.de/projects/bitbake/" target="_parent">BitBake</a> build tool. <br>
<br>
I'm wondering how easy the device will be to develop for in terms of getting Mono, IronPython, etc running on top of it, but if it really is the fully-featured Linux-based phone it's reported to be, this could turn out to be lots of fun (regardless of whether or not I can actually use it as a replacement for my miserable Cingular phone).

View File

@ -0,0 +1,19 @@
---
layout: post
title: IronPython for MacPorts
tags:
- Mono
created: 1186391172
---
What goes better with Sunday evening boredom better than some <a href="http://www.tcl.tk/" target="_blank">Tcl</a> scripting and package management? I know! Nearly nothing, my sentiments exactly. After stumbling across a <a href="http://geeklair.net/new_macports_guide/" target="_blank">guide</a> or <a href="http://www.redhillconsulting.com.au/blogs/simon/archives/000379.html" target="_blank">two</a>, I decided I should give creating an <a href="http://www.codeplex.com/IronPython" target="_blank">IronPython</a> <a href="http://www.macports.org" target="_blank">MacPort</a> a try. <br>
<br>
I'm not sure on the utility of this minor hack, since the <a href="http://mono-project.com/Downloads" target="_blank">Mono Framework installer</a> includes IronPython 1.1a1. I decided to give it a whirl nonetheless and came up with a pretty simple IronPython Portfile, although there is one thing missing, the IronMath and IronPython DLLs are not properly installed in the GAC. I'm a bit hazy on whether I should be installing the DLLs using <strong>gacutil(1)</strong> or whether I should just copy things over to the <code>$(PREFIX)/lib/mono/gac</code> and be done with it.. Therefore the crux of my "work" was just creating a <em>sane</em> Makefile, since the IronPython makefile that's distributed on CodePlex uses "csc" and has some pretty nasty syntax. <br>
<!--break--> <br>
You can check out my Portfile and copy of IronPython 1.1 from anonymous subversion by: <br>
<br>
<strong>Clicking <a href="http://trac.geekisp.com/bleep/browser/trunk/IronPython/Portfile" target="_blank">over here</a></strong> <br>
or <br>
<strong>Checking out the code with: <br>
<code>svn co svn://svn.geekisp.com/bleep/trunk/IronPython</code></strong> <br>
<br>
I'm debating whether or not I should submit the port to MacPorts for inclusion in their next release, mostly because I'm not completely sure if the Mono port includes IronPython or not. If you've got the Mono port installed, feel free to let me know if it installed IronPython, or if you feel like offering up a Makefile.mono patch that properly installs the assemblies into the GAC. I'm a bit new to packaging up open source projects for Mac OS X properly, so any tips would be helpful.

View File

@ -0,0 +1,40 @@
---
layout: post
title: Meet OpenMoko
tags:
- Linux
- OpenMoko
created: 1186633467
---
I'm not going to try to explain too much here, but I received my Neo 1973, the OpenMoko-based Smart phone today. While it's a developer preview, it's <strong>incredibly</strong> exciting. So far I've been able to use my Cingular SIM card, if you use AT&T/Cingular, you can check if yours is supported on <a href="http://wiki.openmoko.org/wiki/Carriers/ATT" target="_blank">the wiki</a>. I can run the general built in suite of applications without too much trouble, I also made a phone call, which <em>worked!</em> Unfortunately however the latest build that I have on my Neo doesn't have sound properly working, which <code>sagacis</code> from the #openmoko channel on Freenode is helping me with currently. I'm a bit over-excited so I'll let the images do the rest of the talking for me. <br>
<br>
<center> <br>
<h3>Meet OpenMoko</h3> <br>
<a href="http://www.flickr.com/photos/agentdero/1053119243/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1112/1053119243_7f2069a9c7_o.jpg" width="400" alt="Meet OpenMoko" /></a> <br>
<br/> <br>
<h3>Some Assembly Required</h3> <br>
<a href="http://www.flickr.com/photos/agentdero/1054195462/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1147/1054195462_95e1b6f95d_o.jpg" width="400" alt="Some Assembly Required" /></a> <br>
<br/> <br>
</center> <br>
<!--break--> <br>
<center> <br>
<h3>Welcome to OpenMoko</h3> <br>
<a href="http://www.flickr.com/photos/agentdero/1057454094/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1095/1057454094_4e21dfa78d_o.jpg" width="398" height="478" alt="Welcome to OpenMoko" /></a> <br>
<br/> <br>
<h3>Yes, It Does</h3> <br>
<a href="http://www.flickr.com/photos/agentdero/1056593833/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1150/1056593833_f9dc5fa633_o.jpg" width="397" height="478" alt="OpenMoko, Runs Linux" /></a> <br>
<br/> <br>
<h3>Browsing around OpenMoko</h3> <br>
<a href="http://www.flickr.com/photos/agentdero/1056594013/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1050/1056594013_e71865c721_o.jpg" width="400" alt="OpenMoko Menu" /></a> <br>
<br/> <br>
<h3>Dialing with OpenMoko</h3> <br>
<a href="http://www.flickr.com/photos/agentdero/1057453718/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1068/1057453718_d2afbe5382_o.jpg" width="354" height="477" alt="OpenMoko Dialing." /></a> <br>
<br/> <br>
<h3>Sizing up OpenMoko</h3> <br>
<a href="http://www.flickr.com/photos/agentdero/1057818038/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1198/1057818038_712b8f7f14_o.jpg" width="400" alt="OpenMoko, Sizing It Up" /></a> <br>
<br/> <br>
<h3>Running applications "on" your desktop</h3> <br>
<a href="http://www.flickr.com/photos/agentdero/1057163265/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1308/1057163265_556c144b69_o.jpg" width="400" alt="Running OpenMoko Applications" /></a> <br>
</center> <br>
<br>
In general, it's a bit slow, but the developer preview is probably about half as powerful as the planned public-released version. so I'm not exceedingly worried about that. This phone is just all around cool, and will hopefully be a fun device to carry around with me. You can check up on the OpenMoko community by adding <a href="http://planet.openmoko.org/" target="_blank">Planet OpenMoko</a> to the feed reader of your choice. This is just the beginning.

View File

@ -0,0 +1,48 @@
---
layout: post
title: Scaling, with your "smart platform choice"
tags:
- Software Development
created: 1186669090
---
At times I feel as if I am plugged directly into the internet, almost like an NSA wiretap on AT&T's backbone, silently sniffing along reading packets until something throws up a red flag. This specifically applies to both <a href="http://python.org/" target="_blank">Python</a>, and .NET/<a href="http://mono-project.com" target="_blank">Mono</a> related bloggings, in which a fellow I know, Chris Messina, posted something titled "<a href="http://factoryjoe.com/blog/2007/07/18/wordpressmu-making-a-smart-platform-choice/" target="_blank">WordPressMU: Making a smart platform choice</a>" which, not surprisingly, threw up a red flag. Chris and I tend not to see eye-to-eye on a lot of things, most notably, <a href="http://microformats.org/" target="_blank">microformats</a>, along with Ruby on Rails, and some of the other "Web 2.0" style technologies/idealogies that Chris has embraced, while I stand back and look on, casually remarking "<a href="http://www.unethicalblogger.com/files/omgwtfbbq.jpg" rel="lightbox">OMGWTFBBQ</a>" every now and then. <br>
<br>
Chris opens the post with the following, in reference to a client of his:<center><span style="margin-left: 10px; margin-right: 10px;"><em>Their current website is built in .NET and theyre getting to the point where things are about to start getting set in stone in terms of scaling and overall architecture and it kinda freaked me out that theyd continue down this path using a platform that I think offers little when it comes to organic community-building or much in the way of “doing web things right”.</em></span></center> <br>
<br>
<strong>Disclaimer: I'm not an expert on scaling, I just get yelled at when my code doesn't scale</strong> <br>
<br>
Chris goes on to mention Ruby on Rails, Django, and <a href="http://mu.wordpress.org/" target="_blank">WordPressMU</a>, deciding on the third as the best option for <em>building a people-powered Web 2.0 community on</em>. Some of the reasons for this are employment, open source, web standards, community, scalability, politics, and a few others that don't matter. While Ruby on Rails, Django on mod_python, and WordPressMU on PHP are all good platforms to build upon, his complete dismissal of .NET (and in turn Mono) is <strong>completely</strong> unfounded, and in most cases, blatantly incorrect. <br>
<h2>Examples</h2> <br>
Looking at some popular sites around the internet, you can get a feel for exactly what it takes to scale:<ul><li><strong>MySpace</strong><ul><li><strong>OS:</strong> Windows Server</li><li><strong>Platform:</strong> ColdFusion/.NET</li><li><strong>Database:</strong> MS SQL</li></ul>Originally, they were able to scale with ColdFusion, and have since switched over to .NET, making MySpace one of the largest sites running .NET with the largest MS-SQL installations <em>on the planet</em>.</li><li><strong>Facebook</strong><ul><li><strong>OS:</strong> Linux</li><li><strong>Platform:</strong> PHP</li><li><strong>Database:</strong> MySQL</li></ul>Facebook has scaled with a combination of MySQL and PHP, with a good amount of customization of their internal build of PHP, and memcached running to ensure database calls are kept to a minimum.</li><li><strong>Slide</strong><ul><li><strong>OS:</strong> Linux</li><li><strong>Platform:</strong> Python</li><li><strong>Database:</strong> MySQL</li></ul> <br>
Okay, I'm throwing us in there for fun, but we've scaled with MySQL and mod_python with a hefty dose of secret sauce :)</li><li><strong>Yahoo!</strong><ul><li><strong>OS:</strong> FreeBSD</li><li><strong>Platform:</strong> PHP</li><li><strong>Database:</strong> MySQL</li></ul>Yahoo! obviously has to scale to serve a gigantic portion of the internet, and they're running PHP, MySQL with C++ extensions written where they need to be in order to acheive extra speed.</li><li><strong>Wikipedia</strong><ul><li><strong>OS:</strong> Linux</li><li><strong>Platform:</strong> PHP</li><li><strong>Database:</strong> MySQL</li></ul>Wikpedia.org has scaled with MySQL, PHP along with some Lucene indexing servers and memcached servers running around to improve read times from their database servers</li> <br>
<li><strong>Microsoft</strong><ul><li><strong>OS:</strong> Windows Server</li><li><strong>Platform:</strong> .NET</li><li><strong>Database:</strong> MS SQL</li></ul>Microsoft tends to eat their own dog food with most of their web sites and portals, running on .NET with MS-SQL, and according to <a href="http://www.quantcast.com/top-sites-1" target="_blank">Quantcast</a> have 3 of the top 5 sites on the internet.</li><li><strong>Apple</strong><ul><li><strong>OS:</strong> Linux/Solaris/Mac OS X</li><li><strong>Platform:</strong> WebObjects/PHP</li><li><strong>Database:</strong> MySQL</li></ul>Apple runs a mix of WebObjects (Java), PHP, and god knows what else on varying platforms (Solaris, Linux, Mac OS X). I'm not 100% on exactly what's going on inside the web team at 1 Infinite Loop anymore, but they seem to be able to scale already with what they've got.</li></ul> <br>
<h2>Counter-points</h2> <br>
<strong>Employment</strong> <br>
One of the points made is that it's easier to find PHP developers, as opposed to Python, or Ruby developers, which probably is true. However, .NET developers are <strong>definitely</strong> going to be more prominent, but most developers worth your employment, especially at a startup, are going to need to be able to pick up new frameworks and technologies quickly. <br>
<br>
<strong>Open Source</strong> <br>
I will agree that having an open source platform to build on is a good idea, but certainly not a deal breaker for .NET, or whichever platform you choose to use. Starting a community, or a web business in general doesn't matter if you can't get your product out the door as soon as possible. Nobody cares how "open" you are in your development process, if you can't ship. <br>
<br>
<strong>Web standards</strong> <br>
Citing <a href="http://channel9.msdn.com/" target="_blank">Channel 9</a> as an example of how (somehow) the .NET platform doesn't adhere to web standards and "open data formats" is one of the most ludicrous arguments I've ever seen. You can generate valid JSON, XML, SOAP, and XHTML from <strong>any</strong> platform, even mod_perl! <br>
<br>
<strong>Community</strong> <br>
Chris makes the argument that somehow his experience in dealing with the WordPress community extrapolates to developing an actual product, and that if you're going to build a community-oriented site, you better use a platform that your community will approve of! Hint, it doesn't matter. 95% of your users probably won't care what you run, as long as they have the product to use. <br>
<br>
<strong>Economics</strong> <br>
The points about economics are certainly valid, in that it's far easier to find hosts and sysadmins familiar with PHP than with Rails or Django (Python), That doesn't mean that it <em>scales</em> however, once you get past a couple of million users, you need people who know what they're doing, with dedicated hardware to help your web application scale. <br>
<br>
<strong>Scalibility</strong> <br>
Talking about how you <em>feel</em> scaling is absolutely absurd. You will feel pain, that's what happens we you have to scale. Standing back, and looking at the code you've worked insanely hard on, and trying to figure out how to make that faster is painful, regardless of platform. If I've consulted with somebody about how to scale my architecture and they say "well, that doesn't <em>feel</em> right" without citing sources, strategies, or <strong>reasons</strong>, I'm going to find somebody else, or I'm going to fall on my face when the time comes to scale. <br>
<br>
<Strong>Politics</strong> <br>
Just a quote: <br>
<em>However, I think people familiar with modern web design would agree with me that WordPress/PHP, Django or Rails are all superior choices over .NET when it come to the politics of technology development. In terms of openness, being forward-thinking and in terms of community outlook, any of these choices are going to net you a very different kind of response. Being keen to what each choice says about you is key to making a wise decision.</em> <br>
First error, is asking people involved in web design how you want to scale, you should probably ask people involved in systems architecture. Politics don't exist when you need to scale, or ship product, it's that simple. What gets the job done, the fastest, with the greatest net result. <br>
<br>
<h2>End game</h2> <br>
Chris' general ignorance of some of the features of ASP.NET 2.0, and his zealotry when it comes to buzzwords like "community, forward-thinking, people-powered, Web 2.0" and their ilk doesn't surprise me, since he's not a developer. For example, in ASP.NET 2.0 you can have <em>asynchronous pages</em>, just like you can have interlaced GIF images, that progressively load, you can have pages that progressively load, instead of needing the server to fully generate the entire page before it's piped back to the client. Of course, none of this matters since <strong>architecture</strong> is the biggest hurdle when it comes to scaling, not <strong>platform</strong>. The more important question to answer before you toss out your existing code base in favor of a more buzzword compliant platform are:<ul><li>How can you more efficiently handle database queries?</li><li>Can you cut out unnecessary database queries?</li><li>Can you switch over to a newer version (MySQL 4 and 5 I'm looking at you) of your database to improve performance?</li><li>Will it be effective to add a caching solution like memcached between your web farm and your database servers?</li><li>What can be relegated into progessive page loads either via asynchronous pages in ASP.NET 2.0, or through the use of AJAX back to your web servers to retrieve more data instead of forcing a new page load? </li><li>Is this problem simply caused by not having enough servers?</li></ul> <br>
<br>
Citing zero empirical evidence, not counting some useless benchmarks (scaling is far more case-by-case than doing benchmarkable operations), and going with whatever "the cool kids" are using is the quick road to failure. All of the sites I mentioned above have people whose job is to sit around all day and figure out how to squeeze more performance out of their architecture and help the sites grow with their userbase. The trick to optimization is rarely a complete rewrite, or any one trick, it's about finding where the bottlenecks are, and doing whatever possible to minimize those. <br>
<br>
As a final note, all the platforms referenced above just spit out pages. That's it. It's how you form the output that determines how "community friendly" or aesthetically pleasing the final product is. It's all fair game between the <code>&lt;html&gt;</code> tags :)

View File

@ -0,0 +1,85 @@
---
layout: post
title: OpenMoko 2007.2 Preview
tags:
- Linux
- OpenMoko
created: 1186901933
---
I bit the bullet last thursday and started playing with some of the 2007.2 OpenMoko snapshot images, 2007.2 denoting the next iteration of the software. Whereas my previous photos were from 2007.1, the interface was a bit weak, and wasn't much to be proud of. The direction that the interface is <em>now</em> heading in is not only sleek, but much more usable. One of the most important changes, in my opinion, is the addition of acceleration-incluenced scrolling throughout the interface. The new scrolling allows you to do a quick swipe with your finger and have the interface scroll quickly and then slow to a stop, as if your scroll had momentum behind it. <br>
<br>
<h2><small>OpenMoko Boot screen</small></h2> <br>
<center> <br>
<table border="0" style="margin-top: -10px;"> <br>
<tr> <br>
<td align="center"><h3>2007.1</h3></td><td align="center"><h3>2007.2</h3></td> <br>
</tr> <br>
<tr> <br>
<td valign="top"> <br>
<a href="http://farm2.static.flickr.com/1095/1057454094_4e21dfa78d_o.jpg" rel="lightbox"><img src="http://farm2.static.flickr.com/1095/1057454094_4e21dfa78d_o.jpg" width="200" alt="Welcome to OpenMoko" /></a> <br>
</td> <br>
<td valign="top"> <br>
<a href="http://farm2.static.flickr.com/1258/1069954322_739074b046_o.jpg" rel="lightbox"><img src="http://farm2.static.flickr.com/1258/1069954322_739074b046_o.jpg" width="200" alt="2007.2 Boot screen" /></a> <br>
</td> <br>
</tr> <br>
</table> <br>
</center> <br>
<!--break--> <br>
<h2><small>OpenMoko Desktop</small></h2> <br>
<center> <br>
<table border="0" style="margin-top: -10px;"> <br>
<tr> <br>
<td align="center"><h3>2007.1</h3></td><td align="center"><h3>2007.2</h3></td> <br>
</tr> <br>
<tr> <br>
<td valign="top"> <br>
<a href="http://farm2.static.flickr.com/1050/1056594013_e71865c721_o.jpg" rel="lightbox"><img src="http://farm2.static.flickr.com/1050/1056594013_e71865c721_o.jpg" width="200" alt="OpenMoko Menu" /></a> <br>
</td> <br>
<td valign="top"> <br>
<a href="http://farm2.static.flickr.com/1286/1069954604_9d88c17f7b_o.jpg" rel="lightbox"><img src="http://farm2.static.flickr.com/1286/1069954604_9d88c17f7b_o.jpg" width="200" alt="2007.2 &quot;Today&quot; (Desktop)" /></a> <br>
</td> <br>
</tr> <br>
</table> <br>
</center> <br>
<br>
<h2><small>OpenMoko Applications</small></h2> <br>
<center> <br>
<table border="0" style="margin-top: -10px;"> <br>
<tr> <br>
<td align="center"><h3>2007.1</h3></td><td align="center"><h3>2007.2</h3></td> <br>
</tr> <br>
<tr> <br>
<td valign="top"> <br>
<a href="http://farm2.static.flickr.com/1050/1056594013_e71865c721_o.jpg" rel="lightbox"><img src="http://farm2.static.flickr.com/1050/1056594013_e71865c721_o.jpg" width="200" alt="OpenMoko Menu" /></a> <br>
</td> <br>
<td valign="top"> <br>
<a href="http://farm2.static.flickr.com/1371/1069954246_4a06926ad0_o.jpg" rel="lightbox"><img src="http://farm2.static.flickr.com/1371/1069954246_4a06926ad0_o.jpg" width="200" alt="2007.2 Applications Browser" /></a> <br>
</td> <br>
</tr> <br>
</table> <br>
</center> <br>
<br>
<h2><small>OpenMoko Dialer</small></h2> <br>
<center> <br>
<table border="0" style="margin-top: -10px;"> <br>
<tr> <br>
<td align="center"><h3>2007.1</h3></td><td align="center"><h3>2007.2</h3></td> <br>
</tr> <br>
<tr> <br>
<td valign="top"> <br>
<a href="http://farm2.static.flickr.com/1068/1057453718_d2afbe5382_o.jpg" rel="lightbox"><img src="http://farm2.static.flickr.com/1068/1057453718_d2afbe5382_o.jpg" width="200" alt="OpenMoko Dialing." /></a> <br>
</td> <br>
<td valign="top"> <br>
<a href="http://farm2.static.flickr.com/1094/1069954414_19998097b9_o.jpg" rel="lighti=box"><img src="http://farm2.static.flickr.com/1094/1069954414_19998097b9_o.jpg" width="200" alt="2007.2 Dialer" /></a> <br>
</td> <br>
</tr> <br>
</table> <br>
</center> <br>
<br>
Overall things are progressing quite nicely, but as a developer I feel that I'm teetering between bricking my OpenMoko phone, and making beautiful music with it, either way, I'm along for the ride. The last picture I'll leave you with is one from when my friend <a href="http://talk.bmc.com/blogs/blog-whurley/whurley/" target="_blank">whurley</a> and I met up this past week since he was in town representing <a href="http://www.bmc.com" target="_blank">BMC</a> at Linux World. whurley was one of the organizers of the first <a href="http://barcamp.org/iPhoneDevCamp" target="_blank">iPhoneDevCamp</a> and is a proud owner of an iPhone, regardless, he thought the OpenMoko phone was pretty cool :) <br>
<br>
<center> <br>
<a href="http://farm2.static.flickr.com/1195/1090300496_cda67ec193_b.jpg" rel="lightbox"><img src="http://farm2.static.flickr.com/1195/1090300496_cda67ec193_b.jpg" width="400" alt="whurley and OpenMoko" /></a></center> <br>
<br>
<br>
<strong>You can find all my OpenMoko photos <a href="http://www.flickr.com/photos/agentdero/tags/openmoko/" target="_blank">on Flickr</a></strong>

View File

@ -0,0 +1,14 @@
---
layout: post
title: "Video: Hello Moko"
tags:
- Linux
- OpenMoko
created: 1186923300
---
I thought I'd dork around a little bit with recording videos featuring the Neo1973, running OpenMoko. This video is running an older version of OpenMoko (2007.1) so it isn't current. It's also worth noting, to use the phone, you don't have to do a full shutdown and bootup, you should really only ever need to do either if you're a developer, or when you first receive the phone. <br>
Hello Moko. <br>
<br>
<center> <br>
<div><embed src="http://widget-bc.slide.com/widgets/sf.swf" type="application/x-shockwave-flash" quality="high" scale="noscale" salign="l" wmode="transparent" flashvars="cy=gn&il=1&channel=144115188086519740&site=widget-bc.slide.com" style="width:400px;height:356px" name="flashticker" align="middle"></embed></div> <br>
</center> <br>

View File

@ -0,0 +1,25 @@
---
layout: post
title: Another Facebook Developer Meetup
tags:
- Slide
- Miscellaneous
- Software Development
- Facebook
created: 1187078869
---
Seth Goldstein of <a href="http://socialmedia.com/" target="_blank">SocialMedia</a> (who I <em>think</em> are a competitors of <a href="http://www.slide.com" target="_blank">ours</a>) has organized a <a href="http://www.facebook.com/event.php?eid=3400008082" target="_blank">Facebook Developers Meetup/Miniconference</a> of sorts this Wednesday from 12-5 p.m. at <a href="http://maps.google.com/maps?f=q&hl=en&q=555+California+Street%2C+12th+Floor%2C+San+Francisco%2C+CA" target="_blank">Fenwick &amp; West</a> here in San Francisco, which I will be attending.<a href="http://www.flickr.com/photos/agentdero/1112309749/" title="Photo Sharing" target="_blank"><img src="http://farm2.static.flickr.com/1196/1112309749_adb3667cca_o.jpg" height="150" alt="F8 Badge" align="right" hspace="3" vspace="3"/></a> I'm not completely sure on what I'll be talking about, I'm thinking about discussing some of the issues with scaling on the Facebook platform, or the pitfalls of choosing <a href="http://developers.facebook.com/documentation.php?doc=fbml" target="_blank">FBML</a> vs. HTML for developing your Facebook application. There's going to be lots of market-speak I'm assuming ("OMFG VIRALITY!") so I'd like to bring a bit more of the technical side of developing applications that can explode on the Facebook platform. <br>
<br>
What I end up talking about is completely open to discussion, so if there's anything you'd like me to talk about, feel free to leave me a comment or drop me a mail at <strong>tyler [at] slide [diggitydot] com</strong>.<br/><br/> <br>
<!--break--> <br>
While I am not one to discuss a lot about our "strategy" or "pixie dust" or however we've done what we've done, I do know how a lot of what we done works, and <a href="http://max.slide.com/" target="_blank">his Maxness</a> permitting, i'll be able to impart some of the &lt;fb:wisdom/&gt; I've accumulated upon my fellow application developers. If interest warrants it, I might start to share some of my sicker (read: <em>awesome</em>) FBML hacks on this blog, but since I'm a big nobody in the world of blogs, it might be a waste of time, so we'll see. <br>
<br>
Regardless, if you can make it this wednesday come on by and say "howdy" <br>
<br>
I promise I probably don't bite. <br>
<br>
<hr noshade/> <br>
<h3>+1, Ego-boost</h3> <br>
Just in case you aren't familiar with Facebook's Platform, or what's exactly going on, I figured I'd cite why <a href="http://www.slide.com" target="_blank">Slide</a>, and in turn why <strong>I</strong> am (sort of) credible to talk on the subject. <br>
Slide has done a good job (in my absurdly biased opinion) on the Facebook Platform with some of the top applications such as: <br>
<div style="margin-left: 15px;"><ul><li><a href="http://www.facebook.com/apps/application.php?id=2425101550&b&ref=pd" target="_blank">Top Friends*</a> - <strong>11.9M</strong></li><li><a href="http://www.facebook.com/apps/application.php?id=2363570816&b&ref=pd" target="_blank">My Questions</a> - <strong>6.3M</strong></li><li><a href="http://www.facebook.com/apps/application.php?id=2357179312&b&ref=pd" target="_blank">SuperPoke!</a> - <strong>5.2M</strong></li><li><a href="http://www.facebook.com/apps/application.php?id=2355237624&b&ref=pd" target="_blank">Fortune Cookie*</a> - <strong>4.7M</strong></li><li><a href="http://www.facebook.com/apps/application.php?id=2378983609&b&ref=pd" target="_blank">FunWall</a> - <strong>3.4M</strong></li><li><a href="http://www.facebook.com/apps/application.php?id=2355822860&b&ref=pd" target="_blank">Favorite Peeps!</a> - <strong>2.0M</strong></li>(<small>Taken from the <a href="http://www.facebook.com/apps/" target="_blank">applications directory</a></small>)<br/>(<small><strong>*</strong> applications I've worked on</small>)</ul></div> <br>

View File

@ -0,0 +1,20 @@
---
layout: post
title: "Coping with Success: Scaling on the Facebook Platform."
tags:
- Slide
- Miscellaneous
- Software Development
- Facebook
created: 1187213940
---
I figured I'd go ahead and post this now since the format is of the "<a href="http://www.facebook.com/event.php?eid=3400008082" target="_blank">App Dev Conference</a>" (<a href="http://www.insidefacebook.com/2007/08/15/live-from-appdevcon-in-san-francisco/" target="_blank">InsideFacebook coverage</a>) is more paneled than the original "small presentations" I assumed it to be. Oops. <br>
<br>
We talked about a few topics from a developer perspective, such as a minor gripe session on Facebook breaking FBML, but the highlights of our developer's panel are monetizing and growing the user engagement inside the applications. I was on the panel with Blake Commagere (Vampires), Dave Genztel, (SocialMedia), Jia Shen, (RockYou), Joe Winterhalter (Quizzes), James Hong (HotOrNot). Fortunately for me, I get to do cool stuff like this, almost as the "voice" of Top Friends despite the fact that Top Friends is a definite Slide property with more smart people behind it than just me alone. <br>
<br>
Regardless, in between fixing some bugs last night, I hacked up a presentation citing some of the various means of scaling and designing your application to scale appropriately, I also made sure to discuss some of the lower-level scalability with one of our brilliant server guys, to cover the bases from application-level scaling to database and Facebook API scaling. <br>
<br>
I hope you enjoy my presentation with notes included: <br>
<strong><a href="http://www.unethicalblogger.com/files/Coping with success.pdf">Coping with Success: Scaling on the Facebook Platform (PDF)</a></strong> <br>
<strong><a href="http://www.flickr.com/photos/agentdero/sets/72157601461292940/">Coping with Success: Scaling on the Facebook Platform (Flickr)</a></strong><br/><br/> <br>
<br>

View File

@ -0,0 +1,12 @@
---
layout: post
title: I just saved $150!
tags:
- Miscellaneous
created: 1187529030
---
Thanks City of San Francisco for not being able to tell the differences between at least two of the three characters in my license plate. <br>
<br>
I'd feel guilty, but if my street is marked for "Street Cleaning" three days a week, I'd like to see it cleaned at least twice a week. <br>
<br>
What a racket.

View File

@ -0,0 +1,17 @@
---
layout: post
title: Scaling with MySQL, a brief guide.
tags:
- Opinion
- Software Development
- Facebook
created: 1187755277
---
I've been thinking and experimenting a lot with MySQL 5, and PostgreSQL 8.3, trying to figure out which database server would be most optimal for scaling larger web applications. <br>
<br>
I've brought some of my MySQL optimization tips into a small e-book styled guide, something I hope will help my fellow developers understand what they are getting into before choosing a production environment with MySQL 4, or MySQL 5 in contrast to PostgreSQL. <br>
<br>
If you have any other tips for scaling with MySQL, I'll make sure I add them to my little e-book and release and updated PDF file :) <br>
<br>
<br>
<strong><a href="http://unethicalblogger.com/files/Scaling MySQL.pdf" target="_blank">Scaling MySQL (PDF)</a></strong>

View File

@ -0,0 +1,15 @@
---
layout: post
title: My Boss is a Robot.
tags:
- Slide
- Miscellaneous
created: 1187845694
---
Sometimes <a href="http://max.slide.com" target="_blank">Max</a> tells me things that I find hard to believe, but after I verify that he's not just telling tall tales, they inevitably turn out to be 100% correct, which is scary. <br>
<br>
Jokingly I mentioned that "Max is a robot" today, to which he promptly corrected me stating that "it's already known" that <a href="http://valleywag.com/tech/top/is-max-levchin-a-cyborg-169812.php" target="_blank">Max Levchin is a cyborg</a>. <br>
<br>
Some of my favorite quotes from this obviously factual article are:<ul><li>"The man is ripped. What human engineer has <em>biceps</em>?"</li><li>"When he worked at PayPal doing security (alert: common robot job).."</li></ul> <br>
<br>
The WD-40 he keeps in his left back pocket, and the obvious mechanical extension of his hand (which assumes the shape of a Blackberry) should have been dead give-aways, but I somehow glazed over this.

View File

@ -0,0 +1,22 @@
---
layout: post
title: Back to the Basics
tags:
- Academia
created: 1187887837
---
So last time we spoke I just arrived in college station during the spring semester. It has been a while! So I decided to come back after talking to my buddy tyler last night, I was reminded of the good times I had on unethical blogger (even though I only posted once). So I think I am going to start a weekly blog of things that scared the shit of of me this week. Many readers will laugh at this weeks, I did not find the situation funny. <br>
<br>
WHAT SCARED ME? <br>
<br>
RACCOONS? <br>
<br>
As I was throwing out the trash, I hit a raccoon with a box and I jumped out of the dumpster and almost killed me. Luckily I have learned from Chuck Norris So that Raccoon was good as dead. Bust still they need to die. <br>
<br>
I have also started a new thing with my buddy tyler, when I call tyler for tech support, I give him a dollar. So far he has earned 4. By the end of the year I would not be surprised if he has earned at least 50 from me. <br>
<br>
Anywhoo my quesidillla is done so I gotsta jet. <br>
<br>
As always I am your humble mexican friend, <br>
<br>
The Roy

View File

@ -0,0 +1,17 @@
---
layout: post
title: Facebook Developer Garage Palo Alto
tags:
- Slide
- Miscellaneous
- Software Development
- Facebook
created: 1188064625
---
Somewhere amongst the stress of this past week, I neglected to mention that this weekend, i.e. today, there will be a <a href="http://www.facebook.com/event.php?eid=4184233826" targer="_blank">Facebook Developer Garage in Palo Alto</a> Co-hosted by <a href="http://www.slide.com" target="_blank">Slide</a>. <br>
<br>
I'll be speaking, giving the presentation <a href="http://unethicalblogger.com/posts/r_tyler_ballance/coping_with_success_scaling_on_the_facebook_platform" target="_blank">I previously mentioned not being able to give</a>, on scaling on the Facebook platform and some of the key things to consider when choosing between and FBML or an IFrame based application. <br>
<br>
Not only will I be there, but most of the Slide/Facebook crew will be there along with (at latest count) about 300 people from around Silicon Valley who are interested in developing, monetizing, and creating on top of the Facebook platform. <br>
<br>
Feel free to stop on by to watch me say "um" too many times in front of 300 of my peers, good times will be had by all.

View File

@ -0,0 +1,21 @@
---
layout: post
title: Facebook Developer Garage Wrap-Up
tags:
- Slide
- Miscellaneous
- Software Development
- Facebook
created: 1188168348
---
Despite resisting the temptation to come on stage chanting "developers, developers, developers!" I think the entire <a href="http://www.facebook.com/event.php?eid=4184233826" target="_blank">Facebook Developer Garage - Palo Alto</a> was great success. Application developers from (in my opinion) well over half of the popular applications on Facebook and a lot of independent application developers showed up and in general good times were had by all. <br>
<br>
<center><a href="http://www.flickr.com/photos/agentdero/1246182593/" title="Photo Sharing" target="_blank"><img src="http://farm2.static.flickr.com/1236/1246182593_9d20c98e88_o.jpg" width="300" alt="Developer Swag" /></a></center> <br>
<br>
As far as my presentation went, I was apparently "<a href="http://coolastory.blogspot.com/2007/08/facebook-developers-garage-build-on-fb.html" target="_blank">a great speaker, spoke in depth about building apps thats scale</a>." But in general the feedback was very good, and I spent most of the rest of the day talking to individual developers about short-term and then longer term growth and how to attack that from a developer's perspective. <br>
<br>
Since I've updated the presentation, it's posted here again. <br>
<br>
<a href="http://unethicalblogger.com/files/Coping with success_nonotes.pdf" target="_blank">Coping with Success</a> (PDF) <br>
<br>
<br/>

View File

@ -0,0 +1,32 @@
---
layout: post
title: "Video: Facebook Developer Garage"
tags:
- Slide
- Facebook
created: 1188452401
---
I figured I'd go ahead and include some of the Facebook Developer Garage videos that were recently posted to YouTube, including ones of me giving my presentation. <br>
<br>
<h2><small>Coping with Success</small></h2><strong>Part One</strong> <br>
<center><object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/RGbZoarI-xM"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/RGbZoarI-xM" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object></center> <br>
<br>
<strong>Part Two</strong> <br>
<center><object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/Ts7m-0lWkVY"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/Ts7m-0lWkVY" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object></center> <br>
<!--break--> <br>
And of course Dave Fetterman, the lead engineer on the Facebook Platform gave a good talk (preceeding mine) <br>
<br>
<h2><small>From Facebook</small></h2><strong>Part One</strong> <br>
<center><object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/R8KggY3LhSw"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/R8KggY3LhSw" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object></center> <br>
<br>
<strong>Part Two</strong> <br>
<center><object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/xaFx1cSXUuc"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/xaFx1cSXUuc" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object></center> <br>
<br>
<strong>Part Three</strong> <br>
<center><object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/MZppeL71BD8"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/MZppeL71BD8" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object></center> <br>
<br>
In general it was a great event, both technically, but also in terms of networking and sharing knowledge and ideas we've all accrued through our work on the platform. Slide had a good showing in my opinion and I think we did a good job of offering up advice where we could in terms of scaling, technical "gotchas" on the platform, and whatever else we could offer up to the community. <br>
<br>
Around 300 showed up this time around, I'm hoping closer to 400 or 500 show up for the next Facebook Developer event that's held in the bay area, but we'll see. <br>
<br>
<small>Videos courtesy of <a href="http://youtube.com/user/dalmaer" target="_blank">dalmaer</a></small><br/><br/>

View File

@ -0,0 +1,16 @@
---
layout: post
title: Time for a Road Trip
tags:
- Miscellaneous
created: 1189155054
---
After a few solid months of staying within the city limits of San Francisco hacking to my heart's content on a few Facebook products, my OpenMoko, some Mono libraries that I'm building, and other stuff I shouldn't talk about, I'm taking a break. <br>
<br>
A friend of mine has taken my advice and is moving to the west coast now that she's graduated and is ready to see what the world has to offer outside of Boston. Part of my obligation it would seem as the giver of (<strong>fantastic</strong>) advice is that I will now help her drive 2,968 miles from Washington D.C., to Santa Barbera. <br>
<br>
I'm debating buying a camera once I arrive in D.C. later today. If anybody has any suggestions for reasonably priced, good digital cameras, please let me know. <br>
<br>
This should be fun. <br>
<br>
<center><iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=d&amp;hl=en&amp;geocode=&amp;saddr=Washington+D.C.&amp;daddr=33.651208,-84.287109+to:Burleson+Rd+%4030.221110,+-97.734350+to:Santa+Barbera,+CA&amp;mrcr=0,1&amp;mrsp=1&amp;sz=4&amp;mra=dpe&amp;sll=37.579413,-98.4375&amp;sspn=39.084602,68.818359&amp;ie=UTF8&amp;om=1&amp;ll=37.579413,-98.4375&amp;spn=39.084602,68.818359&amp;output=embed&amp;s=AARTsJravuunRMtuM6NQbZq9ZM-D2AhJtA"></iframe><br /><small><a href="http://maps.google.com/maps?f=d&amp;hl=en&amp;geocode=&amp;saddr=Washington+D.C.&amp;daddr=33.651208,-84.287109+to:Burleson+Rd+%4030.221110,+-97.734350+to:Santa+Barbera,+CA&amp;mrcr=0,1&amp;mrsp=1&amp;sz=4&amp;mra=dpe&amp;sll=37.579413,-98.4375&amp;sspn=39.084602,68.818359&amp;ie=UTF8&amp;om=1&amp;ll=37.579413,-98.4375&amp;spn=39.084602,68.818359&amp;source=embed" style="color:#0000FF;text-align:left">View Larger Map</a></small></center>

View File

@ -0,0 +1,11 @@
---
layout: post
title: For what it's worth
tags:
- Miscellaneous
created: 1189711474
---
I'm back in San Francisco, and I'm not dead. <br>
<br>
That was one crazy-fast road trip. <br>
<br/> <br>

View File

@ -0,0 +1,16 @@
---
layout: post
title: C'mon down to SilverlightDevCampSF
tags:
- Mono
- Software Development
created: 1189805360
---
A bit late to bring up, but later today and tomorrow here in San Francisco, "we" (using that term loosely) will be holding <a href="http://barcamp.org/SilverlightDevCampSF" target="_blank">SilverlightDevCampSF</a>, one of the first <a href="http://barcamp.org" target="_blank">BarCamp</a>-styled events that I'll have ever attended where I've not played a part in it's organization. <br>
<br>
In case you're unfamiliar with BarCamp events, they're loosely organized meetups/conferences to which geeks flock to normally for the booze included, but sometimes for the technical aspects as well. <br>
<br>
I'm showing up particularly for Kevin Marshall's session on "Silverlight Facebook Apps" for obvious reasons, as well as to try my best to enlighten my fellow developers on the joys of Mono and Moonlight (that last part might not work out, time permitting). Overall it should be fun, and I hope if you're in the bay area you can make it down to 1 Market St! (<small><a href="http://maps.google.com/maps?f=q&hl=en&geocode=&q=1+Market+Street+san+francisco,+ca&sll=37.0625,-95.677068&sspn=51.04407,81.738281&ie=UTF8&z=17&iwloc=addr&om=1" target="_blank">map</a></small>) <br>
<br>
<center>In case you're showing up, here's what I look like:<br/> <br>
<img src="http://unethicalblogger.com/files/Photo 6.jpg" height="150"/><br/><strong>I'm with stupid ^</strong></center>

View File

@ -0,0 +1,23 @@
---
layout: post
title: SIlverSurfer, Try out Silverlight on Mac OS X
tags:
- Mono
- Software Development
created: 1189920348
---
<img src="http://unethicalblogger.com/files/762.jpg" align="right" width="125"/>At the <a href="http://barcamp.org/SilverlightDevCampSF" target="_blank">SilverlightDevCampSF</a> this past couple days, I discovered a couple things while hacking around with both <a href="http://mono-project.com/Moonlight" target="_blank">Moonlight</a>, and <a href="http://silverlight.net/" target="_blank">Silverlight</a>. <br>
<br>
The first of which was that I don't know nearly enough about Silverlight, XAML, and WPF in general (crap). The second of which, was that with WebKit on Mac OS X, any application that embeds WebViews inherits plugins that are installed on the system. Extending this idea further, WebKit can inherit plugins that are bundled with a Cocoa application (inside Application.app/Contents/PlugIns), woohoo! What this means, outside of a purely Silverlight-related context, is that you could theoretically bundle a WebKit-plugin with a WebKit-based application and just have that plugin purely application specific, or bundle up a WebKit application with different versions of Flash and Silverlight for testing purposes. Unfortunately, there are some issues with clicking through to the Silverlight canvas in an embedded WebKit view, you can still try it out inside an application, without having to install the Silverlight plugin and restart your instance of Safari. <br>
<br>
That said, are you thinking what I'm thinking? Of course not, you're probably sane, but I'm not, so I'd like to introduce <a href="http://unethicalblogger.com/dist/SilverSurfer.zip" target="_blank">SilverSurfer 1.0</a>, an embedded version of WebKit that loads in the Silverlight 1.0 plugin for Mac OS X. It <strong>doesn't</strong> install anything on your computer, so you don't have to restart Safari, or futz with plug-ins, this is especially useful if you just want to try Silverlight out and see what it's about without installing anything. <br>
<br>
<h2><small>Running SilverSurfer</small></h2><center><a href="http://unethicalblogger.com/files/silversurfer_google.jpg" rel="lightbox"><img src="http://unethicalblogger.com/files/silversurfer_google.jpg" width="400"/></a></center> <br>
<br>
<h2><small>Visiting a Silverlight page in Safari</small></h2><center><a href="http://unethicalblogger.com/files/silversurfer_safari.jpg" rel="lightbox"><img src="http://unethicalblogger.com/files/silversurfer_safari.jpg" width="400"/></a></center> <br>
<br>
<h2><small>Visiting the same page in SilverSurfer</small></h2><center><a href="http://unethicalblogger.com/files/silversurfer_runningsilverlight.jpg" rel="lightbox"><img src="http://unethicalblogger.com/files/silversurfer_runningsilverlight.jpg" width="400"/></a></center> <br>
<br>
<h2><small>Complex Silverlight in SilverSurfer</small></h2><center><a href="http://unethicalblogger.com/files/silversurfer_virtualearth.jpg" rel="lightbox"><img src="http://unethicalblogger.com/files/silversurfer_virtualearth.jpg" width="400"/></a></center> <br>
<br>
I think it's a neat trick, the only downside is actually having to bundle up the entire Silverlight.plugin bundle with the application bundle to make sure you don't have to install it, but other than that I hope you can find it useful when trying out Silverlight, or just testing it in Safari!

View File

@ -0,0 +1,16 @@
---
layout: post
title: Channel9 Silverlight Interview
tags:
- Mono
- Miscellaneous
- Software Development
created: 1190204903
---
<a href="http://channel9.msdn.com/showpost.aspx?postid=342743" target="_blank"><img src="http://unethicalblogger.com/files/my_silverlight_vid.jpg" align="right" width="135"/></a>At the closing of <a href="http://barcamp.org/SilverlightDevCampSF" target="_blank">SilverlightDevCampSF</a> Microsoft Evangelist <a href="http://adamkinney.com/" target="_blank">Adam Kinney</a> did a brief video interview with me about my silly Silverlight hack. I had just started with Silverlight the night before, and didn't even have <a href="http://mono-project.com/Moonlight" target="_blank">Moonlight</a> virtual machine up yet, but I did have a Windows XP vm kicking around. <br>
<br>
After the, roughly, three hours it took me to get Visual Studio 2008 (Orcas), Expression Blend, and a couple of other tidbits installed on my vm, I finally got to my Silverlight hack. Starting with something I presumed would be exceedingly simply, I created <a href="http://www.slide.com" target="_blank">our</a> "collage" transition in Silverlight (you can find a "sample" <a href="http://monkeypox.org/silverlight/collage/" target="_blank">here</a>). <br>
<br>
The hack is relatively simple, a new randomly generated storyboard and canvas are created for each image, then added to the root element; after 15 images have been added the canvas is cleared and repeats. I used Silverlight 1.0, since that's all that is released right now, so everything is in Javascript (<a href="http://twitter.com/agentdero/statuses/270270152" target="_blank"><strong>argh!</strong></a>), but I intend on revisiting the hack once Silverlight 1.1 is a bit more stable (and rewrite it in IronPython!). <br>
<br>
Anyways, <a href="http://channel9.msdn.com/showpost.aspx?postid=342743" target="_blank">here's the interview</a>.

View File

@ -0,0 +1,9 @@
---
layout: post
title: (Unofficial) Facebook Hackathon in Palo Alto
tags:
- Facebook
created: 1190442838
---
Rumor has it that there will be a <a href="<a href="http://www.facebook.com/event.php?eid=5484699351" target="_blank">little meetup in Palo Alto tomorrow</a> to hack on some Facebook applications. The hackathon will be at Happy Donuts in Palo Alto, which is a hop skip and a jump away from the California Ave. Caltrain stop. I am planning on attending to hack on my <a href="http://apps.facebook.com/bugtracker" target="_blank">Bug Tracker</a> application (written in ASP.NET on <a href="http://www.mono-project.com" target="_blank">Mono</a>, which I will dissect and discuss later) as well as help out anybody that needs a good kick in the pants. Other than that however, it should be interesting how many folks show up and for what reasons, I'd like to discuss and share some of our sicker FBML hacks and maybe collectively play with (read: break) the <a href="http://wiki.developers.facebook.com/index.php/Data_Store_API_documentation" target="_blank">Facebook Data Store API</a>. Should be fun, come down and hang out :) <br>
<center><iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=d&amp;hl=en&amp;geocode=4023426035697166920,37.428388,-122.143078&amp;saddr=37.428763,-122.142649&amp;daddr=3916+El+Camino+Real,+Palo+Alto,+CA&amp;mrcr=0&amp;mrsp=0&amp;sz=15&amp;mra=dme&amp;sll=37.422705,-122.13781&amp;sspn=0.019563,0.036092&amp;ie=UTF8&amp;om=1&amp;ll=37.422705,-122.13781&amp;spn=0.019563,0.036092&amp;output=embed&amp;s=AARTsJrt5-ZPoDKn4-9ZqrhWR7lp2olzLg"></iframe></center>

View File

@ -0,0 +1,24 @@
---
layout: post
title: Contemplating ReMIX 07 in Boston
tags:
- Mono
- Miscellaneous
- Software Development
created: 1190547252
---
While catching up on about 2 weeks of Mono Subversion commit emails (about 1000), building Mono, and writing a new Facebook REST client library, I came across <a href="http://www.remix07boston.com/" target="_blank">ReMIX 07 in Boston</a>, which certainly looks interesting. I haven't been to Boston yet, and it'd be nice to at the very least, to try to buy Miguel and some of the Boston-based Mono team a beer, maybe to make up for some of my anger that sometimes blurts out into the IRC channel: <br>
<br>
<pre>05:48 &lt;rtyler&gt; god <strong>[expletive-deleted]</strong> damnit, I'm going to beat somebody up</pre><center>(<small>Which, in all fairness, usually stems from some idiot mistake on my part</small>)</center> <br>
<br>
<br/>The sessions on Silverlight by <a href="http://adamkinney.com/" target="_blank">Adam Kinney</a>, who I did <a href="http://unethicalblogger.com/posts/r_tyler_ballance/channel9_silverlight_interview" target="_blank">this interview</a> with, are definitely looking enticing, as I'm still trying to figure out if it's worth my time and effort, or if Microsoft is going to screw developers <strong>again</strong> (<A href="http://www.mactech.com/articles/mactech/Vol.13/13.06/ActiveXControlsforMac/index.html" target="_blank">ActiveX for Mac OS anybody?</a>). <br>
<br>
Most of the sessions seem to be targeting web developers, which is a role I find myself increasingly definable by, despite my role being clearly stated on my business card: <br>
<center> <br>
<a href="http://www.flickr.com/photos/agentdero/491860249/" title="Grrrrrrrrrr" target="_blank"><img src="http://farm1.static.flickr.com/206/491860249_9479617d6b_o.jpg" width="250" alt="New Biz Card" /></a></center> <br>
<!--break--> <br>
Regardless, seeing what developers are doing off in la-la-Microsoft land should be interesting as most of my <a href="http://apps.facebook.com/topeight/" target="_blank">web</a> <a href="http://apps.facebook.com/fortunate" target="_blank">development</a> <a href="http://apps.facebook.com/bugtracker" target="_blank">work</a> is either in Python or ASP.NET(Mono). <br>
<br>
I am a little disappointed in the lack of sessions on IronPython and where that project is heading; it probably lost out to mega-mind-boggling sessions like "<em>Stop Building PowerPoint Backgrounds & Start Selling High-end Presentations</em>", which means I would have to settle on "<em>Just Glue It! Ruby and the DLR in Silverlight</em>" for my DLR fix. <br>
<br>
That said, will it be worth a trip across country and a couple of hundred dollars out of pocket? Any couches available in the Boston are? And of course, are Microsoft conferences <strong>that</strong> awesome?

View File

@ -0,0 +1,19 @@
---
layout: post
title: Popfly. How to lose the buzz.
tags:
- Mono
- Opinion
- Facebook
created: 1190889834
---
I remember watching a Channel 9 interview about <A href="http://www.popfly.com" target="_blank">Popfly</a> with my coworker and former landlord <a href="http://stuffonfire.com/" target="_blank">David Young</a> just after the original Facebook F8 Platform Launch back in May, laughing hysterically at a user-interface that used <a href="http://unethicalblogger.com/files/grassy_fly.jpg" rel="lightbox">grass as an interface element</a>, but at the same time thinking it was a <strong>very</strong> cool use of Silverlight as an application platform, instead of a Microsoft reply to Flash. Since that fateful day in May when a Microsoft Vice President of Business Development unveiled Popfly (exactly who should be unveiling a developer tool), I've heard close to absolutely nothing about Popfly, but loads about Silverlight. <br>
<br>
Waiting to build a new version of Mono from trunk, I figured I'd check it out again, hoping their ludicrous "private beta" period would have passed, and I could finally use the technology that was unveiled almost 5 whole months ago. Alas, despite having the Silverlight plugin for Safari, <a href="http://unethicalblogger.com/files/popfly_safari.jpg" rel="lightbox">popfly.com doesn't support Safari</a> (I thought people wrote cross-platform web pages these days). Admitting my defeat, I popped open my VMWare instance of Windows XP, and Internet Exploder 7, only to discover that yes, <a href="http://unethicalblogger.com/files/popfly_ie.jpg" rel="lightbox">Popfly is still invite-only</a> <strong>or</strong> they're having server difficulties? Despite their <a href="http://www.popfly.com/Overview/About.aspx" target="_blank">about page</a> jokingly referring to themselves as the developers behind products like Microsoft Bob, I'm starting to wonder if they weren't joking, as Popfly's introduction at F8 was either woefully premature or Microsoft decided that a developer environment where you draw lasers in-between boxes that <a href="http://unethicalblogger.com/files/boxes_and_such_ib.jpg" rel="lightbox">represent stuff is too silly.</a> <br>
<!--break--> <br>
All my criticisms aside, the product does look interesting enough for me to be excited about the Popfly session at <a href="http://www.remix07boston.com/Agenda.aspx" target="_blank">ReMix Boston '07</a> in October, if for no other reason than to ask for an invite, and maybe even <strong>wtf?</strong> <br>
<br>
Given the insane amount of buzz around the Facebook Platform, and independent developers struggling to get cool applications into users' hands fast enough, Microsoft screwed up royally on a chance to sow the seeds of the next generation of developers on the web with Microsoft technologies. <br>
<br>
Dear 800lb Gorilla, <br>
When you announce something at a tech event that could possibly turn out to be industry changing like the Facebook Platform Launch, actually have the product ready for people to start using, otherwise, why bother?

Some files were not shown because too many files have changed in this diff Show More