Utopia in the header file

This is from the top of sqlite3.h, the header file for the SQLite3 library - most source file would have a copyright notice here referring people to read their license, but since SQLite is public domain, the author decided to put this instead:

** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.

I have to admit I find this inspiring. For me, it is a strong reminder that dealing with legal limitations (on software and any other form of “intellectual property”) is at best no more than a necessary evil. That goes for free software licensing as well.

Experimenting with Glista on OS X

I haven’t blogged in a while, probably because I was too busy. I’ve been working, started to take some university classes (Philosophy & Computer Science), and… I’m doing most of my work on Mac OS X now. Don’t worry, I’m still a Linux guy - but mostly for work purposes (and out of curiosity) I decided to ask Zend for a Macbook when my Thinkpad was starting to die.

Unfortunately the negative side effect of this is that I had to put Glista on hold - since I didn’t have a Gtk+ based desktop anymore there wasn’t much point in actively working on it.

However, in the last couple of days (following some patches that came in from ananasik, for whom I immediately gave commit access) my fingers started itching, and I decided to play with porting Glista to OS X - and found this project.

After some hours of tinkering, crashing, building, rebuilding and breaking things again, I now have a somewhat working (albeit ugly, and not so OS X friendly) working Glista.app Application bundle running on my own 32 bit OS X 10.6:

Glista running on native OS X for the first time!

Glista running on native OS X for the first time!


Glista in the Dock!

Glista in the Dock!

If you’re really up for it, you can get a Disk Image here.

You can also build it from source by checking out http://glista.googlecode.com/svn/branches/osx-support and doing the following:

  1. Make sure you have all the nescesary build environment (XCode is usually a good start!)
  2. Install all the gtk-osx tools and libraries including ige-mac-builder and gtk-quartz
  3. cd into the source directory and run (in a jhbuild shell after installing osx-gtk) ./configure –prefix=$PREFIX
  4. Note that some things do not work on OS X yet (or will never work) like libunique integration, gtk-spell, libnotify integration etc. - that’s normal for now
  5. Run ‘make’, don’t (!!) run ‘make install’ (well you can, but there’s no need, you’ll just pollute your system
  6. cd into dist/mac/ and run ‘make dist-mac’. If everything is ok this should create Glista.app in that directory.
  7. Move that .app into /Applications (or anywhere else) and enjoy!

So far, it looks like it’s going to be a long time before Glista will work smoothly on Mac - and most of it is because Gtk+ is not really that portable, and making it use OS-native widgets and rendering seems to be quite a challenge. I also don’t feel I know enough about the internals of Gtk+, Quartz or OS X in general in order to help with that effort - but who knows, maybe I’ll be able to help somehow?

BTW I’m not sure if that binary will work on anything but OS X 10.6 on Intel 32 bit. If you try, let me know!

How much is listening to your customers worth?

I normally don’t write about work. The reason is that I feel that the slight chance that someone might feel I’m being biased towards a product that comes from the company I work for and dismiss my thoughts as “guerilla marketing” is not worth it.

However, I’m going to make an exception - and that’s because I prefer selling Zend here rather than doing it on Lukas Smith’s blog :)

Lukas raises the question of what commercial PHP distribution should be used as an alternative to RHEL outdated packages. My answer on that would be, surprisingly - use Zend Server! (well, …once it’s out of beta, of course).

Lets put the features and SLA you get from Zend Server aside for a moment.

The real reason I think you should use Zend Server is because the Zend Server product manager (hey, that’s me!) reads your blog. I’m serious about this.

I’m not sure I can quantify this, but I think that a vendor that listens so closely to what potential users (and the community) has to say is worth quite a lot in the long run. And yes, Zend has not been perfect in listening to the community - but I can honestly and whole-heartedly say that we are trying harder. The recent feedback on Zend Server gives me the feeling that we are doing ok too.

Finally, it’s out: Zend Server

I normally try not to write about work related stuff… but this is a special occasion.

Zend Server is finally out for public beta. \o/

I was working so hard on this for the last year, It kind of feels like I’ve just crapped an Elephpant ;)

Seriously now, I really like this product. I think it has great potential. I know a bunch of very good people who worked very hard on it, and deserve every bit of gratitude. We went over some rough times at Zend and we still were able to release this wonderful product! I’m so proud… :)

Priceless: “The Issuer Certificate Is Unknown”

Firefox: "mossad.gov.il uses an invalid security certificate"

