February 6th, 2009
I’m looking for a program to organize and edit my photos on the Mac. The editing duties are light. Photoshop Elements fully meets my needs there, and I really don’t want something more complex. In particular I live by Auto Smart Fix and Auto Sharpen. However I’d like to not come out of one program just to edit a photo.
I like iPhoto’s organization, but it’s too buggy and has atrocious editing and previewing tools. Lightroom 1.4 doesn’t organize quite as nicely as iPhoto, but is a little more stable. Maybe 2.0 is better? What’s my best choice? Here are my desiderata:
Read the rest of this entry »
Posted in Mac | 10 Comments »
February 6th, 2009
I have a couple of Belkin Flip KVM switches, one I use to switch between a MacBook Pro and a Linux desktop (Ubuntu Dapper) and another I use to switch between a MacBook and a Vista Dell. Switching to the Macs or to Linux is almost instantaneous. However, the PC takes maybe 30 seconds before it will recognize the keyboard and mouse. (The monitor is usually asleep until it the keyboard or mouse wakes it up.) Any ideas?
Posted in Windows | 4 Comments »
February 5th, 2009
Posted in Windows | 1 Comment »
February 5th, 2009
I think I’ve put my finger on one reason I’m finding Haskell hard to read. Consider this algebraic data type definition from Real World Haskell:
data Doc = Empty
| Char Char
| Text String
| Line
| Concat Doc Doc
| Union Doc Doc
deriving (Show, Eq)
There’s no distinction between the value constructor and the components of the type. This is especially critical when the constructor and the components have the same name as in the Char
constructor above. It also doesn’t help that they have the same naming convention (mixed camel case, initial uppercase letter).
A Java class with multiple factory methods or multiple constructors would be much more verbose, but much more readable. Humans need redundancy, even if it’s logically superfluous.
I suspect a language that retained Haskell’s semantics, but completely replaced the syntax with something more usable, legible, and familiar would have a much greater chance of success.
Posted in Haskell | 13 Comments »
January 29th, 2009
American Pipit, San Joaquin Wildlife Sanctuary, 2009-01-29
Read the rest of this entry »
Posted in Birding | 1 Comment »
January 27th, 2009
Real World Haskell, Exercise 10, p. 99: This was an easy one:
myUnlines :: [String] -> String
myUnlines xs = foldr (addLine) "" xs
where addLine c acc = acc ++ c ++ "\n"
It’s pretty much straight down the path of exactly what folds are meant for, though the inferred types still managed to surprise me, and my initial implementation was about twice this size.
Posted in Haskell | No Comments »