...more recent posts
These days I feel like computers and the web are in a period of cooling. We've gone through a highly innovative stage where change was happening at an amazing rate, and now we are trying to integrate all that and not much new is happening. Except this change to the client / server model is quietly becoming a big deal:
The HTML 5 specification provides a new mechanism for client-side data storage: JavaScript database support. HTML 5 is currently in development by the Web Hypertext Application Technology Working Group (WHATWG). JavaScript database support is available in Safari 3.1 and later, and in iPhone OS 2.0 and later. You should read this documentation if you are a web developer who wants to store data locally on a user’s computer in amounts beyond what can reasonably be stored in an HTTP cookie.Google Gears, of course, is doing very similar things.
Today I came across a sentence I would never write:
There have been many times since 2002 that I’ve regretted not building my own publishing system from scratch.For some reason reading that is very funny to me in a sort of "I can't believe I've been working on my publishing system since 1999" sort of way.
Finally. ClickToFlash is a Safari plug-in that disables auto play of Flash content. You can still view the content but you must click on the static Flash box in order to play. Since so many advertisements are Flash based, and it's not a huge problem for me to click on the rare Flash element I do want to see, this makes browsing *much* nicer.
And, if you control-click on a Flash element you get a pop up menu where you can add the present site to a whitelist. So if you always want your favorite music site to load and play Flash content you just put the site in the whitelist and CTF won't disable it.
Nice one liner to recursively replace all occurrences of 'foo' with 'bar' in all .html files in the current directory and below:
find . -name "*.html" -print | xargs sed -i 's/foo/bar/g'
Work has been busy, so I'm years behind on posting. Maybe later today I can try to catch up a bit. One of the many topics I want to hit is jquery which is a javascript library that helps with creating both javascript effects in the page (animations, fancy slide in/out menus, accordians, tabs, lightboxes, etc...) as well as facilitating AJAX (well, AJAX-y since it's not necessarily XML) requests to the server. I used to talk about EXTjs a lot when I was first learning about these libraries, but I've ended up settling on jquery for my uses. They aren't exactly the same, but they are very similar, and jquery just feels better to me. In any case, these libraries (jquery, EXTjs, MooTools, Prototype/Scriptilicious, etc...) are at the heart of most new sites on the web (so called Web2.0.) and as a developer all I can say is Hallelujah because they take away 90% of the pain in developing for so many different browsers (I'm looking at you IE6!)
But it is a bit of a learning curve since I used to think of javascript as something to be avoided along the lines of Flash. Everything changes though, and so this is now something you just have to know to be current.
This morning I really struggled with an issue involving submitting accented characters in data through a jquery $.post statement. Turns out, unlike when submitting a form the old fashion way, when jquery serializes the post values it always uses url-encoded UTF-8 strings. So on the server side you need to do a UTF8_decode on the data before you stick it in the database. Luckily this post got me the answer without too much trouble since that is one of those little things that you could waste a whole day trying to figure out.
Steve Jobs to take a health related leave of absence until June. He will remain CEO. Tim Cook takes over day to day responsibilities.
Will be interesting to see what happens to the stock. I think the market will over react.
I feel a little stupid about this one, but to be fair, you can't know everything. In MySQL you can 'update' part of a field (like search and replace) with the 'replace' function:
update [table_name] set [field_name] = replace([field_name], '[string_to_find]', '[string_to_replace]');
I've always just written a little program to select all records and then loop through and do the replace in PHP. This is obviously much easier. Google is my friend.
NVIDIA's ion platform is a chipset for Intel's low power Atom processor. It's an "Atom CPU and a GeForce 9400M next to each other, a single SATA connector and a DDR3 SO-DIMM slot on the other side of the board. And this little thing is powerful enough to play HD video (8 - 25Mbps H.264)." The 9400M is the exact same graphics chip that's in the new MacBooks, but the entire chipset fits on a Pico ITX board which is considerably smaller than what's in a full size laptop.
This doesn't quite get into smartphone territory, but you could make a very small notebook ("netbook") with this that would really be full powered. I'll be very interested to see what people do with this. Due first half of 2009.
Apple has annouced that this January will be the last time it participates in the MacWorld Expo trade show. This is huge news in Mac land since this was the one event that everyone went to (apple people, but more importantly the larger community of 3rd party developers.) And Steve Jobs has become rather famous by using the keynote speech to display his impressive public speaking skills. This is where many huge Apple products have been introduced to the public and the publicity surrounding the event was incredibly out of proportion for the size and importance of the market Apple serves. And not only will this be the last year, but Jobs isn't even giving the keynote this year! Quelle horror!
Addonics USB to NAS adapter. $55. Sweet. Let's you plug any USB hard drive into your router and then share it over SMB or Samba with any connected computer.