Check out my latest product, BuildFactory

Archives: November 2006
30/11 XmlToolbar, cooler than milk.
If there is one thing writing software for a living has tought me, it is that a problem does not exist where XML wasn't (at least) part of the solution. Aspects of Cocoa development are no different, in fact, as wth property lists, Apple has already started finding unnecessary places to use XML.Therefore, I am happy to introduce XmlToolbar! XmlToolbar is a little project I showed off a bit in my flickr stream, but haven't found the time to clean up and release. While I am well aware of the recent enhancements to the developer tools in Leopard that make building toolbars easier than previously, I still think XmlToolbar has a good niche to fill. XmlToolbar is basically a simple parser that generates NSToolbar objects and attaches them to NSWindows at runtime, straight from an XML file! Like I said, cooler than milk (and about as exciting). When toolbar items are clicked, a specified notification (also from aforementioned XML file) will be posted allowing the underlying Cocoa code to handle the event properly.
The project is public domain, as I don't feel like bothering with a silly license this time around. In addition to public domain, it is in bleep's new anonymous subversion repository, hosted by GeekISP.
More details can be found on the XmlToolbar wiki page including subversion checkout instructions and other downloadable goodies.
[tags: cocoa, nstoolbar, xml, xmltoolbar]
22/11 best comic evar.
I was mentioning to Chris Hanson (because I'm networked like that, and never sleep) that the more I delve into Bonjour and its internals, the more I feel as if I have been the hammer to end all hammers that are named after silly french words. It is late, and I can't focus, so I decided my feelings would be best expressed in a comic, a cartoon if you will, about Bonjour and some of the issues I've found myself faced in my day-to-day network development.
I'm pretty sure I have a future in this.
[tags: bonjour, network, programming]
21/11 get bent Crucial.
I purchased a 1GB stick from Crucial for my PowerBook recently, and I just recently got an email from Crucial today advertising this stupid promo which, initially pissed me off, but assuming Crucial is a reputable business, there would be an unsubscribe link.I found the following unsubscribe link:

which brought me to this page:

What the hell. Crucial, you've lost a customer.
Get bent.
[tags: crucial, memory, spam, anger]
21/11 kind of depressing
It was my birthday yesterday. Monday. Just my luck.I won't exactly disclose my precise age, but to use my step-father's cliché methaphor, whereas getting older is equivalent to aging a fine wine, I feel like two buck chuck.
I've said this before, but honestly, I thought I'd know more by now, and still I feel like I'm stuck between Alzheimer's and Down's Syndrome[1]. Sure, I can explain in great detail why I think C++ is a poorly implemented language both in syntax and execution, or how operator-overloading is a solution searching for a problem; I can discuss the various advantages to writing .NET 1.1 compliant code in Mono versus .NET 2.0 code that makes excessive use of generics or nullable types[2]. I feel confident speaking in front of tens or hundreds of other people on a range of topics from generic software development practices applied to rapid development on Mac OS X, to the specific advantages one ascertains from developing and deploying with Cocoa and Core Data first, and then developing a Windows product thereafter. I can compare and contrast the various operating systems and the situations in which I think they are most effectively used. I've also only recently started to truly write thread-safe and efficient threading code after starting to revisit some of the core concepts behind multithreading.
I explain and do a lot, but I still feel like I don't know a damned thing.
I've been taking steps to change this, my current "professional" reading list is:
- The Definitive Guide to GCC, Second Edition (William von Hagen)
- Accelerated C# 2005 (Trey Nash)
Zero Configuration Networking: The Definitive Guide(Stuart Cheshire & Daniel H. Steinberg)- Unix Network Programming, Volume 1: The Sockets Networking API, 3rd Edition (W. Richard Stevens, Bill Fenner, Andrew M. Rudoff)
- UNIX Network Programming, Volume 2: Interprocess Communications, 2nd Edition (W. Richard Stevens)
- TCP/IP Illustrated, Volume 1: The Protocols (W. Richard Stevens)
- TCP/IP Illustrated, Volume 2: The Implementation (Gary R. Wright & W. Richard Stevens)
16/11 disconnecting
I recently flew out to Cupertino to have a little chat with Apple, in doing so, I was traveling most of Monday, and Wednesday, meaning my time connected to the "grid" was quite limited to just before I passed out from exhaustion, and just after I had woken up.It's quite interesting to see what happens when you don't tell some people you are "disconnecting" per se, when I returned I found emails in my inbox with subjects like "are you alive?" or even something like "You ok? Please call me."
As flattered as I am that so many became so worried after I dosconnected for a few days, its kind of scary to think that my health is judged in direct relation to the amount of time I spend connected.
In the words of the computer I first ever connected to the internet with:
Eep.
[tags: internet, grid, eep]
14/11 deep breath
t-minus one hour.this is more nerve-wracking than the SAT.
wish me luck, i am not nearly caffeinated enough for this.
12/11 normalcy
it's kind of depressing to realize that I am like 95% of the developers out there, in that:i suck at threads.
damnit on a stick
[tags: pthreads]
10/11 the silicon valley marathon
I'm not going into too many details, but I'll be interviewing at Apple next tuesday. Scary huh?After interviewing with Juniper this summer, I've come to refer to the style in which companies in silicon valley interviews people as a "marathon" of sorts, and this one will be a bit different.
9:30 - 10:15 am paired interview (2 on 1)
10:15 - 11:00 am paired interview
11:00 - 11:45 am paired interview
11:45 - 12:45 pm paired interview (Lunch)
12:45 - 1:30 pm single interview (1 on 1)
1:30 - 1:45 pm single interview
1:45 - 2:30 pm paired interview
2:30 - 3:15 pm single interview
3:15 - 4:00 pm single interview
4:00 - 4:45 pm single interview
Juniper wasn't too bad, it was 7 interviews (only one of them was Mac-related, the position was a Mac developer position), but 10 interviews isn't a marathon, that's a medal of honor interview (above and beyond the call of duty, etc).
Needless to say, I'll be stressing out all weekend in preparation; i.e. writing loads of network related code, studying the entire TCP/IP stack again and again, practicing implementing tiny multicast servers/clients, and pouring over the mDNSResponder code until my brain implodes (or I deem myself competent in the zeroconf wizardry).
I won't say who I get to have lunch with, but to be mysterious, let's just say I've never had lunch with any of my geek idols, nor have I ever had lunch with anybody that's authored an RFC before.
Scary
[tags: apple, coreos, bonjour, employmentaid]
05/11 dirty evangelist
Given the amount of business I have forwarded Apple's way, I really think they should cut me a check, or at least send me some free hardware.I spent most of my productive sunday afternoon today preparing two Macs for folks, which got me thinking: just how many Mac users am I responsible for?
Let's see here, first, immediate family:
- Katie, sister (iBook G4) - Convinced parents that a Mac is the best graduation present you can give, short of a car (so Katie got a Mac, and still drives a 10 year old Civic)
- Kelly, sister (iMac G3) - I'll be delivering her shiny new/old upgraded iMac G3 (Lime) on Tuesday
Not that bad, but not that great either. Last year, much to my amazement, my mother purchased a Dell laptop. After taking a moment to think the worst of her, I installed anti-virus, firewalls, patches, service packs, more patches, hotfixes, ad infinium. My girlfriend's family has taken much more kindly to my evangelism than my own:
- Girlfriend (iBook G4) - After showing off my shiny PowerBook G4 shortly after we started dating, she tossed her Dell tower, and bought an iBook...getting close to time for both of us to get MacBooks however.
- Girlfriend's Sister (MacBook White) - Explained to Girlfriend's parents that a Mac is the best graduation present you can give, and she already had a car.
- Girlfriend's Mom (PowerMac G4 AGP) - I'll be delivering this recently acquired and upgraded PowerMac G4 Tower on Tuesday as well.
That's 5 Mac users in two years, not too shabby, but that's also not counting the friends who I've helped convert to the Cult of Mac of Mac recently, or the people who I probably helped push over the top after my critically unacclaimed BarCamp Texas presentation on how delightful developing on a Mac can be (this is the BarCamp from which Bonsoir was born).
I've long had a "hardware fetish" (I still cry myself to sleep at night knowing that my Sun Ultra II is in the hands of another), but I find that giving hardware away, especially Apple hardware, is one of the most enjoyable things a nerd can do (with computers at least).
There's something magical about watchiing somebody's eyes light up as they see Dashboard for the first time, load up Pages, or try to right click.
[tags: evangelism, ibook, imac, powerbook, powermac, apple, cultofmac]
03/11 leaving a pile of acme bird seed in the middle of the road
I've been noticing that my network performance has degraded obscenely over the past couple weeks, and I've been trying to figure it out. It seems directly related to whether or not I'm making use of bit torrent (for grabbing Linux ISOs or music). Armed with mtr and some knowledge of the network topology between my apartment and the GeekISP servers (they host some of my stuff, including my subversion repository, etc), I set off to figure out where the hell all my packets were ending up.The first tests were done with bit torrent running (via Transmissiona). The following test was made while running Transmission, with an upload cap of 10KB/s and an unlimited download cap (with speeds normalized between 15-35KB/s down). It's also worth noting that this is a completely legitimate use of bit torrent. I am far more interested in the latest sets from Micah than I am in poorly encoding movies that I wouldn't bother renting in the first place.
intellian:~ tyler$ date +%H:%M\ %d.%m.%Y 09:52 03.11.2006 intellian:~ tyler$ mtr -r -c 50 login.geekisp.com HOST: intellian.local Loss% Snt Last Avg Best Wrst StDev 1. 192.168.250.1 0.0% 50 0.8 0.9 0.8 1.3 0.1 2. 10.40.224.1 16.0% 50 74.1 24.9 6.9 152.2 30.6 3. 24.28.133.128 4.0% 50 22.5 29.2 7.6 143.2 34.9 4. 24.28.129.22 8.0% 50 9.8 19.4 7.5 194.6 29.9 5. 72.179.205.9 12.0% 50 91.9 30.4 15.0 135.7 30.9 6. 4.71.12.17 8.0% 50 16.6 36.3 14.8 164.9 40.8 7. ae-2-52.bbr2.dallas1.level3. 26.0% 50 30.6 74.6 15.3 305.2 80.3 8. as-1-0.bbr2.losangeles1.leve 22.0% 50 132.8 126.0 46.8 286.0 65.6 9. ae-14-55.car4.losangeles1.le 22.0% 50 157.5 101.7 48.4 252.7 58.4 10. globalcrossing-level3-10ge.l 26.0% 50 87.9 99.9 47.4 620.6 103.4 11. nextgen-telephone.g1-0-0.400 20.4% 49 90.8 128.9 88.0 324.3 60.9 12. fe-xl2-cr1-mtsnny.gbcx.net 24.5% 49 90.8 117.7 88.6 252.6 47.4 13. router2.geekisp.com 18.4% 49 91.7 119.5 89.4 293.8 47.1 14. 216.168.135.172 26.5% 49 90.3 122.9 90.3 224.5 46.0


