Archive for July 30, 2013

Tuesday, July 30, 2013

Bento Discontinued

FileMaker (via Simon Wolf):

FileMaker will stop offering Bento Sept. 30, 2013, and will increase focus on FileMaker Product Line. […] As part of our sharpened focus, we will stop further development of the Bento consumer products.

Clark Goble:

The typical databases back in the day were contacts, tasks, events, passwords, and home inventory. There are excellent apps for all those vastly superior to what Bento could do. So why get Bento when 85% can be done better elsewhere?

Update (2013-08-14): Adam C. Engst:

There are limitations, though, since FileMaker Pro has no integration with the Mac Contacts, iCal, and iPhoto apps, nor does it offer Wi-Fi syncing between Mac and iOS versions. Plus, FileMaker Pro doesn’t support Bento’s Rating, Encrypted, Simple List, File List, and Message List field types, and Bento’s Collections and Smart Collections have no direct equivalents in FileMaker Pro, although you can set up relationships instead.


FileMaker’s announcement is troubling from several viewpoints. Most notably, of course, is how at least hundreds of thousands of Mac and iOS users have been left high and dry, and not just for any old app, but for database software, which almost by definition holds important data.


More generally, it’s often said of free services, especially those from small companies, that you get what you pay for. But with Bento, it was quite reasonable to think that buying popular commercial software from Apple-subsidiary FileMaker would be a near guarantee of future-proofing — could it get any safer? Apparently, yes, it could.

Parsing My Apache Logs

Dr. Drang:

I stopped using Google Analytics a couple of months ago. […] But I am still curious about which pages are being read and where the readers are coming from, so a wrote a little script to parse my site’s Apache log file and return the top five pages and referrers for a given day. Along the way, I learned more about Python’s collections library and the groupdict method for regular expression matches.

I’ve been thinking of doing something similar. Google Analytics is annoying to check because it requires logging in. My different sites are under different accounts, and it takes a lot of clicking around to get to the information that I want. Mint doesn’t filter referrers reliably and seems to increase the load on my server. By writing my own script that accesses the logs directly, I’ll be able to track non-JavaScript requests (e.g. .dmg downloads) and also calculate some custom analytics that wouldn’t be possible with off-the-shelf software.


The ReactiveCocoa project has a good description of the Model-View-ViewModel design pattern:

Although it seems similar to MVC (except with a “view model” object in place of the controller), there’s one major difference — the view owns the view model. Unlike a controller, a view model has no knowledge of the specific view that’s using it.

This makes the view-related code easier to reuse and test.

1983 Steve Jobs IDCA Speech

Marcel Brown (via Ole Begemann):

Regarding the speech, it is amazing to hear Steve Jobs talk about some things that were not fully realized until only a handful of years ago. This talks shows us just how incredibly ahead of his time he was. I’ve listened to the entirety of the recording a few times now and have taken extensive notes, of which I will further elaborate on in future blog postings. But for now, here are a few of the highlights – and remember – he is speaking in 1983. To put that in context, the Macintosh had not yet been introduced, Apple still thought the Lisa was going to be a hit, and the IBM PC was the second most popular personal computer behind the Apple II series.

This is interesting in the context of the App Store:

He compares the nascent software development industry to the record industry. He says that most people didn’t necessarily know what computer they wanted to buy. In contrast, when walking into a record store they definitely knew what music they liked. This was because they got free samples of songs by listening to the radio. He thought that the software industry needed something like a radio station so that people could sample software before they buy it.

Argument and Buffer Etymology

John D. Cook quotes An Introduction to Programming in Emacs Lisp on argument, i.e. parameter:

According to the Oxford English Dictionary, the word derives from the Latin for “to make clear, prove”; thus it came to mean, by one thread of derivation, “the evidence offered as proof”, which is to say, “the information offered”, which led to its meaning in Lisp.

and buffer (via @CompSciFact):

The word ‘buffer’, by the way, comes from the meaning of the word as a cushion that deadens the force of a collision. In early computers, a buffer cushioned the interaction between files and the computer’s central processing unit. The drums or tapes that held a file and the central processing unit were pieces of equipment that were very different from each other, working at their own speeds, in spurts. The buffer made it possible for them to work together effectively.