MX-Nano PATA ZIF SSD and 1st Generation MacBook Air

| No TrackBacks

This is just a public service announcement for those wishing to replace the HD/SSD in a first generation MacBook Air with a Mach Xtreme Technology MX-Nano P-ATA ZIF SSD. Since information on P-ATA ZIF connectors and cables is kind of hard to come by, and the MX-Nano uses a different orientation for Pin 1 than the normal Toshiba or Samsung HDs used in the MacBook Air, there can be some confusion as to how to correctly install the MX-Nano.

So for those that plan on using the MX-Nano, this is the correct way to install the SSD (for full instructions just follow the relevant iFixit Guide): Place the SSD with the green top label on the bottom side, and the specs label on the top side into the rubber gasket as shown in this picture:

IMG_2050.jpg

This still allows you to attach the flex cable without too much bending and the SSD itself works like a charm.

Deflate 1.0.1 released

| No TrackBacks

A new minor release of Deflate is available, which only contains two changes from 1.0.0:

  • Due to popular demand, the Deflate system is now called "deflate" instead of "Deflate", thus allowing

    (require :deflate)
    

    or

    (asdf:oos 'asdf:load-op :deflate)
    

    to do the right thing. Note that this is an incompatible change from version 1.0.0, thus requiring changes to system definition or init files referencing "Deflate" to reference "deflate" or :deflate or #:deflate instead. Sorry for the inconvenience.

  • A minor bug workaround for ECL, which also improves performance on ECL by a factor of 2 (although performance on ECL is still very much non-optimized, patches are always welcome). Note that you will need to use ECL from the current git repository, since only this version currently contains other fixes needed to let Deflate work correctly (thanks go to Juan Jose Garcia-Ripoll for the quick fixes)!

Links

Nicholas Foulkes: Gentlemen & Blackguards

| No TrackBacks

This book gives a very enjoyable look at Georgian and Victorian era British horse-racing and gambling, centered around the scandal of the Derby of 1844. It paints a very illuminating picture of the respective eras and the changes in gambling they brought about. Combined with the mystery surrounding the “stolen” Derby of 1844 this makes for an absorbing read. For those so inclined Amazon also offers a nice Kindle edition. Definitely recommended!

New Font and Slight Layout Tweaks

| No TrackBacks

I’ve finally gotten around to slightly improving the layout of this blog, mostly thanks to the fantastic CSS Editor CSSEdit. Now that font-embedding for the web is finally gaining acceptance, I also switched to the very nice font Fontin Sans by Jos Buivenga (exljbris), which is employed through web font-embedding via @font-face, as supported by Safari 3.1 and Firefox 3.5 and later. Everyone else who doesn’t have Fontin Sans installed will still see this site in Trebuchet MS, Helvetica, Arial or whatever sans-serif font your user agent defaults to.

Please expect minor re-edits of old posts in the following days to manage some of the fallout from these design tweaks.

Evaluation Order in Function Forms

| No TrackBacks

In this blog post Ingvar Mattsson was wondering about the printed line resulting from evaluating:

(defun frob (x) (format t 'Frob: ~a~%' x))
(frob (defun frob (x) (format t 'New frob: ~a~%' x))

This provides an example where I think the ANSI Common Lisp standard is actually very helpful, since it often tries to go out of its way to point out things that are explicitly left undefined, instead of simply leaving them left undefined by not defining them, as many other standards (out of fear of being ambiguous) do. Quoting from the HyperSpec, Section 3.1.2.1.2.3 Function Forms:

Although the order of evaluation of the argument subforms themselves is strictly left-to-right, it is not specified whether the definition of the operator in a function form is looked up before the evaluation of the argument subforms, after the evaluation of the argument subforms, or between the evaluation of any two argument subforms if there is more than one such argument subform. For example, the following might return 23 or 24.

(defun foo (x) (+ x 3))
(defun bar () (setf (symbol-function 'foo) #'(lambda (x) (+ x 4))))
(foo (progn (bar) 20))

Thus we can see that the effect of evaluating the orginal two forms is indeed undefined (as already suspected by Ingvar Mattsson) as to which function definition is called in the second form, without going to the trouble of trying to take into account possible differences between evaluation and compilation, compile-time effects of defun, etc.

Which is my long-winded way of saying a big thank you to the people involved in creating the ANSI Common Lisp standards document (with special thanks to all involved in creating, releasing and maintaining the HyperSpec online text equivalent thereof, especially of course Kent Pitman), which is one of the nicest language standards I have had the pleasure of working with and against.

WWDC 2009 Predictions

| No TrackBacks

Following the “long-standing” tradition of pundits predicting what will be announced by Apple at WWDC (or other events), here are my predictions:

  1. iPhone 3GS

    I agree with John Gruber’s prediction that a faster iPhone “3GS” will be announced, and of course it will have at least 16GB and 32GB models, though I sincerely hope, but do not expect, a 64GB model that would aid in replacing my 160GB iPod Classic. Well, maybe next year.

    I also think that we are going to see something for the lower end of the market, and I suspect it is not going to be the current iPhone 3G.

  2. Snow Leopard

    Of course WWDC on the Mac side will be all about Snow Leopard, and I fully expect an announced ship date, as well as one or two currently unknown features for Snow Leopard, though probably nothing earth shattering, technically speaking.

    I doubt a new UI will be announced for Snow Leopard, with such a short lead time for developers, and announcing a new UI that is going to ship with 10.7 before 10.6 ships is out of the question.

    I fully expect Snow Leopard to be a full price paid update, i.e. $129.

  3. No Tablet

    I’d love to be proven wrong, but I don’t think an “iTablet” is ready for release. If it should be released, it would be a high-end iPhone.

    The reason I’d love to be proven wrong is not that I’d personally want a tablet (I’d rather have either an iPhone or MacBook Air, thanks very much), but it would finally put to rest all the euphoric Apple tablet-excitement. I’ve been around since before (probably) the first time in the late 80s when tablets were all the rage (remember the GRiDPad?), and with each new tablet mania each 5-8 years, (IMHO unrealistic and unclear) expectations were never ever met by the products, and they subsequently vanished in small niche markets, never to be heard of again. An Apple tablet is either going to meet the same fate, not unlikely, or it is going to revolutionize the tablet form factor into something which people can really use in practice, not merely crave in the abstract. In either case we’ll know something more about tablets and their place in the world.

  4. Cinema Displays

    I continue to expect that they’ll update the Cinema Display range sometime this year, and it is getting kind of urgent with all current products going to DisplayPort connectors, and only one matching display. However Apple has continually failed to update them, so why now? We’ll see…

Deflate: And then there is Chipz

| 1 TrackBack

So it seems the best way of finding out about lisp packages is releasing a similar package yourself ;): Right on the foot of releasing Deflate, I get to notice Chipz, a similar, but more capable package by Nathan Froyd, the release of which in early 2008 seems to have slipped my notice completely. So anyone who is interested in RFC 1951 Deflate (or even BZIP2 decompression), please have a look at Chipz as well, which is likely to better fit your needs!

Since I can’t let any benchmarking opportunity go to waste, here’s an overview of performance when decompressing a 18.6MB gzip-compressed file into 81.9 MB uncompressed form with Deflate 1.0.0, Chipz 0.7.3 and inflate.cl from Franz, version 2.6, on various CL implementations, and gzip 1.3.10:

Common Lisp
Implementation
Library / Program
Deflate 1.0.0 Chipz 0.7.3 inflate.cl 2.6
(w/o CRC32)
Deflate 1.0.0
w/o CRC32
Chipz 0.7.3
w/o CRC32
gzip 1.3.10
SBCL 1.0.29 x86 (32bit) 7.42s 7.65s 17.85s 6.56s 6.99s 5.03s
SBCL 1.0.29 x64 (64bit) 6.99s 6.41s 18.35s 6.37s 5.92s
LispWorks 5.1.2 Prof. 32bit 34.78s 197.50s 32.68s 34.02s 56.79s
Clozure CL 1.3 32bit 44.89s 48.77s 13.53s 16.07s 17.71s
Clozure CL 1.3 64bit 18.06s 16.87s 13.67s 16.87s 15.40s

Since CRC-32 calculations can overshadow deflate performance itself on some implementations, and since inflate.cl does not perform CRC-32 checksum calculations at all, the columns showing Deflate and Chipz without CRC-32 calculations might be more indicative of actual deflate performance.

Note that this was all done on a MacBook Air 1.8GHz Core2 Duo under Mac OS X 10.5.7, timing was done as an average of 3 runs each.

What can be learned from the results is that 64bit implementations with their bigger fixnum range help quite a bit in performing 32bit algorithms (like CRC-32) well even without extensive/effective declaration fine-tuning or special 32bit arithmetics operators.

(Yet Another) Deflate Decompression Implementation in CL

| 2 TrackBacks

I have finally gotten around to separating out and cleaning up the Deflate (RFC 1951) decompression routines we have been using in-house for quite some time, and released them under an X-style free license (see links below), for those who need something with a less restrictive license or better performance than is currently freely available1.

The library supports decompression of pure deflate streams, zlib-style (RFC 1950) and gzip-style (RFC 1952) streams, including optional checksum checking. The code should be fully portable across all conforming ANSI Common Lisp implementations, and has been performance tuned for SBCL and CMU CL, and somewhat for Lispworks (CRC-32 checksum code). While the performance does not reach the level of zlib/gzip (by a factor of around 3 to 3.52 on my most recent tests with SBCL), mostly due to stream I/O overhead and a not very sophisticated huffman decoder, it is eminently usable.

Support for compression and ZIP-file handling are currently not included.

Enjoy.

Links


  1. Since publishing this entry, I’ve been made aware of Chipz from Nathan Froyd, which achieves comparable levels of performance and is as free as Deflate; see my newer blog entry for more information.

  2. It seems that on larger files the factor is actually nearer to 1.25-1.5, see this entry for details.

Casablanca and American Civic Culture

| No TrackBacks

I know it’s a little late for the holiday season, but for a nice post-holiday read I’d like to recommend Political Philosophy Comes to Rick’s: Casablanca and American Civic Culture, edited by James F. Pontuso. This collection of essays is a nice read for fans of Casablanca, of course, especially with its combination of production background information, character analysis and historical context.

More importantly its exposition of American civic culture and political philosophy against the backdrop of Casablanca can also be a refreshing reminder of certain civic values which though constantly under attack are sorely needed in any age, especially ours.

MacBook Air and the Samsung SE-T084

| No TrackBacks

Another bus-powered external DVD-writer that works with the MBA is the Samsung SE-T084. It is a slot-in type drive, weighs in at around 420g and 142 x 158 x 20mm, supports DVD-RAM and Lightscribe, as well as small diameter (8cm) discs, and seems fairly sturdy in its manufacture.

Pages

Recent Assets

  • Picture of PRM

Recent Activity

2011-02-17

  • Pierre tweeted, "Service-oriented Architecture (n.): What you do if you have no idea what service is, nor the any notion what software architecture is about."

2010-12-03

  • Pierre tweeted, "Again on the runway waiting for snow-delayed take-off. Quite the lifestyle..."

2010-11-29

  • Pierre tweeted, "The Future(tm): Uploading software releases and submitting policy input to the EU from a plane waiting 1h at the airport for its de-icing ,)"

2010-10-28

  • Pierre tweeted, "Achieved unbelievable win against Siedle, Siemens by connecting front gate intercom to PBX. Sad about the complexity involved though..."

2010-09-20

  • Pierre tweeted, "RT @jwz: Visual Transistor-level Simulation of the 6502 - in Javascript. http://j.mp/bWHK5F"

2010-09-17

  • Pierre tweeted, "Thanks to @mikeysan I'm playing with say -v "Cellos" on my Mac instead of configuring FreeBSD servers... say -v "Cellos" 'Thanks, mikeysan!'"

2010-08-04

  • Pierre tweeted, "Resurrecting my old Apple //e (yet again) lead to switching power-supply debugging (shorted rectifier dual diode) and soldering fun."

2010-07-25

  • Pierre tweeted, "Star Trek/iPad nostalgia/futurology cross-over: Reading the ST:TNG Technical Manual on the iPad, downloaded directly from subspace..."

2010-06-23

2010-06-02

  • Pierre tweeted, "RT @HansHuebner: U.v.d.Leyen als Bundespräsidentin? Ist das Amt nicht schon beschädigt genug?"