Something I found out today when I decided to make a quick edit to a video taken on my cellphone:  Newer GSM cell phones and devices (such as my now-dated Android G1) now tend to save video in 3GP format. This shiny new multimedia format may have many advantages, but it is not widely supported yet on mainstream desktop software, and also may encapsulate certain codecs that are not free to use. This includes the AMR audio codec, which is patent-encumbered and cannot be freely distributed. Since this is what Android and many others use in their 3GP video output, it has become a common issue.

So, apparently there are people under the impression that you can only read and edit these videos using proprietary software such as Quicktime Pro, sketchy shareware or dodgy apps from questionable code houses. For just making the very occasional simple edit to a cheesy cellphone video, it’s a lot to ask.

Fortunately, there is a good alternative. All you need  little command-line mojo and some patience.

Read the rest of this post »

A minor UI detail in development required that we include the width and height of certain images in the HTML and XML views. Since we were using the file_column plugin, which doesn’t normally save any image information besides the file name, this turned out to require some hacking.
Read the rest of this post »

I get questions a lot from designers about not only optimal page width for layouts but what height to use to ‘keep everything above the fold’. Here is one answer I gave recently -

For width, I’m not a designer but I’ve read that 960px width is the way to go these days, because it lends itself to being divided into columns that look nice:

As far as ‘above the fold’, I just have to caution against using any such concept on the web. Horizontal scrolling can and should be avoided, but vertical scrolling is something you cannot 100% avoid. All I can tell you is that on a 1024×768 display (at least 95% of users have that or higher) you should be OK with a fixed 600px high block. But there are many different display formats out there, the browser chrome can take up a lot of room, and not everybody maximizes the browser window.

Here are some other sites that say more-or-less the same thing - but planning to get absolutely everything ‘above the fold’ for everyone is tough because then you might only have 400px or so, according to the actual statistics.


update [Dec 17 2009] A Google engineer just released his side-work project, which will let you view any site through an overlay that graphically represents the statistics they have gathered on viewport size. If that doesn’t make sense, don’t worry, it’s easy, check it out.

So this shows the ‘fold’ is not a fixed value, which we already knew. It’s never good to hide the legendary ‘Big Important Button’, but if you want to design to even the 80th percentile then you have a real small area to work with.

But to take it even further, here are a few more articles, based on empirical data, that generally conclude that scrolling should not be feared:

Installing rssh to allow scp/sftp sessions only for user accounts is a breeze. Getting them into a chroot jail took a bit more reseach, but in the end turned out to be pretty easy.

This is on CentOS 4.6, but this technique should work almost identically for any Linux system thanks to the l2chroot script.

Read the rest of this post »

Yep, I’m trying to git on the bandwagon too. Last fall I dropped a small set of plugin files into github as a test, which was easy enough. But never had the time to figure out how to get all the other plugins, libraries and frameworks we use in there without moving everything over, including all the client project code.

So in the last few months I have been making commits via svn as usual, ignoring the old github account entirely. It was pretty simple to get all those interim svn commits into github though, here’s how:

Read the rest of this post »

As proof that sometimes randomly browsing the web while procrastinating from boring work (Saturday night year-end accounting and tax organizing, for instance) can sometimes be useful, a web trick:

Flickr engineer “schill” found out that in order to natively re-size images on the client side without making them look like 8-bit dog vomit in MSIE7, you can assign CSS property “-ms-interpolation-mode: bicubic;“. For MSIE6 you can use the good ol’ AlphaImageLoader filter (however he doesn’t mention this might kill your ability to use z-index, a minor detail which will no doubt drive someone batty nonetheless)

In good browsers the rendered image quality ranges from OK to pretty-good, without doing anything. So in those (rare) cases where “OK” is Good Enough ™, this will be a huge benefit to mankind.

The thumbnail here is 265×241 natively, but has these tricks applied to be 50×50, and they make a huge difference. And also, it is hilarious.

The proper CLI incantation to get mplayer/mencoder to clockwise rotate, apply an autolevels filter and re-sample an AVI video is:

mencoder dscf5432.avi -vf rotate=1,pp=al -ovc xvid -xvidencopts pass=1:bitrate=687 -oac copy -o out.avi

Some things this week:

Why’s Camping for quickie site

Git creative at github for quickie versioning

duplicity for quickie encrypted backups to S3

stackoverflow for quickie answers

Media Plugin for quickie embedding

hadoop for quickie figure-outing.

besides the official documentation, some must-read overviews of the issues with PHP’s session support are provided by Harry and segfaultlabs.