Posted: Dec 30, 2009
by Stephen Lombardo
Tagged palm, strip, windows, export, utility
Back in 1997 we released the first version of our mobile password manager and data vault Strip (Secure Tool for Recalling Important Passwords) for PalmOS. It quickly grew to be one of the best and most widely recognized security applications for the platform, gathering accolades from the likes of ZDNet and CNN. A few years ago we dropped support for PalmOS Strip after the decline of the Palm platform. Then, last year, we resurrected Strip by bringing a completely redesigned system to the iPhone sporting a flexible data model and new open-source encrypted database engine.
Yet, many former PalmOS Strip users have let us know that they are still trapped on their old devices, in dire need of a way to export information from their Palm databases. Some people have switched to Strip for iPhone, others just want to back up their information in case of device failure.
Today we are pleased to release a free utility that can export your legacy PalmOS Strip databases out to a simple Comma Separated Value file. Once your databases are exported you can print them, open them in Excel or import them into a separate program. Most importantly, these export files will be directly importable to the iPhone when we release our first Strip desktop sync tool in the coming months.

How To Export
Note: This exporter only works with Palm Strip 1.0 or 2.0 Databases. If you are not running one of these versions you should upgrade first. This utility is not intended for use with the iPhone version of Strip (we will be releasing a iPhone sync package soon that will provide similar functionality).
Start off by downloading the exporter program:
Save the program to your computer and then run it:
- Enter the password for your Palm-Strip database. This is the same password you would enter into the program normally.
- Click the “Choose Directory” button, and navigate to the location of your Strip Databases. These will usually be in your Palm desktop install folder, usually something like
C:\Program Files\palm\<username>\backups.
- Click the “Save As” button to choose the location to export the file.
- Click the “Export To File” button.
The system will then export your entire database out to a CSV file at the selected location. Your data will be left intact, with the exception that line breaks will be removed from Note fields to allow the export. Open your file in a spreadsheet like Excel or in a text editor like Notepad to verify the results.
Credits & Code
This new exporter tool is based on the pioneering work by David Dribin’s perl-strip, an early exporter for Strip databases. We’ve taken his great Palm::Zetetic::Strip module and forked it on GitHub. Our updates include the use of newer digest libraries and updates to support the full Strip 2.0 database format (including service types). We’ve also released the source to the palm-strip-export application on GitHub.
Zetetic is the creator of the encrypted iPhone data vault and password manager
Strip and the open source encryption-enhanced database engine
SQLCipher.
Posted: Dec 30, 2009
by Billy Gray
Tagged coworking, productivity, environment, nomading
Terralien’s Nathaniel Talbott has an interesting article up on their blog about an activity they’ve termed nomading, or nomadic programming. Basically, Terralien is what you might call a remote company, in that a good number of their people work from geographically distinct locations, often not meeting in person but keeping in touch and coordinating their projects and work over the Internet. We work this way, too, so we’re always interested when other firms write about their experiences.
Talbott’s article is interesting in that Terralien is using this concept of nomading to help mitigate the problem of isolation one can experience remoting:
But no matter how much we appreciate the flexibility of working from wherever, we still often feel the need to spend some time in the same place with fellow geeks. The wife and kids can only take so many explanations of the latest cool hack we pulled off, and a change of scenery can really help get the creative juices flowing. As with so many other remote workers, we started heading out to a coffee shop on occasion, which was fun, but still didn’t quite cut it.
I can tell you from first hand experience that a year and a half of working out of my apartment was a pretty isolating and eventually depressing thing. I’m sure it’s not a problem for some people, but I think most people who try it for any considerable length of time run up against this problem. It comes down to a pretty simple notion — you need to get out of the house, and by the end of your work day, you’d ideally want to enjoy being home.
Terralien’s Matthew Bass, who coined the term nomading, describes how he arrived at his solution:
I don’t mind being alone to a certain extent, but after a few straight weeks it can get pretty lonely. Recently, I’ve started doing what I’ve termed “nomadic programming.” Namely, spending the day roaming between various wi-fi hotspots instead of working from home. This has worked really well for me. So well, in fact, that I think the concept needs to start spreading.
I actually disagree, having tried nomading when I started to get stir-crazy. While I do think it’s a good first step for anybody who’s been working in isolation, you quickly run into some problems doing this that make it a somewhat incomplete solution to the problem. There’s really nothing that comfortable about hanging out in one or more coffee shops all day long, buying obligatory coffees and snacks, using their power outlets under the glare of the manager, not being welcome for quite so long, flakey network connections, and finally, do you really want to leave that $2000 computer alone by itself in Cafe Grumpy while you go to the bathroom? Do you want to take it in there with you, for that matter?
Coworking has been the ideal solution for us here at Zetetic, as we’re now working out of two coworking locations, Williamsburg Coworking in Brooklyn, NY and Indy Hall in Philadelphia. One of our guys is planning to open a new space soon with some partners (so I can’t reveal any details), and our founder Stephen Lombardo has been thinking for some time of starting one in central NJ (if you’re in central NJ and you are interested, get in touch!). It makes us really happy, keeps us extremely productive, and we can’t recommend it enough.

