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.

The PHP Hierarchy of Needs

We had a lecture about Unit Testing in our local PHP user group last week. I really like these meetings because there is usually good interaction between some very experienced developers and some very inexperienced ones.

Following the usual “but why is it better then just running it in my browser and seeing that it works” question made by one of the younglings, we got into a discussion of why Unit Testing it so good, and especially, why is it such an addictive practice and why people who do it (including myself) tend to love it so much.

And then it hit me: [more...]

Travel Plans

After what is probably the longest period of being at home without flying anywhere (since November!) in the last 3 years, I am actually quite excited to be flying again.

After a quick visit to Zend’s Cupertino office, I will be attending two conferences in may: I’ll be visiting the last couple of days (May 22nd - 23rd) of php|tek in Chicago - in which I will not be presenting, but will probably hang around with the Zend guys and go to some lectures.

After spending the weekend with friends in New York City, I’m flying to Germany to attend DLW Europe - a first-year conference dedicated to dynamic languages (PHP, Ruby, Python, Perl etc.). There’s quite a lot of known PHPers attending and speaking, and it looks like it’s going to be a blast. Personally I will be giving a talk I call “Non-framework Zend Framework Components” (working title) - which will showcase some of the more useful components of Zend Framework for those who do not want to base their entire application on it - but rather just need to preform tasks and want to reuse the high-quality components of ZF in order to do that.

So it looks like quite a road trip: Tel Aviv -> San Francisco -> Chicago -> New York -> Karlsruhe -> Tel Aviv - by the end of it I might be able to buy a MacBook Pro using frequent flyer miles only ;)

If you’re in either conferences - come over and say hi!

Security By Obscurity - “Not to Stand Up”

I am giving a security lecture at the local PHP users group tomorrow, and one of the topics is, ahm, security by obscurity. In fact, it’s not really a topic - I just mention it and say that it’s not really an approach to security, and should generally only be used as an extra measure and should not to be relied on.

This got me thinking about one of my old-time favorite Monty Python sketches:

The first rule of not being seen: not to stand up!

New year, new position

I spent the last 2.5 years working for Zend’s Global Services department, first as a technical support engineer and later as a technical consultant. I’ve learned allot and met lots of very smart people - but for some time now I have a feeling it’s time to move on.

Apparently, some people at Zend had the same feeling - don’t worry, I wasn’t fired. I didn’t quit either. Starting from January 2008, I am now a part of Zend’s Product Management group.

My new and awesome title is “Senior PHP Specialist” which kind of means nothing (and that’s what so good about it!). My actual roles are varied and flexible and involve duties such as competitive analysis, benchmarking, prototyping, meeting with customers and PHP community folks, and generally getting more customer and community feedback and touch into Zend’s product line. I’ll be working with all products - mostly Zend Platform, Zend Studio and Zend Core, and will also maintain my involvement in Zend Framework, and perhaps other projects as they come.

I have to say this has the potential of a dream job: it’s hands-on, and yet very dynamic. It’s community related and touches commercial products. It means working closely with services people, R&D, and customers (and PHP users who are not our customers!). It involves studying emerging technologies, programming, testing software, writing and reading papers and generally keeping a finger on the pulse of the web.

Oh, and did I say my new direct manager is Zeev Suraski?

So good luck and happy 2008!

PHP Israel: First meeting

Yesterday we had the first meeting of the newly founded Israeli group of PHP users, or “Kvutzat Mishtamshey PHP Beysra’el” as one might say.

The meeting was held at Zend offices, and there was a pretty good turnover - ~20 non-Zenders showed up with ~10 more Zenders joining in. I gave a presentation (slides are in Hebrew but you can get them here if you read that funny language) about the past, present and future of PHP. There was also a trivia quiz (yes, I stole some ideas from a PHP Norge meeting I attended some months back) and we gave a book and a couple of T-Shirts (and a PHP stress ball) to the winners.

Boaz took some pretty good pictures as well.

It was lots of fun and good socializing which was exactly what I hoped for. The general idea is to have a meeting once a month or so - hopefully, next time I will be sitting and asking questions and not presenting.

Thanks everyone for coming, and if you happen to be in Israel, and do PHP - you should come as well!

That’s why I got so many business cards printed!

A few days ago my work Thinkpad T43’s screen started flickering (not flickring, actually flickering). I immediately dismissed it as some kind of broke-my-Gentoo thing I always do, but after rebooting to Windows (yeah, it’s still there - IT demanded I keep a Windows partition), I realized it’s a hardware problem - something is fucked up with the backlighting or something. It got worse until a couple of days ago it started going blank for hours, and only coming back randomly for 5 minutes every time.

Now, this would all be fine if I wouldn’t be in the middle of a training engagement in India - and a week from returning home. Projecting still worked - so I could go on training, but I couldn’t do anything except for that - plus it doesn’t really feel nice that during breaks all your students can still watch your desktop ;)

Anyway while not giving up to hardware, I found out that if I apply pressure at certain points on my screen, it goes on - that made me spend hours massaging my screen trying to get it working, but whenever I got my fingers off it it went dark again.

I almost thought of giving up and started thinking about finding an IBM service center or something (or is it Lenovo?), but that soon realized as impractical. Since doing customer engagements for Zend away from home always feels a bit like a military operation (that’s an Israeli thing: Israeli men tend to compare hard / exciting / surreal situations in their lives to military related experiences - even if they don’t admit it out loud…), I suddenly remembered something one of my officers used to say whenever we complained our equipment or supply is crappy: “This is all we have, and that’s what we’re going to win with!”. All motivated, I started MacGyvering, trying to get my screen working back with a toothpick and some chicken curry (that’s mostly what I have here).

Finally, I came up with this solution:
How I fixed my T43's screen

In case you’re wondering, that’s one of my Zend business cards I always carry and hardly use :)

Off topic: yes, I’m in some kind of photo-taking craze. Perhaps I was bit by a Japanese vampire or something.