Posted on July 2, 2008
Filed Under Blogging, Linux, Mac, MySQL, PHP, Tech, Web development | Leave a Comment
It’s always fun to compare tools. Who works with what and especially, why? Following the example of Flickr and some others, let me list my tools, see if you match:
Working:
Living and working:
I take my Mac everywhere. I work on it at work, even though it is a private machine. At home, I use VLC to watch video’s and DVD’s, NetNewsWire for the daily read, Celtx for screenwriting, Mail.app for.. well duh, RealPlayer to listen to BBC Radio 1 or iTunes for my music collection, Twitterific for Twitter and Unison to eh, browse newsgroups.
Well, that’s most of it. What about you?
Posted on June 27, 2008
Filed Under Internet | Leave a Comment
The Next Web: “I feel sorry for you to type in mail.google.com as it’s six characters longer. That seems like a minor effort, but let’s assume you check your email ten times a day. Then, all of a sudden, it’s 60 characters extra. Now consider the number of Germans using Gmail, probably millions, and multiply it with 60. All this extra typing work for the copyright needs of one man.”
Oh, come on. Don’t you ever re-enter URL’s in your browser? That’s right, your browser recognizes what you’re typing and comes up with suggestions. And if even that is too much, the’ve added this newfangled feature that, I think, will become a big, big hit. They’re called bookmarks.
Posted on June 18, 2008
Filed Under Internet, PHP, Tech, Web development | 1 Comment
I like conferences. They bring a combination of information, context, some discussion and all kinds of impressions to you in audible form. In a form that doesn’t require you to browse through blogs or magazine articles. Also, you can reflect on the subjects with others during the break times. Or just reflect on it by yourself. In some way, it differs from just reading about the topics on weblogs or online manuals, it’s got a different vibe. One I like.
So last weekend I went to the Dutch PHP Conference. I went last year, and I liked it, so attending this year’s edition seems logical. But after a day of listening to some interesting talks I’m wondering: who is the indented audience for this conference? Am I even in it?
Let me explain by walking through the day. After @ijansch’s opening, we were welcomed into the history of PHP by Zeev Suraski, one of the founders of Zend and with that, one of the people who made PHP what it is today. It’s nice to hear the story from someone first-hand, as opposed to reading it in the PHP Manual.
He gave his view on PHP today: it’s mostly done, and our focus as a community has been, and still is, shifting to frameworks. In a way that’s like saying “we’ve been building the car for a few years, now it has become time to do some driving”. And he’s right. PHP is never truly done, of course, but it is fairly done, and now it’s up to the frameworks to mature and become the highly useful, production-ready toolkits we all need (yes, need, even though some of us might not know it yet). In my view: some parts of frameworks wille eventually become more attached to the core of PHP, as often-used parts will grow into the extensions area.
After Zeev, Marco Tabini, publisher of php|architect (which I’m subscribed to), explained how important mayo is to the PHP world. No, wait, that wasn’t it. He wasn’t very PHP-specific, but his keynote was quite interesting nevertheless.
Lunch came and went, and the breakout sessions started. I attended the ones presented by Gaylord Aulke, Lorna Jane Mitchell and Ivo Jansch.
Gaylord talked about how you would go about creating, maintaining and using an infrastructure when you’re working in a team. He explained about development locations, version control management, test- and staging servers and deploying your work to a live server. This very much connected with Lorna’s talk, which focused on deployment in general, and on doing that with subversion in particular.
Both talks were interesting, but only small bits of it were giving me new information or a perspective I didn’t think of before. Both gave me the impression that the intended audience would not include people already working in teams, with version control already very much in place and several live projects to maintain. Those people would already have invented (and/or implemented) the proverbial wheel for their own situation. Which is the case for me: at both of my jobs, an infrastructure is in place and working nicely. Nevertheless, both talks were interesting, and some viewpoints offered, along with a nice feeling of confirmation, some food for though and/or Googling.
After the break, the choice was to be made between Stefan Priebsch’s session on the upcoming PHP releases, a session by Matthew Weier O’Phinney about best practices within Zend Framework (this description is not as accurate as it should be, but we’ll get to that) and Ivo Jansch’s presentation about Enterprise PHP.
Because information about PHP 5.3 and 6 can be found on the mailing list, wiki pages, blogs and the slides Stefan posted before the conference, that one was an easy choice: no need to attend. The session on Best practices within Zend Framework would only make sense if you were actively using ZF, I thought, so that would not be very practical at this very moment (I was wrong, as you can see by reading the actual description on the site, it’s not ‘within’ Zend Framework, but ‘inspired by’ it, if I understand correctly). So I entered the room in which I would be very cautious about product placement (kidding).
Ivo’s session had ‘Enterprise PHP Development’ as its title. Because I work in a couple of teams/environments where the label ‘enterprise’ might, in some way, be a suitable one, I thought I’d attend this session. It’s always nice to get some tips, attention points and such. But, the session was basically about the same as Gaylord’s and Lorna’s. Not that he covered the same topics, but again I felt like I knew a lot of it already. He covered ten main points you need to be thoughtful of when working on your projects, of which some were very obvious, and others inspired some thinking while in itself not being new (to me, at least).
After all this, my colleagues and me were interviewed for a Bachelor ICT video, in which we expressed our concerns about the lack of depth in the sessions. Terry Chay had already started his keynote by that time, so after missing the beginning, we hurried in and stood in the back, while listening to a very interesting and nice keynote. Chay is a wise man, I said to myself.
Looking back at the day in its entirety, I think I expected more. I already called my feeling about the sessions a ‘lack of depth’. This of course isn’t necessarily a bad thing. A PHP Conference, especially one in a community that’s still growing and has a lot of people still learning how to be the best, should be aiming for a wide audience and not exclude beginners. However, if some f the sessions would last longer, maybe the contents could become more hands-on and give you more the feeling you’re walking away with lots of information to research in the days or weeks after the conference.
I’ll probably attend next year’s edition, but can I silently hope for some more advanced content?
Posted on June 17, 2008
Filed Under Mac, PHP, Tech, Web development | Leave a Comment
» MacGDBp - a PHP debugger using XDebug
» Dutch PHP Conference 2008 - The Video - I was interviewed. Did I make the cut?
» DPC’08 review by Rick Buitenman
» It’s About Time You Learned Javascript (for real) - I think I’m gonna read that book
» The Top Ten Subversion Tips for CVS Users
» The Subversion Book
» Running multiple FireFoxes on your Mac
» PHP Performance Series: Maximizing Your MySQL Database
» Which is the fastest browser?
Posted on June 16, 2008
Filed Under Mac, PHP, Tech, Web development | Leave a Comment
» Download FireFox 3 and install it on my Mac (my Ubuntu machine switched to FF3 weeks ago)
» Download this possibly very interesting PHP Debug thingy for the Mac
Posted on June 13, 2008
Filed Under Internet, MySQL, Reading, Tech, Web development | Leave a Comment
I’ve got lots of content in my RSS aggregator that I “want to read, but not right now”. And I keep skipping over it, making sure I don’t accidentally mark those items as read, and that is starting to annoy me. So I’ll just do what every sensible guy does: make a note of those items and move on.
Adding to that, I thought I’d just share them with you, so here is my to-read list:
» Q&A and Recording of the Memcached Webinar
» How would you compress your MySQL Backup
» Please Give Us Your Email Password
» Give Your Site a Boost With Memcache
» MySQL Proxy: debug plugin
» MySQL Cacti templates 1.0.0 released (screenshots)
» Tools to use for MySQL Performance Review
» Designing For Evil
» Videos in the Flickr API
There. Now I can clean out some items in my aggregator. I’m gonna do this more often, by the way.
Posted on May 15, 2008
Filed Under Tech | Leave a Comment
Lore Sjöberg: “here’s what I often do: I put my laptop back into my satchel, put my iPod back into my coat and bring my entire life with me into the bathroom”
Lore ponders what to do if you’re working in a cafe and have to use the bathroom. I think I would take option 4: pack it all up, emty my bladder, and unpack everything when I return. Fortnunately, when I’m in a cafe, doing some work, it usually is only for a short time so I actually never have this problem.
I don’t use my iPod when working on my laptop, by the way: i just plug my earpods into the laptop and use iTunes or RealPlayer to listen to music.
Posted on April 21, 2008
Filed Under MySQL, Tech | 2 Comments
Eric Bergen: Have you ever executed a query from the MySQL command line client only to find that the output wrapped and the result is unreadable?
I have. A lot.
In the past you have to run the query again with \G instead of ; or \g to get it to display the output in a vertical mode. My feature in MySQL 6.0.4 fixes that.
I am standing up and cheering. No, really. I love those little things that make life (yes, I said life) easier:
The auto-vertical-output option tells the command line client to display the results in vertical format if the results are going to be too wide to display horizontally. It does this without re-executing the query because MySQL passes the length of each column in the result set.
It’s a shame MySQL 6 is still so far away, but still: nice feature!
Posted on April 21, 2008
Filed Under Reading | Leave a Comment
Posted on April 19, 2008
Filed Under Linux, Mac, Tech, Web development | Leave a Comment
When I work, I usually use two computers: an Ubuntu-powered PC and my MacBook Pro. Of those, the Mac is my main machine: I have all my development tools and environments running on it, I use it for mail and documents, my music is on it (because I can’t work in silence), etcetera. It has this value to me because I can carry it to wherever I need to, which means I can use it at both of my two jobs, plus on location if I ever need to (and sometimes I do).
But there’s one thing missing: although Mac OSX is a very nice OS, probably the best I’ve worked with, I still need Linux to complete my wishlist. The combination of Krusader and Kompare, for instance, is a golden one if you need to organize your development projects. Krusader is a two-pane file manager, with the option to use FTP and SFTP or just local files. Whenever I need to examine the difference between two versions of the same file (and I need to do that a lot: before commiting my changes to version control, I want to know exactly what I’m doing), I set up Krusader to have a folder with one version of the project on the left and one version on the right. I then select the files I want to compare and the magic happens: Kompare starts.
Kompare is a frontend to the diff tool and as such not that special: if I just want to quickly see the difference between foo.php and it’s current state in CVS I can just use the built-in comparison tools from Zend Studio for Ecplise. But: Kompare is so much better! It has coloring to differentiate between additions, removals and changes, is more precise (due to the tried-and-tested diff being the backend) and has the ability to apply some of my changes to the other file, which enables me to be more exact in what I commit (you know, sometimes you have several changes in a file, but just a few of them belong to that relevant bugfix and the others are for that new feature that’s still unfinished, so you want to do a partly commit).
So, I need Linux next to Mac, because those tools don’t run on Mac OSX. When at home (for Job #1), that’s no problem. My only PC is an Ubuntu machine. But at work (at Job #2), I have an old PC which is kinda slow which I use for this. And the slow part, that’s annoying. Because whenever I need to use Kompare, I need five to ten minutes to boot the thing, and every action after that needs a lot of patience.
But, I share my desk with a colleague who sits there when I’m at Job #1. And he has his own PC, stalled under the desk next to mine. A new, fresh one, nice and fast, running Windows, and I already discussed making that one a dual-boot so we can share not just the desk, but the PC as well. But I don’t have the time to go and install Ubuntu next to Windows, carefully selecting partitions, making sure I don’t nuke his installation, and whatnot. So even months after “Hey, can I make that one a dual-boot?” - “Sure!” I’m still working on the slow machine.
Enter Wubi. Shipping with Ubuntu 8.04 next week, it’s an Ubuntu installer for Windows. And it does exactly (exactly!) what I need:
When I rebooted my machine, an option to boot Ubuntu was added to my Windows boot list, and after selecting it, Ubuntu started loading just as it would if installed on a dedicated drive. I was even given the normal GRUB menu.
(Linux.com)
So now I can just boot my colleage’s machine, put in the Ubuntu CD, click through the installer and enjoy Ubuntu. No need for me to run the Ubuntu installer, carefully selecting drives, doing all kinds of stuff that costs me time. Just click-click-install, the Windows way.
Life really does get better with every Ubuntu release.
Posted on April 18, 2008
Filed Under MySQL, Reading | Leave a Comment
MySQL organizes a lot of conferences thoughout the year — for instance, last October I attended the Customer Conference in London, which was very interesting and gave a nice insight into the world of MySQL. But if there’s one conference that could carry the title ‘The MySQL Conference’, it would be the one held in Santa Clara, CA this week.
Because it is a larger conference, there’s more coverage. And the coverage is more organised. So if you weren’t attending, like me, you might want to dive into the blog posts and presentations that can be found online. This wiki page seems like a good starting point. Anyone got another?
Posted on March 31, 2008
Filed Under Mac, Tech | 1 Comment
I don’t get this. I’ve had this on servers, on desktops, now I have it on my Mac: a process froze, didn’t do a thing and just ignored the hell out of me. So what do you do? Kill it!
In Mac OSX, there’s a little interface which allows you to choose an application and force it to quit. Works every time. So far. But how do you solve the frozen-process problem with a fullscreen application that won’t let you switch to another application, like Front Row?
Tonight, my Mac froze on Front Row. I was comfortably sitting in bed, ready to watch an episode of a tv show on DVD, when Front Row just froze up. Silent. Nothing. No response. So I got out of bed, walked to my Linux PC and logged into my Mac using SSH. And I looked up the logs. And there it was:
Mar 31 22:41:46 Yoda2 diskarbitrationd[43]: Front Row [4394]:40707 not responding.
Non-responsive. That’s fine, I thought, I’ll just kill it, get back into bed and start over. But Front Row didn’t let itself be killed:
breuls@Yoda2: ~ $ ps aux | grep Front
breuls 4435 0.3 0.0 590472 84 s005 R+ 10:43PM 0:00.00 grep Front
breuls 4394 0.2 3.8 430184 78816 ?? U 10:39PM 0:11.11 /System/Library/CoreServices/Front Row.app/Contents/MacOS/Front Row
breuls@Yoda2: ~ $ kill 4394
breuls@Yoda2: ~ $ ps aux | grep Front
breuls 4394 0.0 0.0 0 0 ?? E 10:39PM 0:00.00 (Front Row)
breuls 4440 0.0 0.0 590472 204 s005 R+ 10:44PM 0:00.00 grep Front
That’s right. Didn’t listen to the kill command. Now, I know about the several options to kill. I tried several, including the -9 switch. Didn’t work. Front Row ignored me, all the way through my giving up and pressing the reset button.
I hate that. That’s not supposed to happen. Kill -9 is supposed to be the last way out of trouble. It-should-work. But it didn’t. Why am I not in control of my own laptop? Why is there an afterlife to kill -9?
Posted on March 20, 2008
Filed Under MySQL, Tech, Web development | Leave a Comment
According to Baron Schwarz the second edition of High Performance MySQL (the first edition being written by Jeremy Zawodny and Derek Bailing, which I read twice and still often use as reference) is in production, meaning that it’s written and being prepared for print.
That’s good news! As a MySQL developer and DBA, I’m very interested in knowing every piece of information about how to make MySQL perform well, and as soon as I can, I’ll order a copy.
Posted on March 5, 2008
Filed Under Linux, Tech | 1 Comment
Canonical: “Landscape provides users with a hosted web interface on which all machines are registered. From this single interface, packages and security updates are deployed to the entire network of servers and/or desktops with a single click. Additionally a wealth of monitoring data is provided graphically to the administrator showing process and resource use as well as flagging any available security fixes for the system.”
Wow. Cool. Seems like a real time saver; currently, when I have to apply changes to a group of machines, I find myself logging in and out of each of them and that’s not very funny when you know your server farm increases in size regularly…
Posted on February 29, 2008
Filed Under Tech, Web development | 1 Comment
Hmm, nice step: the Zend Framework will be included in the repositories for Ubuntu Hardy Heron, scheduled for release in April. Not that the average developer wouldn’t be able to obtain a copy of ZF otherwise, but it’s nice that it will be included.
Let’s hope updates to the Zend Framework will be ported rapidly into Ubuntu, so Ubuntu/ZF users wille be able to truly depend on the packaging system.
Posted on February 23, 2008
Filed Under Tech, Web development | Leave a Comment
It’s those little things: in PHP 5.3, the constant __DIR__ will be available. Of course, this is the same as the output from dirname(__FILE__), but it makes life just that little bit easier.
Posted on February 21, 2008
Filed Under Tech, Web development | Leave a Comment
The Dutch PHP Conference, which I went to last year, is getting its second edition. It’s a bit more expensive than last year, but I’m certainly going to consider attending.
Posted on February 17, 2008
Filed Under Mac, Non-tech | Leave a Comment
Well, no, I’m not a snob, but I’m getting close, according to this list:
Mac owners are more likely:
1. to be perfectionists
2. to use notebooks
3. to use teeth whitening products
4. to drive station wagons
5. to pay for downloaded music
6. to go to Starbucks
7. care about “green” products and the environment
8. to own a hybrid car
9. and last but not least … to buy 5 pairs of sneakers in a year
I’m a Mac owner. In fact, I recently replaced my MacBook Pro with.. well, a MacBook Pro. You know, “it was time” for a new one. So I should have a look at the list:
1. Perfectionist: a bit. Sometimes. When time allows, I want what I do to be done well. And that borders on perfect. So yeah, check this box.
2. Duh.
3. Apart from tooth paste: no.
4. I don’t have a car. Hell, I don’t even have a driver’s license.
5. Yup. Sometimes I grab an album from Usenet, but most of the time I get my music through iTunes.
6. Whenever I’m near a Starbucks, which is at least a few days a year (there’s no Starbucks in my city), I’ll get me a Caramel Macchiato. Yummie!
7. Green-ish. Maybe a bit. I have some CFL bulbs in my lamps, and I turn down the heating when I open the window, and I separate used paper from the regular waste, but apart from that.. nah, not more than others.
8. I don’t have a car, so no.
9. I don’t own five pairs of sneakers, but I do wear Converse Chuck Taylor All-Stars. Exclusively. And in the last year I bought three pairs. And yeah, within a few months I will probably have bought another pair. So let’s check this box.
So, that’s about five out of nine. Does that make me a snob? I’ll leave others to be the judge of that.
Posted on November 10, 2007
Filed Under Non-tech | Leave a Comment
It doesn’t really have anything to do with tech or web development, but because screenwriting is one of my other fields of interest, I have been following the WGA strike very closely.
In short, American writers of television shows and film are fighting for a better contract. One that includes residuals for internet-streamed broadcasts of shows and a larger piece of the pie concerning DVD sales. There’s a Youtube video which explains it in full.
Writers, supported by actors and fans, are picketing in Los Angeles and New York and blogging about it. If you’re interested, read some of it. You might want to check Variety and this NY Times blog as well. And if you want to help, sign here and check Fans4Writers. I’d be on the line if I didn’t live in Europe.
Posted on October 13, 2007
Filed Under Tech, Web development | 2 Comments
For the last two months, I have been using a new Zend product as my default PHP editor. I haven’t blogged anything about it, because until last week, it was a closed beta.
At ZendCon ‘07, however, the beta of Zend Studio Neon (with Neon being the beta-name) was released to the public, inviting everyone who’s interested to the party. So now it’s okay to blog about it, and I would like to take this opportunity to name a few things that might cause Neon to become my default editor, permanently.
1. Custom formatting
In the classic Zend Studio, you can select a piece of code and have Studio re-do the indenting of that section for you. Very handy when you’ve messed up your code in some way, or several CVS commits from different people have thrown the structure out of whack. In Neon, this feature works even better:
I can configure exactly how I want my code to look: where I want my spaces, where the braces should be placed, how the code needs to be indented and lots more. I can configure the formatter to follow my personal coding standards, select a piece of code and have Neon apply my standards to the selection. Brilliant!
However, Neon doesn’t remember my preferences, so I have to export them whenever I make a change and import them every time I start Neon. Also, a few bits of my prefs cannot be configured, such as the way arrays should look when you divide the declaration over multiple lines. But I expect Zend to be looking into that, as several of the closed-beta testers have already mentioned it in the testers group.
2. Easy compare and CVS-integration
When Neon recognises a project to be a checkout of a CVS-module, several options are added to the navigator (the outline of files and folders on the left side of the screen). To name a few:
- Every file that has been changed is visually marked as being different from CVS. This makes it easy to find what you have changed and might be ready to be commited into CVS.
- I can update and commit from the navigator. The classic Studio had this as well, but it was useless because the following feature was missing:
- Compare! I can right-click a file and compare it to the latest version from CVS, or a specific revision, or just compare it to another file I also selected. The ability to compare makes it possible to check if the file I want to commit is ready to be commited: I can see all the changes and if I left in some junk (an echo, some commented-out code, you name it), it shows up as a difference and I can edit it while still in the compare screen. Brilliant! I’m used to the way Kompare works, and frankly that one has a better overview of the changes, but Neon makes a good second best, especially when combined with the CVS options.
- Neon acts as a complete CVS client. I can change the revision of a file, create branches, browse the history of a file, commit several files at once and more.
3. It’s more than a PHP editor
Apart from writing PHP code, I do a lot of work with Javascript, XML, Webservices and such. I can open a Javascript file and it opens in a specific JS editor, complete with a preview screen which exectutes the file as if it were loaded in a browser. Or I can open a .xsd file and the XML Schema in it is shown in graphical form, complete with all kinds of functionality for altering the schema. It even shows errors I made in either type of file. Very, very nice.
4. Choose the PHP version per project
In the classic Zend Studio, I have to change the PHP version from 4 to 5 and back when working with different projects. In Neon, I can configure this in the project-specific settings, instead of editor-wide. Quite a time-saver, as it prevents me from looking surprised at my editor, wondering why it thinks a bit of code has an error when it clearly doesn’t.
5. Project-wide error checking
When I open a project, Neon checks all the files, both PHP and other types, for errors. When it finds them, the erroneous file is marked as such in the navigator, and so are all the folders above it. I can easily follow the path in the navigator to find the file with the error, fix it and when saved, the mark disappears. And of course I can commit it immediately.
The downside to this is a heavier editor, though. When a project resides on a remote server, and Neon startes opening and parsing them all, my computer gets very, very slow due to the heavy traffic. In fact, Neon already is very memory-consuming and needs to be shut down if I want to open something else that’s big in memory (a video player, for instance). I really hope Zend is able to do something about that.
There you have it, five things I like. There are also things I don’t like: the memory Neon consumes, the multitude of ‘perspectives’, editors, outlines and other screens I don’t really ‘get’ yet, the fact that even a closed project shows up in the navigator and some other minor things. But those are all little bumps in the road, and as Neon is still in beta, I’m not really worrying about it.