We pay monthly fees to use our spaces — it’s a lot cheaper than renting commercial office space. We have ergonomic chairs, we have personal storage areas where we can keep keyboard trays and the like. We have a fridge, a kitchen, wifi, and a really fantastic social group of thinkers, artists, programmers, writers, you name it. Distractions are low, productivity is high, we have people to bounce ideas off of who’ve become our friends, we even prepare lunches together sometimes to save money (and because it’s fun, Zane’s a great cook). We even have an excellent library of somewhat “alternative” reading materials.
When I started working here, my productivity shot up like woah. In addition, I’ve learned how to screen print and pickle vegetables. I’ve made some great friends and I get to bounce ideas off extremely smart people. And this is a very large community — our space is part of a network of locations all over the world, and any of us is welcome at those spaces if we’re traveling (read more about Coworking Visa). I think the main reason people here get along so well is that there’s no one here who doesn’t want to be here, it’s the total opposite of being trapped in an office. And having done a bit of nomading myself, it’s a lot less stressful.
These coworking spaces are popping up all over the country, the world, and they work. They’re even potentially lucrative businesses, although I prefer our space’s non-profit setup. If you’re considering nomading, we encourage you to try coworking as well, you can find many locations by searching the wiki.
Posted: Dec 29, 2009
by Stephen Lombardo
Tagged sqlite, encryption, sqlcipher
We’ve fielded several questions on the SQLCipher mailing list recently about how to convert a standard SQLite database to an encrypted SQLCipher database. This is a pretty common requirement for applications with existing databases that need to be converted to use SQLCipher full database encryption. Right now there are two options to meet these needs.
Option 1: Experimental Rekey
We’ve done some work on an experimental branch of the SQLCipher repository to add a function to rekey plaintext databases. This version is based on an older version of SQLite (3.1.17), but it allows you to open a standard database and run “PRAGMA rekey=’passphrase’;” or call sqlite3_rekey() to encrypt it. The code is up under the “rekey-plaintext branch in GitHub":http://github.com/sjlombardo/sqlcipher/tree/rekey-plaintext.
The main drawback to this approach is that it is brittle. The current rekey functionality essentially relies on a modified vacuum command. Unfortunately this approach is not easily portable between versions. The code is out there, but your mileage may vary.
Option 2: Attached Database (Recommended)
SQLCipher 1.1.1 added support for attaching an encrypted database to an unencrypted database to copy data between them. For instance, assume you have an standard unencrypted SQLite database called unencrypted.db with a single table, t1(a,b). To create an encrypted copy you could open up the databases and run the following:
ATTACH DATABASE 'encrypted.db' AS encrypted KEY 'secret'; -- create a new encrypted database
CREATE TABLE encrypted.t1(a,b); -- recreate the schema in the new database (you can inspect all objects using SELECT * FROM sqlite_master)
INSERT INTO encrypted.t1 SELECT * FROM t1; -- copy data from the existing tables to the new tables in the encrypted database
DETACH DATABASE encrypted;
It is fairly trivial to get a list of all schema objects from the sqlite_master table you would just repeat the CREATE TABLE / INSERT cycle once for each table. Then you can delete the unencrypted database and re-open the encrypted version with the sqlite3_key or PRAGMA key. This approach requires more work that just calling rekey, but it is be much more stable across versions.
In the mean time, we are working on finding a way to improve the built in rekey functionality in future versions. Keep an eye out here, or join the SQLCipher mailing list to keep up to date on the latest development.
Zetetic is the creator of the encrypted iPhone data vault and password manager
Strip and the open source encryption-enhanced database engine
SQLCipher.
Posted: Dec 28, 2009
by Stephen Lombardo
Tagged strip, sqlite, encryption, sqlcipher
We’ve been really busy over the past week finishing up some big enhancements to SQLCipher, the open-source full-database SQLite encryption extension that powers Strip, our Data Vault for the iPhone.
The latest version SQLCipher 1.1.1, is based on the most recent release of SQLite (3.6.21), which has a many improvements and bug fixes. In addition the new SQLCipher features include:
- Code clean up to allow compilation with VS.NET on windows.
- Enhancements to the codebase to allow encrypted databases to be attached to unencrypted database for the purpose data migration
- Resolution of a minor memory leak in the pager subsystem
- Documentation and test enhancements
The newest build makes SQLCipher truly cross-platform – it’s now been used successfully under Mac OS X, iPhone, Linux, and Windows (across MinGW, Cygwin, and native VS.NET). The new version is a drop in replacement for previous releases, so we’re recommending that all SQLCipher users upgrade to the latest.
Check out SQLCipher on GitHub.
Zetetic is the creator of the encrypted iPhone data vault and password manager
Strip and the open source encryption-enhanced database engine
SQLCipher.
Posted: Dec 22, 2009
by Billy Gray
Tagged strip, iphone, nominations
Today and tomorrow I’ll be bringing you some news and updates related to Strip, answering some common email queries, and providing an overdue update on where we’re at with the desktop version. Before I get into the upcoming stuff, however, we could use your help! Strip for iPhone been nominated in the Best App Ever awards, under the Best Productivity Enhancer category. As I know there are a lot of you out there who have quite an affinity for Strip, mind clicking over to the page and voting for us?
Nominate
Strip – Password Manager & Data Vault…
for
Best Productivity Enhancer

