Brian Ray's BlogPainting is just another way of keeping a diary. --Picasso
Sun, 20 Nov 2005
Snakes and Rubies
As it turns out, Chicago is not such a bad place for developers to hang out... Shortly after the top ten indie Mac Developers hold a mini-conference for Mac Developers dubbed Evening at Adler here in Chicago, the Windy City will host yet another event with near celebrity status, Snakes and Rubies!. ![]() This time from the Web Publishing World (Web 2.0), two celebrity developers Adrian Holovaty and David Heinemeier Hansson creators of Django framework and Ruby on Rails framework, respectively, will hold a public conference at Depaul. Many other almost famous Ruby and Python developers already said they will not miss it for the world. Hey, even some Perl Mongers will show up. This may be the event of the year for next generation Web 2.0 indie masterminds to rub elbows. I wonder if anybody from out of town can make it? Although, we do not have custom tee-shirts, trading cards, or nicknames like drunkenbatman, this still is an event no Chicago hacker should miss. Fri, 11 Nov 2005
November Chipy Meeting
This month's Chipy meeting was a huge success: Good location, great speakers, and amazing turnout. I can't believe how far we have come from sharing nachos at Goose Island a year and a half ago. This months topic "Remote, Generic and Random", just like us! PresentationsGeneric Functions (aka RuleDispatch) Ian BickingThis was Ian's best talk yet: well delivered, fun, interesting, and a strong topic. Dispatch brings true Polymorphism to Python Functional programming. I always wondered how this could be handled in Python. Basically, Ian revealed how to dispatch used decorators to do type checking on function prototypes. I also found this nice article about PEAK's Dispatch. From the article, here is a very simple example:
import dispatch
@dispatch.on('foo')
def doIt(foo, other, args):
"Base generic function of 'doIt()'"
@doIt.when(int)
def doIt(foo, other, args):
print "foo is an int |", other, args
@doIt.when(str)
def doIt(foo, other, args):
print "foo is a str |", other, args
doIt( 1, 'this','that') # -> foo is an int | this that
doIt('x','this','that') # -> foo is a str | this that
So, doIt now has two prototypes and a default action. Nice generic programming! Thanks Ian. The Random module Robert RamsdellRobert gave us a good field trip into Random land. He covered all major aspects including the story behind Python's switch to MersenneTwister (original C source) from Wichmann-Hill. The explanation went into several use cases for random seeds for pair on objects. For example, on nice backreferrece was to Robert's earlier talk on SimPy, a event simulation package. He used a similar seeded random pair to serialize asynchronous events by logging the random output. A creative approach. I imagine the report could remain cleaner and to a higher level of accuracy with a fewer numbers than if a time stamp was used. PYRO (Python Remote Objects) Fawad HalimFawad went into a great detail on how and when to use Python Remote Objects. PYRO comparison to other techniques of remote communication SOAP, XMLrpc, was quite insightful. Although I have not used PYRO, I can definitely can now see some future applications. PYRO basically allows client server communication between Python applications over TCP on a LAN. I see where PYRO method of pickling Python objects can be lighter weight than using XML. Because the two or chain of computers behave (practically) as one I see where the physical architecture can create a Cluster. To me this means either the possibly of more horsepower or the ability to power peripherally computer operations from a centralized location. Great talk Fawad. BTW, I now clearly see this PYRO is not this one, although I still bet you I can power my robot with either ;) All in AllTypically, I find myself nodding off in any meeting longer than 1 1/2 hours. However, this crew kept it exciting. Also, I want to thank Chris McAvoy and Performics for sponsoring the meeting. Tue, 08 Nov 2005
PostgreSQL 8.1 Released
With index scans to use an intermediate in-memory bitmap and improved buffer cache and performance for partitioned tables, PostgreSQL 8.1 will be sure to make us feel good we have no idea what these things actually do! On the other hand, the addition of features: user roles on shared objects, the separation of roles from user/group distinctions, share level row locking, auto-indexes on MAX() and MIN(),two part commits, and the inclusion of the all to familiar contributed module for pg_autovacuum into the main sources, are all features we will love and understand. Again with this upgrade a pg_dump and restore is required for the upgrade. Sat, 05 Nov 2005
Customize Xcode Templates
When I first added a new file to my XCode 2.1 project I ended up with something like this:
The MyCompanyName macro was easily accessible:
$ defaults read com.apple.XCode PBXCustomTemplateMacroDefinitions
{ORGANIZATIONNAME = "__MyCompanyName__"; }
Changing this value with write does the trick. See 'man defaults'. However, I still do not like this header on every file. I want to customize these templates so they are more friendly to doxygen, subversion, and some common class definitions I use with most new files. Here I will use C++ as the example file, although these customization tip works just as well with Java, Cocoa, or any other languages already defined or you define (I added Python). The files I need to customize are located under "/Library/Application Support/Apple/Developer Tools/File Templates". The C++ header looks like:
So here is the complete list (I think) of the macro available for expansion. WARNING: when opening these templates open the as Unicode, otherwise you will see junk for the start and stop character.
My result template looks like this:
When creating a new file from XCode the result looks like:
For further expansion of the Subversion Keywords, I added the meta data for these in subversion: $ svn proplist --verbose test.h $ svn propset svn:keywords "Id Rev URL" test.h The file of course needs to be added/committed to subversion before these are expanded. XCode supports subversion, btw so I do not need to leave the IDE. Fri, 04 Nov 2005
Producing Open Source Software: Reviewed
Producing Open Source Software By Karl Fogel is the most important book in the Open Source Revolution. On being a successful open source developer, not only does this book cover the technical aspects of Open Source Development but it also covers the most challenging topics like: working with and managing other developers, how to communicate, licensing, and concept of making money even a living writing open source. This view into the life and society of an Open Source Developer is dually qualified to be both lessons for the developer and for everyday life. Generally, I hate one liners when taken out of context. Read the whole book. With that said, here are a couple good ones:
The book clearly identifies what it takes to create, maintain, and, at times, pass the torch on Open Source Projects. It cites a wide range a good sources ranging between the famous hacker, actual open source licenses, and mail-list archives. The actually Version Control Sections are as strong and clear, of course from one of the founders of Subversion, the next version control system. I have many good things to say about this book. If I had to choose a flaw, I would only criticize there is little on Code Sprints, Parallel Programming or any Micro-Techniques. I believe this is due to the books focus on broader solutions and the entire production. This is not really a flaw, not a bug, yet another feature; so many computer books are unable to step back and show the big picture. If I did want to comment on the book, there is a handy link to, not a contact from or email address, but to bugzilla. Figures =) So, Karl should wear his suspenders proud, because this book is top shelve. Now, if we could get him and the Chicago CollaNet gang to stop back in to a ChiPy meeting. Book signing? Tue, 01 Nov 2005
CAWUG, Tonight. CocoaHeads chapter?
Tonight is the monthly meeting of Chicago's Cocoa User Group CAWUG Cocoa and WebObjects. I emailed the list (the discussion thread) and asked there was any interesting in merging (actually starting) a chapter of Cocoa Heads Chapter. Luckily, there sounds be some interest. Also I was happy to see some members are already listed on PlanetMacDev. Now all I need to do is to see if they could also cover Carbon, at times--seeing I am more familiar with C++ than Objective-C, personally. If you ask me I would like to see one large group dedicated to Macintosh Development in general: Java, Python, Perl, Cocoa, Carbon, Ruby...there is so much cross over. I would even like to cover people who like to use apple tools to make software for other platforms. Although, I certainly ok with Cocoa being the primary focus for now. It is fun to see these things come together. So all of you Cocoa Heads, come to the meeting tonight and see what this group is all about. There may be some conversation at the bar after. I can not make it to the bar after, but I encourage all to attend. See their website for more info.
|
Categories Calendar
Check out my new Blog -> |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||