Another example of the all-so-frightening invalid HTTPS certificate warning in Firefox 3.0. I just found this one to be a bit ironic :)

BTW The Mossad website is mostly for recruiting purposes, they don’t really let you search their archives on-line or anything… to bad, that could have been interesting :P

(and one more thing: yes, it’s “The Mossad” and not just “Mossad” as it’s frequently mis-translated in foreign media. “Mossad” literally means “Institute” or maybe in a less literal translation, “Agency”. There are many institutes and agencies, but there is only one “The Institute”)

Seven Things - Tagged by Ivo Jansch

“I was hopping along, minding my own business, when all of a sudden, up he comes…Cures me! One minute I’m a leper with a trade, next minute my livelihood’s gone!”

So apparently I was tagged by non other than the mighty Ivo Jansch, thus forced into some silly chain-blogging game. After managing to teach everyone in my life including the tech-clueless to never forward any chain mail to me (except for my grandma - I did get her to stop but then she sometimes forgets not to do it), I get bitten by the most tech-savvy people I might know :P

Well, I can’t say no - especially after being titled “Product Manager and Smart Guy at Zend” (for a short period of time that was almost my official title BTW). Of course I’ll play along! It’s also interesting to see how far this goes :)

So here are seven things about me you might or might not know:

  • I never went to university - I’ve noticed some people state what their major was etc. - so, I never went to university. I never got the chance. While everyone else was in university, I was busy doing other things like learning to write PHP :) I always tell myself I’ll go in a year or to - but now that I’ve gotten into a position everyone assume I have at least a BSc, I don’t want to spoil that :).
  • I never took any official CS training - I’ve frequently found it boring the way it was taught in school. Don’t get me wrong - I love CS and I sometimes find it exciting - but I enjoy it much more when I get to teach myself. I also tend to believe CS is nice but it’s a tool - not really a “wisdom” I’d like to learn in university. I consider other fields like philosophy, history, biology or even mathematics to be far more worth studying. BTW I did take a couple of CS university courses during high-school - I flunked one of them ;)
  • I started programming when I was 7 or 8 - in BASIC. Well, it was nothing impressive but this is how I started. I then went through some Pascal and some C but never got to any level worth talking about. Then in high-school there was the web, and I started playing with it, first with HTML and then with Perl writing CGI stuff. Pretty much at the same time I started experimenting with Linux.
  • I did that while majoring in Cinematography. Yes - the only thing I did learn professionally was making movies, and I still have a lot of passion for it. I especially enjoyed directing, filming and editing. I did try working for some time on several junior technical positions in the local film industry (2nd assistant camera operator etc.) and did get my name in the credits of some movies (who were major in Israel - so there you have it Ivo ;) ) but working for the “industry” so to speak was not so great, and I decided to drop it.
  • Just like most male citizens of Israel I did my military service after highschool - and didn’t get to touch a programmable computer for 3 years (I did get to touch some computers but they were not the kind you want to mess around with). I even almost became an officer (which means I could have spend more than those 3 years in the army) but I didn’t run fast enough. I still spend a few days every year in reserve training, but sometimes they let me off the hook when I have to go to some PHP conference :)
  • When I got out of the army and back into the real world, Perl was gone and all of a sudden there was PHP everywhere. I found out I could write the same app I wrote in Perl in a month in about a week in PHP, and the rest is history. Back at the time I wrote my first PHP app - a web site which is still running today. I looked at the code a few months ago and almost puked.
  • Before working for Zend, I worked for a local ISP which as managed by the biggest Linux geek I’ve met (no wonder it’s out of business by now) - that was a lot of fun. Before that, I did all sorts of things - I herded goats, I picked cherries and I grew long curly hair. I got to Zend by pure chance - I didn’t even knew they were an Israeli company until I met a cousin of mine who told me he was working there!

So… those are my seven things!

And now, who to tag? I have very few candidates left - I hardly have any blogging friends who haven’t already been tagged… So here are my people, hopefully they’ll forgive me:

  • Nir Yariv - friend, family member, and one of the smartest (infrequent) bloggers I know (he’s also the guy who got me into Zend).
  • Christer Edvartsen - fellow PHP coder, ZF contributor, and occasional (one a year or so) drinking buddy
  • John Coggeshall - Ex-Zender, Current CTO at ACS, PHP author, and well, another occasional drinking buddy
  • Stas Malyshev - PHP Internals Guru and Zend’s 1st employee
  • Boaz Rymland- Another ex-colleague, Drupal expert and a certified social worker
  • Andi Gutmans - Fellow Zender and, wel… you all know him don’t you?
  • Zeev Suraski - Well you know him too don’t you?

