Patent Office Orders Re-Examination of Blackboard Patent
Phew. At least the US patent system isn't totally broken. The re-examination was triggered by an official request of the Software Freedom Law Center:
SFLC, provider of pro-bono legal services to protect and advance Free and Open Source Software, had filed the request in November on behalf of Sakai, Moodle, and ATutor, three open source educational software projects. The Patent Office found that prior art cited in SFLC's request raises "a substantial new question of patentability" regarding all 44 claims of Blackboard's patent. Source: Groklaw 05:36 PM, 26 Jan 2007 by Mark Aufflick Permalink | Comments (0) Agile contracts
mue has the seed of a great idea in his post How to get an agile contract?.
The key observation is that there can be a conflict between agile methodologies and traditional project based contracts. Since most clients won't wear an infinitely open ended (by the hour) contract and most developers can't afford to iterate past the end of an agreed number of payments there needs to be some flexibility in the billing relationship. How you codify that into a contract or set of contracts is an interesting challenge. I don't do too much freelance work these days - when I did it was either of two extremes: pre-agreed price per project or simple hourly billing. Does anyone have any examples of agile project contracts that worked well (or didn't)? 03:36 PM, 25 Jan 2007 by Mark Aufflick Permalink | Comments (0) MacOS X State of the Union
Last night I watched the OSX State of the Union presentation (on the ADC iTunes) from MacWorld. Nothing really new, but it was a good watch as per usual.
o nothing new there * multicore o OS frameworks higly threaded with fine grained locking o cpu and i/o prioritisation support o new NSOperation and NSOperationQueue to provide OS support for simple concurrent processing * memory management o garbage collection added to the ObjC runtime - hooray! (although hardly breaking news) + garbage collection is opt in (at the application level) + all objects collected + release method is a noop! + not mark and sweep - generational, which makes use of the fact that new objects are more likely to be able to quickly be released than old long running objects * graphics o the buzzword is "cinematic experiences" o core animation looks pretty damn cool - it's even integrated with the new cocoa widgets o resoloution independant user interfaces by 2008 - hooray, just like X11 in 1988 ;) * developer tools o the new interface builder is also very cool :) Update: Gah - now I realise why this doesn't sound new, because it's from August 2006 I assumed it was from Macworld, but it turns out that I just got an email because Apple decided to release it to all ADC members. At least they did I guess. 04:43 AM, 25 Jan 2007 by Mark Aufflick Permalink | Comments (0) Apple feels compelled to charge you money
The charge for the forthcoming 802.11n wireless software by Apple has been discussed for a while. I have no problem with it - one thing Apple has consistently been ahead of the pack with is wireless technology, and being ahead of the pack costs money.
But the rationale offered as to why they are charging it is completely nonsensical: The nominal distribution fee for the 802.11n software is required in order for Apple to comply with generally accepted accounting principles for revenue recognition, which generally require that we charge for significant feature enhancements, such as 802.11n, when added to previously purchased products I had to read that a few times. Firstly, when did a "generally accepted ... principle" require anyone to do anything? Secondly, since when did Apple start publicly admitting that it was doing something because "well that's what everyone else does"?? Perhaps Apple should start making OS X more complex so as to comply better with the generally accepted principle that computers are hard to use? I'm speechless. Update: Seems it is not going unnoticed by the press: WSJ: Apple Gets a Bruise by Blaming A $1.99 Fee on Accounting Rules 01:30 PM, 23 Jan 2007 by Mark Aufflick Permalink | Comments (0) Sybase, ANSI compliant? Phooey.
As previously discussed in this blog, I don't enjoy having to program with Sybase.
Here's another nail in it's coffin in my mind - full join. Appendix A: Compatibility with Other Sybase Databases. So, Adaptive Server Anywhere supports Ansi full join, as does IQ (Sybase's data warehouse product), but their flagship Adaptive Server Enterprise (mmmm, Enterprise) doesn't? Instead I have to distinct union together the left and right outer join... Could be worse - I could be using Mysql (which also has no full join). Of course, Postgresql does have full outer joins (so does Oracle 9i for the record). Update: Oh, and a blank string coerces to a date of 1/1/1900. Brilliant. Update: brillant. Like MySQL, Sybase would rather silently ignore your bugs than report them:
03:05 AM, 19 Jan 2007 by Mark Aufflick Permalink | Comments (0) The Road to Enlightenment Is Littered with Irritating, Superfluous Parentheses
Arto Bendiken has posted a wonderful Q&A on how he got started with Lisp, with the same title as this post.
His path is not dissimilar to mine except that I had the good fortune to get hooked on dynamic languages early on, which is possibly why I have been slower to get from B to C with Lisp (less need when you can implement many list based and functional idioms in Perl). I almost want to like Smalltalk more than Lisp, but I suspect that is because of the OO ingrained in me and also my worship of Xerox Parc, Douglas Engelbart, etc. My gut instinct, however, tells me that Lisp is just that one level higher. I'm very interested in any languages/dialects that implement the power of Lisp with less noise. I'm sure it's possible, but it just hasn't been "discovered" yet. On the other hand, perhaps it's not. Perhaps the endless, nested, streams of braces and symbols are the purest representation of code. Like logic DNA. Update: In Arto's post he mentions the Lisp machines. I would suggest that in a not dissimilar way that Squeak is a software embodiment of the Alto Smalltalk Machine, Emacs is a rough embodiment of a Lisp machine. Some people even use Emacs as their entire windowing system. 03:16 AM, 16 Jan 2007 by Mark Aufflick Permalink | Comments (0) Einstein's Puzzle
I can't believe I've never come across this before. It took me a bit under 30 minutes using pen and paper (but I was distracted by work a few times...). Probably would have been quicker to write a Prolog program (but it's much more satisfying by hand :) See how you go:
The Swede keeps dogs as pets. The Dane drinks tea. The green house is to the left of the white house. The owner of the green house drinks coffee. The man who smokes Pall Mall keeps birds. The owner of the yellow house smokes Dunhill. The man living in the house right in the center drinks milk. The Norwegian lives in the first house. The man who smokes Blends lives next to the man who keeps cats. The man who keeps horses lives next to the man who smokes Dunhill. The man who smokes Blue Master drinks beer. The German smokes Prince. The Norwegian lives next to the blue house. The man who smokes Blends has a neighbor who drinks water. Who keeps the fish? Email or meebo me for the answer (comments with the answer will be deleted!). Wikepedia has some information on the history of this puzzle. Excerpt: The Zebra Puzzle is a well-known logic puzzle. The version of the puzzle given in Wikipedia is tougher because two pieces of information are missing. Naturally someone has already written Prolog and Lisp solutions for it :) 02:38 AM, 16 Jan 2007 by Mark Aufflick Permalink | Comments (0) Great emacs blog
Someone asked me a while back to post more emacs tips. Well, I haven't posted much of anything over the summer break, but I did just find a new blog minor emacs wizardry by the author of a smalltalk/lisp blog that I read occasionally, programming musings.
I learned an amazing feature of the dired mode, that with the command wdired-change-to-wdired-mode command you can make the directory view editable. Eg. if you do a search and replace in the buffer (using normal commands), the files will be renamed. Cool! There's also a neat emacs lisp fragment to keep an eye on open memory allocations in your Objective-C code (Define your own keywords). Mind you, I can't wait for the Objective-C garbage collector that will be standard in OSX 10.5 :) Possibly the most useful productivity addition (especially for an emacs-using team - if I can find one these days...) is linkd.el which allows you to embed internal and external hyperlinks in emacs so you can, eg, put links in your code comments to relevant files, sections, or web pages. Update: For GTD (Getting Things Done) fans out there, I linked through to a page on using the emacs org-mode for implementing GTD. By an Australian no less :) 04:39 PM, 15 Jan 2007 by Mark Aufflick Permalink | Comments (2) Finer grained rss feeds
Well I'm nearly back from my blogging holiday (far too much cricket on TV for blogging ;) so in preparation I have turned off "link-splicing" in my rss feed which means that the rss feed for my blog ( http://mark.aufflick.com/blog/rss/rss.xml ) will give you blog articles only.
You can separately subscribe to my bookmarking via del.icio.us's builtin rss feed: http://del.icio.us/rss/aufflick 03:49 AM, 14 Jan 2007 by Mark Aufflick Permalink | Comments (0) |
Archive
August 2008 July 2008 June 2008 May 2008 March 2008 February 2008 January 2008 December 2007 November 2007 October 2007 September 2007 August 2007 July 2007 June 2007 May 2007 April 2007 March 2007 February 2007 January 2007 December 2006 November 2006 October 2006 September 2006 August 2006 July 2006 June 2006 May 2006 April 2006 March 2006 February 2006 January 2006 December 2005 November 2005 October 2005 September 2005 August 2005 July 2005 June 2005 May 2005 April 2005 March 2005 February 2005 January 2005 December 2004 November 2004 October 2004 September 2004 August 2004 July 2004 June 2004 May 2004 April 2004 March 2004 February 2004 January 2004 December 2003 November 2003 October 2003 September 2003 August 2003 Notifications Request notifications
Recent Comments | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Request notifications