We really appreciate your continued support and enthusiasm for the platform. Stay tuned for updates!
Posted: Dec 21, 2009
by Billy Gray
Tagged iphone, clerks, nsdate, kevinsmith, denvog
Having been a big fan of CLERKS and most things brought into this world by Kevin Smith, I was delighted to receive an email this morning telling us that our NSDate category made itself into the credits for the new Kevin Smith iPhone app by DenVog. It’s exactly what you’d expect from Smith — it’s silly, awesome, immature, and well done. I can’t tell you how many times I watched CLERKS in high school, so being exactly that mature still, I downloaded it immediately.
This is my favorite part:

Weekend terror will ensue. None will be spared!

NSDate (Helper) is continually being used in our own Cocoa projects, and I’m constantly mucking with it and pushing new changes to the github project. It’s probably due for a touch of code clean-up.
Posted: Dec 04, 2009
by Billy Gray
Tagged tempo, ruby, issues, memory, leak, unicorn
Since Tuesday’s outage on Tempo, we’ve been working hard to not only prevent that from happening again, but to further improve our system’s response time and optimize our resource utilization. This kind of spring cleaning and infrastructure maintenance was long overdue and took a backseat while we were building out the most recent update.
I’m happy to report, and hopefully you’ve noticed, that we’ve managed to not only stabilize our runaway memory consumption, but to dramatically improve response time over all (go Unicorn!). Now that things have stabilized and in fact improved, we’ll be working to further cut down on memory consumption in our application code. It’s very easy to have memory bloat in Ruby code, because Ruby doesn’t really release memory back to the system, so we’re profiling our code to cut back where ever we can.
As an aside, there’s this great Engine Yard post about memory bloat in Rails apps with pointers for pinpointing problem spots and cutting back. However, I take issue the notion that “it’s not a memory leak, it’s bloat.” That’s a lot of garbage, not returning unused memory to the system is a leak, and to pretend otherwise is a laughable bit of delusion. I agree that it’s important to recognize this as a known flaw of the platform, but to start thinking of it as a feature is probably not a good idea.
Posted: Dec 01, 2009
by Billy Gray
Tagged tempo, issues, passenger, nginx, memoryleak
Tempo was down this afternoon shortly after 4pm EST due to a nasty memory issue. It’s fixed for now and the service is back up, running nice and snappy, but we still need to implement a permanent fix. Keeping the service available to our customers at all times is exactly the point of web-based software, and we’re committed to providing you the best product possible.
We’ve been running on Nginx-Passenger for a few months now, and been trying to fend off a memory leak that just keeps coming back, and when we don’t catch it in time, like today, it can turn into a big mess. We are dropping pretty much everything to make sure we don’t end up in this position again. We will post an update here once we’re confident that we have a permanent solution in place.
Thanks for your patience, and our apologies if you were unable to access Tempo when you needed it this afternoon.