Feb 11 27
I’m pleased to announce that the first version of my jQuery highlight plugin that supports a lenient mode was released today.
It normalizes or unaccents text before the highlight pattern is applied (sort of). So, it’s a quite a bit more advanced and versatile than plugins that are simply case-insensitive.
Go check it out, there’s a demo included!
May 10 15
Google PageSpeed reported that the JPEG images of a web project I recently worked on should be optimized i.e. compressed. So, I used jpegoptim in batch mode on OS X for the job. You need to build the jpegoptim binary for OS X yourself. Short manual:
- Download jpegoptim sources from developer’s website
- Unpack the TAR ball
- Navigate to the unpacked sources in a shell
-
chmod a+x configure
-
./configure
-
make install
In my case the libjpeg library was missing. I had to download and build libjpeg as part of the official IJG JPEG 8 code. Once everything was in place I simply ran jpegoptim from the command line for all JPEG files in a folder.
jpegoptim -o --dest=./compressed --strip-all *.jpg
This optimizes all .jpg files in the current folder with maximum compression (–strip-all) and saves the compressed files in the ‘compressed’ sub folder (had to be created first).
Feb 10 08
Use the JavaScript console in Firebug and run the following script snippet:
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("HEAD", "the_url",true); // Async HEAD request (relative path to avoid cross-domain restrictions)
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4) { // make sure the request is complete
alert(xmlhttp.getAllResponseHeaders()) // display the headers
}
}
xmlhttp.send(null); // send request
Jan 10 28
cache-control, pragma, no-cache, expires header, and tons more. I learned a lot from the below referenced articles.
Caching tutorial for web authors: http://www.mnot.net/cache_docs/
jGuru forum question: http://www.jguru.com/faq/view.jsp?EID=377
Dec 09 12
I just invested 30min to find tools/libraries which allow me to use PHP scripts instead of Java on the server when the front end is GWT. There are various potential channels through which GWT and PHP can talk to each other. GWT RPC, ideally native or over JSON/XML would certainly be the most obvious choice.
My Internet search didn’t turn up a whole lot of useful stuff…
http://code.google.com/p/gwtphp/
http://code.google.com/p/gwtamp/
http://code.google.com/p/lacertae/
http://download.boulder.ibm.com/ibmdl/pub/software/dw/xml/x-gwtphp/x-gwtphp-pdf.pdf
http://angel.hurtado.googlepages.com/tutorialgwt2
Sep 09 19
Finally, the first version of the iCalendar factory is here!
It generates iCalendar objects and streams them as .ics attachments to your browser. URL parameters define all the attributes of the iCalendar. This allows to generate calendar entries from virtually everywhere.
Jul 09 04
This blog uses the iTheme for its layout and graphical representation. However, I wasn’t satisfied with the fixed width of 770px. In a time where wide-screen displays have become common I felt that a lot of precious screen space was wasted left and right of the actual blog content. So, I widened it by 224px. It should still be perfectly legible with an older standard resolution of 1024×764, though.
Please let me know if you have trouble reading this blog on your screen.
Furthermore, and this is really important to me, the calendar icon with the blog post’s publication date doesn’t just display month and day but also the publication year. There must be a valid reason why so many themes don’t include that but for me this a bug and not just a missing feature. Fortunately it was easy to fix for iTheme. On line 10 of iTheme index.php I replaced
<div><span><?php the_time('M') ?></span> <?php the_time('d') ?></div>
with
<div><span><?php the_time('M') ?> <?php the_time('y') ?></span> <?php the_time('d') ?></div>
Mar 09 28
I recently started surfing the Internet with cookies disabled in my browser. You wouldn’t believe how many sites that require cookies to be enabled fail to tell me so. I would guess it’s about 90%. Most often I notice this when I try to log in to a site and simply can’t get past the login dialog. Sad if web developers don’t think that far…
I’ve long given up sending a friendly email to the respective webmasters – it’s just too time consuming.
Jan 09 25
After many hours searching the Internet for GWT widget libraries, analyzing them, and taking notes I thought I might as well publish my findings here. Feel free to comment and point out inconsistencies.
At the moment the market seems to be split into two segements:
- a few small or medium-size, low-key libraries with little activity
- the whole “Ext” gang
However things change very quickly, in a matter of months, and the end of 2008 saw the advent of a new-kid-on-the-block: SmartGWT.
Small, or medium-sized libraries
- GWT-SL/WL, a collection of server- and client-side tools. No real show case that demonstrates the power of the library is available. Last minor release in December 2008. Little SVN activity over the entire course of 2008.
- GWT Tatami, based on the DOJO JS framework. Show case isn’t impressive, but project is active. Continuous SVN activity. Road map for first half of 2009 available.
- GWTLib, continuous but little SVN activity. Offers hardly anything else but but table-centric widgets.
- GWT Tk, tbd
- Rocket GWT, tbd
- “vanilla” GWT, Google’s on-board GWT widgets. Nothing fancy, but clean and slick.
The “Ext” corner
A long time ago (think Internet time
) a guy called Jack Slocum built an extension to Yahoo’s YUI widget library named YUI-Ext. It evolved and became independent, Ext JS was born and with it a new company: http://extjs.com. The library quickly became very popular.
Once GWT was released people started writing widget libraries for it. Boston-based Sanjiv Jivan started GWT-Ext and based in on Ext JS. Darrell Meyer wrote MyGWT, a pure GWT widget library which shared the Ext JS l&f. It was voted #1 widget library one year ago.
In April 2008 things became very nasty an confusing when Jack Slocum changed the Ext JS license from LGPL to GPL thereby forcing GWT-Ext to stick with Ext JS 2.0.2 which was the last version available under LGPL. Furthermore, he hired Darrell Meyer who brought his MyGWT as a dower into the relationship. As a result, Ext JS published its own GWT widget library called Ext GWT. Now developers had the choice between GWT-Ext (full OSS with LGPL) and Ext GWT with a dual-licensing model. The GWT widget “war” (see references 1-5 below) turned many away from Jack Slocum’s Ext JS because they disliked the way the company treated the GWT community.
On November 26th, 2008, the game changed again when the GWT-Ext crew announced that they would no longer build major new features but instead be migrating to SmartGWT, a library created by GWT-Ext developer Sanjiv Jivan . SmartGWT 1.0 had been announced only two weeks earlier.
[1]http://www.jroller.com/sjivan/entry/my_response_to_jack_slocum
[2]http://pablotron.org/?cid=1556
[3]http://www.gwtsite.com/ext-gwt-gwt-ext-what-now/
[4]http://ajaxian.com/archives/to-gwt-ext-or-to-ext-gwt
[5]http://gwt-ext.com/license/
Aug 08 28
Whenever I’m confused about the wmode parameter when embedding Flash objects into websites I turn to http://www.communitymx.com/content/article.cfm?cid=e5141. It describes the three modes “window”, “opaque”, and “transparent” with just the right degree of details and contains sensible demos. Of course, it’s helpful that the explanations are also related to DHTML menus because problems with those most often rise questions about Flash’s wmode parameter.