Well… that’s my list - let’s see how many of them step up to the plate!

Oh - and here are the rules for any bloggers who decide to follow up:

  • Link your original tagger(s), and list these rules on your blog.
  • Share seven facts about yourself in the post - some random, some wierd.
  • Tag seven people at the end of your post by leaving their names and the links to their blogs.
  • Let them know they’ve been tagged by leaving a comment on their blogs and/or Twitter.

Glista 0.3 Released

Thanks to the very good holiday layout this year*, I finally got to release the next preview release of Glista - my super simple Gtk+ based to-do list manager for your desktop.

The major improvement in this release is category support. For a while, I didn’t want to add any features that will make the UI more complex than it is. Then I noticed that I tend to add ad-hoc categories to my tasks in order to sort them - that is instead of typing “Fix ZF bug #1234″ I type “ZF: Fix bug #1234″. This is a very natural way to organize your tasks for me, and I assume that it is for most people. So I decided to add category support by recognizing this colon-separated syntax and breaking any item typed in this way into a “cateogry: item” structure.
[more...]

Reminder: Open-source is great!

From time to time I get reminders to why I love open source so much, and why I see it as having little to do with software and a lot to do with promoting a culture of sharing and of openness.

A few days ago I released my first C open source app - Glista. It was a little tool I wrote to scratch an itch and to sharpen my hardly-existing C skills. Deciding to release it was natural, but I didn’t expect much attention from such a simple tool competing in a category where many alternatives exist.

However, it did get noticed and I had several people e-mailing suggestions, reporting bugs and generally commenting on it, giving mostly positive and useful feedback. I was able to fix several bugs in the last few days and I did learn a few things on creating better build scripts, which I was clueless about before.

And the best thing is that at less than a week after it’s initial release, Glista was ported to run on an iPaq PDA using the OpenEmbedded cross-compiler. I even got some screenshots to show off:

Glista on iPaq     Glista on iPaq

How cool is that?

This is done using the unstable branch of OpenEmbedded so there are no official builds yet - but the author, Dmitry, has attached a recipe file to this bug report in the OpenEmbedded tracker if you want to try it.

Introducing Glista: Yet another to-do applet for Gtk+

Yes, there are probably a dozen out there, but none of them was just the way I wanted it to be. So I went out and started writing one: Glista.

It’s terribly simple, and I spent not more than a weekend and a couple of evenings writing it. But I have been using it successfully for over a week now and for the first time I am tracking my tasks through a desktop tool - so I’ve decided to release it.

Visit the Glista page at http://prematureoptimization.org/glista for more information.

It is written in C/Gtk+ (so it runs well on GNOME but should work on other desktops, and should also be portable to Mac / Windows). Now, I must say that I am *not* a C programmer. I suck at it in fact. But I enjoy banging my head against the C memory management wall from time to time. If you look at my code and must run to wash your eyes, tell me about it because I want to improve.

I am using the 0.1 release available on the site (and through Google Code) for some time now. I don’t plan to expand it much but there are some fixes / additions I want to add if I find the time in the next few weeks.

Try it out and tell me what you think!

BTW: I used the name “Glista” because of the common “G” prefix for Gtk+/GNOME apps, joined with “list” and an “a” just to make it cooler. A couple of days later I found it it’s actually a word - in many Slavic languages it’s the word for an earthworm, and in Russian it’s sort of the plural form for Glist which is the word for intensinal parasitic worms. Cool!

Good old ‘includes/common.php’ is back!

In the last couple of days I’m writing a small demo-like database driven PHP app - you know, the kind where you show how to put records of something into the DB, take them out, list, edit, etc. - pretty simple stuff.

The catch is that this is to demo pure PHP - no frameworks of any kind. No complex design patterns or paradigms (such as MVC), no rewriting rules.

I must say I haven’t done this in a while. It feels good on one hand - remembering the power and simplicity of pure PHP. On the other hand it sucks ass - so many things (especially edge cases) you have to take care of yourself - things like execution flow, including that good old bootstrap file on the top of each script (yeah, each page in my app is a different script! remember those days?), manually taking care of layout and common HTML elements, validation - even manually writing so much SQL seems odd.

If you have some free hours this weekend, I suggest you try it - just to remember what it used to be like 5 years ago. It’s a good way to appreciate (or not) the framework or library you’re working with these days.