<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-13188563</id><updated>2011-11-13T17:14:19.637+10:00</updated><title type='text'>Abhi's Blog</title><subtitle type='html'>Occasional ramblings of a Developer</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://abhibeckert.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://abhibeckert.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Abhi Beckert</name><uri>http://www.blogger.com/profile/02320249507248046773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>18</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-13188563.post-113606888239453163</id><published>2006-01-01T08:27:00.000+10:00</published><updated>2006-01-01T08:41:24.686+10:00</updated><title type='text'>Camino 1.0b2 is here</title><content type='html'>&lt;a href="http://www.caminobrowser.org/releases/1.0b2.php"&gt;Camino 1.0b2&lt;/a&gt; is now available for download, I've been using it since last night, so far it has zero bugs.&lt;br /&gt;&lt;br /&gt;It's not quite up with safari on quality, but it's a very nice browser and has some great features, certainly a *lot* better than firefox.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13188563-113606888239453163?l=abhibeckert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abhibeckert.blogspot.com/feeds/113606888239453163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13188563&amp;postID=113606888239453163' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/113606888239453163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/113606888239453163'/><link rel='alternate' type='text/html' href='http://abhibeckert.blogspot.com/2006/01/camino-10b2-is-here.html' title='Camino 1.0b2 is here'/><author><name>Abhi Beckert</name><uri>http://www.blogger.com/profile/02320249507248046773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13188563.post-113563900085836425</id><published>2005-12-27T09:16:00.000+10:00</published><updated>2005-12-27T09:16:40.890+10:00</updated><title type='text'>How to become an independent programmer in just 1068 days</title><content type='html'>Gus Mueller (author of some popular mac indi software) tells how he became an independent developer.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.gusmueller.com/blog/archives/2005/12/25.html"&gt;read more&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;a href="http://digg.com/programming/How_to_become_an_independent_programmer_in_just_1068_days"&gt;digg story&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13188563-113563900085836425?l=abhibeckert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abhibeckert.blogspot.com/feeds/113563900085836425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13188563&amp;postID=113563900085836425' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/113563900085836425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/113563900085836425'/><link rel='alternate' type='text/html' href='http://abhibeckert.blogspot.com/2005/12/how-to-become-independent-programmer.html' title='How to become an independent programmer in just 1068 days'/><author><name>Abhi Beckert</name><uri>http://www.blogger.com/profile/02320249507248046773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13188563.post-113339017381304537</id><published>2005-12-01T08:36:00.000+10:00</published><updated>2005-12-01T09:38:25.406+10:00</updated><title type='text'>CSS shadows using multiple bg images</title><content type='html'>A &lt;a href="http://www.theshapeofdays.com/2005/11/my_contribution.html"&gt;css shadow tutorial&lt;/a&gt; which was &lt;a href="http://digg.com/design/How_to_Implement_Cool_CSS_Box_Shadows"&gt;posted on digg&lt;/a&gt; inspired me to demonstrate how cool safari's ability to do multiple background images is.&lt;br /&gt;&lt;br /&gt;With the story, they show the method I've been using for ages to apply drop shadows to an image. Read the article for the full description of how to implement it, but the basic idea is to apply some background images, margins and positioning css to the following html:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;lt;div class="shadow"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;img src="shufflegirl.jpg" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;div class="topleft"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;div class="topright"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;div class="bottomleft"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;div class="bottomright"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;br class="clear"&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;As you can see, it's pretty messy. A lot of code for something that should be simple.&lt;br /&gt;&lt;br /&gt;Starting with version 1.3 of safari (which was released *ages* ago, we're now at version 2.0.2), you can have more than one background image on a single element. This means you can apply the exact same background images using this html:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;lt;img src="shufflegirl.jpg" class="shadowed" /&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;And this CSS:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;img.shadowed&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;padding: 0px 2px 4px 2px;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;background-image:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url(shad_tlcorner.png),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url(shad_trcorner.png),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url(shad_blcorner.png),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url(shad_brcorner.png),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url(shad_top.png),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url(shad_bottom.png),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url(shad_left.png),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url(shad_right.png);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;background-repeat:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;no-repeat, /* top left */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;no-repeat, /* top right */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;no-repeat, /* bottom left */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;no-repeat, /* bottom right */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;repeat-x, /* top */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;repeat-x, /* bottom */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;repeat-y, /* left */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;repeat-y; /* right */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;background-position:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;top left,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;top right,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bottom left,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bottom right,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;top,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bottom,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;left,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;right;&lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;As you can see, the CSS isn't much simpler using multiple bg images, however the html is one line of code instead of eight! And even more important, his method uses float left, which might not always be desirable. With my method the image behaves exactly the same as an image without a shadow.&lt;br /&gt;&lt;br /&gt;I should note that there are two differences between my shadow and his. First of all he's using a combination of border and bg color to generate the left and right "shadow". I prefer using an image on the left and right, though both methods work fine.&lt;br /&gt;&lt;br /&gt;And secondly, his example puts a 5px white margin around the image, which looks very nice. To implement this in mine, you would either use different images (and I was too lazy), or apply the shadow to a div that's around the image, with a margin on the image. I did test the second approach and it works fine, however once again you need to float the div, which requires more code and won't fit in well with some page layouts.&lt;br /&gt;&lt;br /&gt;So can you use the multi bg image method in your website? As usual this comes down to too factors, how many of your visitors will the shadow break for, and how badly will it break.&lt;br /&gt;&lt;br /&gt;On my website (codeservant.com), 55% of all traffic is either Safari or a Safari based browser. This drops down to about 10% FireFox, 5% IE, 3% Camino, and so on. So for me, it's probably perfectly fine to use safari only features, so long as they don't break too bad on other browsers.&lt;br /&gt;&lt;br /&gt;And this one doesn't break badly at all, there's simply no shadow on other browsers. Just a slight padding around the image (which isn't noticeable). And since it's entirely based on standard CSS 3, future versions of FireFox and IE should be capable of rendering the site perfectly.&lt;br /&gt;&lt;br /&gt;So, if I had a database full of photos on my website, and wanted a shadow around all of them, I would use the multi bg image method.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13188563-113339017381304537?l=abhibeckert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abhibeckert.blogspot.com/feeds/113339017381304537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13188563&amp;postID=113339017381304537' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/113339017381304537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/113339017381304537'/><link rel='alternate' type='text/html' href='http://abhibeckert.blogspot.com/2005/12/css-shadows-using-multiple-bg-images.html' title='CSS shadows using multiple bg images'/><author><name>Abhi Beckert</name><uri>http://www.blogger.com/profile/02320249507248046773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13188563.post-112926673937405087</id><published>2005-10-14T14:36:00.000+10:00</published><updated>2005-10-14T15:12:19.390+10:00</updated><title type='text'>The iPod of home computers</title><content type='html'>Apple has announced a brand new iMac. Basically they took the previous iMac G5 and added a whole lot of new features, both hardware and software.&lt;br /&gt;&lt;br /&gt;It's got a built in iSight for video conferencing (apparently it's even higher quality than the normal iSight, which is already way above standard for webcams). It's obviously intended for video conferencing, but we all know how that works (If you don't, google for iChat AV), what I want to talk about is the new application called Photo Booth, which is for taking pictures of yourself with the iMac. It's a tiny app but really fun, basically it uses the iSight to take a picture of you, complete with live preview of what it will look like on the screen, you can easily pick from a handful of fun special effects to apply to the picture (everything from sepia tone to high end core image filters like Light Rays). Just incase you're in a dark room, it will flash the screen white at full brightness to create a primitive but effective "flash", and the whole UI is done with slick animations and sound effects that generally just make the whole app fun to use. It's pointless but extremely attractive and entertaining, and as steve said this is going to hurt productivity for a good few hours after you stick one on your desk.&lt;br /&gt;&lt;br /&gt;But even cooler than a built in video camera is the new "Front Row" feature. Which is similar to what I assume windows media center would be like (I've never used or even seen media center). It allows you to easily use your mac to listen to music, watch DVD's, browse your photo library, and watch any home movies/music videos/tv shows/etc that you have on your mac. All of this is done with a well designed user interface that can easily be used from the other side of a large room, it's controlled by a 6 button remote control that comes with all new iMacs, the remote control and user interface is somewhat similar to what you see on an iPod with the exception of a lot more "goo" since it's running on fast hardware. Actually, I'm pretty sure it's &lt;u&gt;very&lt;/u&gt; different from windows media center. The [hilarious] slide comparing Apple's remote to the ones used with WMC was enough to make that very clear.&lt;br /&gt;&lt;br /&gt;And that's just the major two features, there are tons of other improvements ranging from a significant speed bump on the CPU and GPU, to an ambient light sensor tied to the brightness of the throbbing sleep LED that allows it to be clearly visible in a bright room without disturbing your sleep if you have it in your bedroom.&lt;br /&gt;&lt;br /&gt;To top all that off, they also managed to make it thinner, while still being able to drop the price of the 17" SuperDrive model to what the 17" Combo Drive used to be (which they have discontinued). The 20" model also was graced by a $100 price drop.&lt;br /&gt;&lt;br /&gt;Oh and they also released a video iPod, and you can buy a handful of TV shows on the iTunes music store (I'm sure more will come, this is the TV producers dipping their toes in before wading out into what is almost certainly pleasant water). I love the new iPod, and iTunes 6 is pretty cool stuff too, but the iMac overshadows them in my opinion.&lt;br /&gt;&lt;br /&gt;I'm calling it "The iPod of home computers" because I feel this is the first computer that's truly perfect, which is exactly what I thought when I replaced my cd walkman with a 4G iPod. I don't really fit very well into the iMac's target market, but I might buy one of these.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13188563-112926673937405087?l=abhibeckert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abhibeckert.blogspot.com/feeds/112926673937405087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13188563&amp;postID=112926673937405087' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/112926673937405087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/112926673937405087'/><link rel='alternate' type='text/html' href='http://abhibeckert.blogspot.com/2005/10/ipod-of-home-computers.html' title='The iPod of home computers'/><author><name>Abhi Beckert</name><uri>http://www.blogger.com/profile/02320249507248046773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13188563.post-112915744318721813</id><published>2005-10-13T08:18:00.000+10:00</published><updated>2005-10-13T10:01:19.266+10:00</updated><title type='text'>Good Code will pay off later</title><content type='html'>Late last night, I started work on a "list view" class in php, pretty much the same basic concept as an NSTableView in Cocoa/AppKit. The main aim of the class is to make it extremely easy to create a list of tabular data via PHP (mainly for use in control panels).&lt;br /&gt;&lt;br /&gt;In my attempt to achieve ultimate simplicity, I designed the &lt;tt&gt;setColumns()&lt;/tt&gt; method like this:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;$listView-&gt;setColumns("First Name", 130,&lt;br /&gt;                      "Last Name", 130,&lt;br /&gt;                      "Email", 170,&lt;br /&gt;                      "Phone", 100);&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I was quite happy, hardly any code at all to specify columns! This is good right?&lt;br /&gt;&lt;br /&gt;But after it was all working, I realized how fast this would degrade to chaos if I ever wanted more than two arguments for each column... So I re-worked the whole shebang to work like this:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;$listView-&gt;addColumn("First Name", 130);&lt;br /&gt;$listView-&gt;addColumn("Last Name", 130);&lt;br /&gt;$listView-&gt;addColumn("Email", 170);&lt;br /&gt;$listView-&gt;addColumn("Phone", 100);&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Or like this (which is handy if the columns are stored in a DB):&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;$listView-&gt;setColumns(Array("First Name", 130),&lt;br /&gt;                      Array("Last Name", 130),&lt;br /&gt;                      Array("Email", 170),&lt;br /&gt;                      Array("Phone", 100));&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;It was a good half an hour of coding where I basically ripped the guts out of the whole class, and replaced it with something fundamentally different. Not to mention it's quite a bit more code now to specify the columns for the list view, but I went to sleep happy with the fact that I'd written Good Code.&lt;br /&gt;&lt;br /&gt;----------&lt;br /&gt;&lt;br /&gt;This morning I actually used the class in the real world, and within a few minutes realized a major flaw. I needed it to work with keyed arrays (I refuse to use the A word), which means I need to assign a key to each column! Since not all uses would involve a keyed array, I also wanted the key argument to be optional. Now it looks like this:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;$listView-&gt;addColumn("First Name", 130, "firstname");&lt;br /&gt;$listView-&gt;addColumn("Last Name", 130, "lastname");&lt;br /&gt;$listView-&gt;addColumn("Email", 170, "email");&lt;br /&gt;$listView-&gt;addColumn("Phone", 100, "phone");&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;It took fully 4 lines of code to implement that in the new class, and it worked flawlessly while still being fully backwards compatible. Wohoo. But what if I had kept the original &lt;tt&gt;setColumns()&lt;/tt&gt; method? I would have had to make a whole bunch of changes all over the class, and worried about bugs that might have been caused. Not to mention any existing code using the class would have instantly broke.&lt;br /&gt;&lt;br /&gt;Motto of the story? Good Code will pay off later.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13188563-112915744318721813?l=abhibeckert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abhibeckert.blogspot.com/feeds/112915744318721813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13188563&amp;postID=112915744318721813' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/112915744318721813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/112915744318721813'/><link rel='alternate' type='text/html' href='http://abhibeckert.blogspot.com/2005/10/good-code-will-pay-off-later.html' title='Good Code will pay off later'/><author><name>Abhi Beckert</name><uri>http://www.blogger.com/profile/02320249507248046773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13188563.post-112624708981316607</id><published>2005-09-09T16:09:00.000+10:00</published><updated>2005-09-09T16:24:49.820+10:00</updated><title type='text'>Blog Skin</title><content type='html'>A few days ago I changed the skin to Minima, and since then I've been making minor tweaks a few times each day:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;Content is now in the Eurostile font (thin and kind of squarish), which I'm pretty sure is only in Mac OS X 10.4 +. It's my absolute favorite font.&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;The header font is Zapfino (advanced calligraphy font), which has been standard on Mac's for a long time, probably not standard for windows either.&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;I've changed the width of the content from a fixed size to a size specified in em's (grows/shrinks when you adjust the font size). I pretty much did this to experiment. I've never really used it in clients websites since it can be difficult to work with, so the more practice I get with it the better.&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;After the sidebar ends, the post content will now wrap underneath it, this is because I tend to make long posts and the page height was getting out of hand.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;I did make a few other very minor changes and might make more in future. But the major ones are done now, so I won't be playing with it too much going forward.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13188563-112624708981316607?l=abhibeckert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abhibeckert.blogspot.com/feeds/112624708981316607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13188563&amp;postID=112624708981316607' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/112624708981316607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/112624708981316607'/><link rel='alternate' type='text/html' href='http://abhibeckert.blogspot.com/2005/09/blog-skin.html' title='Blog Skin'/><author><name>Abhi Beckert</name><uri>http://www.blogger.com/profile/02320249507248046773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13188563.post-112618676575842036</id><published>2005-09-08T23:30:00.000+10:00</published><updated>2005-09-08T23:39:25.763+10:00</updated><title type='text'>Unleashed</title><content type='html'>I just returned from watching Unleashed. A movie I've been anticipating since I first saw the preview, many months ago at Apple's Quicktime Trailers website. I know, it's even been screening in Australia for ages. I've been way too busy lately!&lt;br /&gt;&lt;br /&gt;Anyway, on to the movie. It was exactly what I expected. An intelligent (mostly) drama with a touching story line, threaded with some of the most brutal fight scenes I've ever watched.&lt;br /&gt;&lt;br /&gt;I really enjoyed this film, though I imagine not everyone would.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13188563-112618676575842036?l=abhibeckert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abhibeckert.blogspot.com/feeds/112618676575842036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13188563&amp;postID=112618676575842036' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/112618676575842036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/112618676575842036'/><link rel='alternate' type='text/html' href='http://abhibeckert.blogspot.com/2005/09/unleashed.html' title='Unleashed'/><author><name>Abhi Beckert</name><uri>http://www.blogger.com/profile/02320249507248046773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13188563.post-112606156789800075</id><published>2005-09-07T12:17:00.000+10:00</published><updated>2005-09-07T15:26:30.876+10:00</updated><title type='text'>SubEthaEdit</title><content type='html'>A few days ago the guys from coding monkies (creators of SubEthaEdit) did an interview with CocoaRadio. This was enough for me to play with SEE again (I'm not happy with any html editor I've ever tried, and rarely stick with one for more than a couple of months).&lt;br /&gt;&lt;br /&gt;Like all the other editors, it has it's pros and cons. Starting with the cons:&lt;br /&gt;&lt;br /&gt;It's designed to be a light weight editor and doesn't have any "project oriented" features, most importantly FTP and FileSystem access. TextWrangler at least has a drawer that lists your open documents, but SEE doesn't even have that. Since I'm a Path Finder user, I can live without this and I'm gonna have to. I don't think they plan to implement anything like this. Then again I'm running at 1024x and it is kinda nice to have code that stretches the whole screen, so I guess I might not care so much once I get used to it.&lt;br /&gt;&lt;br /&gt;Like just about every Cocoa app I've ever tried, the syntax colorizer sucks. I've tried several times to implement a syntax colorizer that integrates with Cocoa's text architecture so I don't hold this against them. They certainly had more success than me!! Anyway, I have two problems with it. First of all it's threaded. This means that the colors are applied a moment after you type, and when you open a document there's no colors for a second or two. And secondly, it's powered by RegEx, which is, IMO, a feature that isn't worth the performance hit (I'm finding it a little slow on some of my documents). The only apps that have gotten this right (that I know of) are Xcode and OmniWeb's source code viewer (which allows editing as well as viewing). I wonder if Wil Shipley would be willing to share his work with the rest of the world... probably not since he's no-longer part of the Omni Group.&lt;br /&gt;&lt;br /&gt;There's no multi-file find/replace. I cover this feature in full detail under pros.&lt;br /&gt;&lt;br /&gt;Most of the better code editors (including TextWrangler) can highlight the active line in a pale color. This makes it infinitely easier to find the tiny blashing set of 16 black pixels among the other 7.8 million pixels on my 12" display. It's usually turned off by deafault so most people have never even heard of it, but it's something I'm missing dearly when using SEE.&lt;br /&gt;&lt;br /&gt;On with the pros:&lt;br /&gt;&lt;br /&gt;The UI is excellent! It's very light weight and they've made it look nice where it wouldn't interfere with usability. Once you hide the toolbar (which is pretty much useless), the window is almost entirely filled by the source code editor, with only a thin status bar at the top which only contains stuff I want visible and of course the line numbers on the left and scroll bar on the right. It's deliciously light weight and still has everything I need.&lt;br /&gt;&lt;br /&gt;The syntax colorizer, function popup and all that supports a wide range of languages, and there are more available on-line. To top it off they can all be (reasonably) easily modified if you're not quite happy with a particular module. And of course you can add your own languages if needed. This is all done by editing XML files and RegEx expressions. It's a bit of a learning curve to get into doing this, but the level of customization offered is worth the effort (and if you're not up to the task you're not hard core enough to need to modify these files anyway).&lt;br /&gt;&lt;br /&gt;Find/Replace has full support for RegEx, and the UI is practical, compact and strait-forward. It completely lacks multi-file stuff but in every other aspect it's perfect. I can handle openning TextWrangler to do multi-file find/replace (which uses some weird RegEx format, and has an unpractical, bulky and confusing UI). Ironically, apart from the fact that they're both capable of finding stuff in your source code, SEE and TextWrangler are complete opposites here.&lt;br /&gt;&lt;br /&gt;It's got command line integration. SEE optionally installs a command line utility called (you guessed it) "see" that will open files in SEE. I'm not going to use this much, but I'll use it often enough to appreciate not having to write an alias to achieve the same result.&lt;br /&gt;&lt;br /&gt;Collaboration! The "SubEtha" part of the name isn't just there to sound cool, SEE allows multiple coders to work on the same document over the internet, from all around the world. It's extremely seamless and apart from a few port forwarding issues it works perfectly. Not all the coders I work with have macs, but this is an insanely handy feature when I'm able to use it.&lt;br /&gt;&lt;br /&gt;Even when you're the only person working on a document (pretty much always the case!), part of the collaboration features are still handy. In particular I'm talking about the way it highlights what each user has changed since you opened the document. It's disabled by default when only one person is editing a file, but I strongly recommend enabling this (with the "toggle change marks" toolbar button). Here's an example of a bug I fixed in someone else's (horrible) code earlier today:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.codeservant.com/stuff/see-changehighlight.png" /&gt;&lt;br /&gt;&lt;br /&gt;The code highlighted in orange is what I added. When it came time to jot down the bug I fixed and all that, I didn't have to worry about forgetting to mention anything thanks to this feature.&lt;br /&gt;&lt;br /&gt;It has a light weight (of course) preview of your &lt;b&gt;html&lt;/b&gt; documents. Since it doesn't work with PHP I can't even test it without creating a special web page just so I can play with this feature, and I'm not going to bother. I sent them an email asking for server side scripting support a few hours ago, but since it was something like 4AM in Germany when I sent it, I'm not expecting a reply for a few more hours at least! I've listed this under pro even though I don't like it, since I'll use it extensively when/if it supports PHP. I'm pretty sure it would be easy to implement, and it's the only thing holding me back from paying for SEE.&lt;br /&gt;&lt;br /&gt;There's more that could be added to both lists, but those are the ones I care about. SubEthaEdit is one of the best code editors currently available, and with a few minor improvements it could be leaps and bounds ahead of all the others.&lt;br /&gt;&lt;br /&gt;I will always want a full IDE with ftp syncing, debuggers, and all that cool of stuff. But until someone comes up with it (me?), SubEthaEdit combined with Path Finder, a decent FTP client, and a few browsers is a really nice setup for web coding.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13188563-112606156789800075?l=abhibeckert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abhibeckert.blogspot.com/feeds/112606156789800075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13188563&amp;postID=112606156789800075' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/112606156789800075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/112606156789800075'/><link rel='alternate' type='text/html' href='http://abhibeckert.blogspot.com/2005/09/subethaedit.html' title='SubEthaEdit'/><author><name>Abhi Beckert</name><uri>http://www.blogger.com/profile/02320249507248046773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13188563.post-112249798895808245</id><published>2005-07-28T06:49:00.000+10:00</published><updated>2005-07-28T06:59:48.963+10:00</updated><title type='text'>Amnesty... for widgets?</title><content type='html'>The name is totally weird, but Amnesty Widget Browser is one cool as system add on. It lets you run dashboard widgets on your desktop. Unlike the dev mode built into dashboard, with amnesty you have a bunch of other options.&lt;br /&gt;&lt;br /&gt;For example I have the weather widget on my desktop, but bellow all other windows, allowing me to use Exposé to see my weather rather than having to opening dashboard. But even cooler, you can set the opacity of widgets, and you can set them to ignore clicks. I've got a nice big clock permanently on the bottom-right corner of my screen. It's above all windows and always visible, but I've adjusted the transparency and set it to ignore clicks, which means I can easily see what's under the clock, and I can still click on any buttons that are under the widget.&lt;br /&gt;&lt;br /&gt;There are other pro's (and cons) too. It runs under Panther (I imagine not all widgets will work under panther), which is cool. And it doesn't have any of the flashy transitions in dashboard, which is not cool but kinda refreshing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13188563-112249798895808245?l=abhibeckert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abhibeckert.blogspot.com/feeds/112249798895808245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13188563&amp;postID=112249798895808245' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/112249798895808245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/112249798895808245'/><link rel='alternate' type='text/html' href='http://abhibeckert.blogspot.com/2005/07/amnesty-for-widgets.html' title='Amnesty... for widgets?'/><author><name>Abhi Beckert</name><uri>http://www.blogger.com/profile/02320249507248046773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13188563.post-112226747199069954</id><published>2005-07-25T14:56:00.000+10:00</published><updated>2005-07-25T14:57:51.996+10:00</updated><title type='text'>File List</title><content type='html'>I just discovered a gem called &lt;a href="http://www.petermaurer.de/nasi.php?section=filelist&amp;layout=default"&gt;File List&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;FileList is a freeware app for batch renaming files. It's very powerful, and apart from using the built in features to change extensions or number them, you can run a regular expression find/replace on the name, for example this one I just used:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;Find: (.{15}).*\.(.*)&lt;br /&gt;Replace: $1.$2&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Will trim the filenames of any files passed to it down to 15 characters, plus whatever extension it has.&lt;br /&gt;&lt;br /&gt;The UI is very nice, and shows you the result of your rename before you punch the Go button, and you can even create applets of common tasks.&lt;br /&gt;&lt;br /&gt;It's a bit rough in places, and the documentation is a little scarce (it really needs a link to &lt;a href="http://perldoc.perl.org/perlre.html"&gt;PERL's regex documentation&lt;/a&gt;). But it's freeware and v1.0, so I'm not complaining. But I'll hold off sending a donation until it's been improved.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13188563-112226747199069954?l=abhibeckert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abhibeckert.blogspot.com/feeds/112226747199069954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13188563&amp;postID=112226747199069954' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/112226747199069954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/112226747199069954'/><link rel='alternate' type='text/html' href='http://abhibeckert.blogspot.com/2005/07/file-list.html' title='File List'/><author><name>Abhi Beckert</name><uri>http://www.blogger.com/profile/02320249507248046773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13188563.post-111946244721091000</id><published>2005-06-23T03:38:00.000+10:00</published><updated>2005-06-23T03:48:17.463+10:00</updated><title type='text'>CSS Specificity</title><content type='html'>I was always under the impression that with CSS, whenever two rules conflicted with each other, whatever came last would be used. I started to think this might not be the case just the other day when a website didn't behave the way it should have. Since the behavior wasn't particularly important in this case, I simply ignored it and went on with my work (don't you love tight deadlines?).&lt;br /&gt;&lt;br /&gt;But today I was browsing through a new website I came across, and found this page: &lt;a href="http://htmldog.com/guides/cssadvanced/specificity/"&gt;CSS Specificity (HTML Dog)&lt;/a&gt;. I wish I had've known that a bit earlier! Better late than never I suppose.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13188563-111946244721091000?l=abhibeckert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abhibeckert.blogspot.com/feeds/111946244721091000/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13188563&amp;postID=111946244721091000' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/111946244721091000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/111946244721091000'/><link rel='alternate' type='text/html' href='http://abhibeckert.blogspot.com/2005/06/css-specificity.html' title='CSS Specificity'/><author><name>Abhi Beckert</name><uri>http://www.blogger.com/profile/02320249507248046773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13188563.post-111926635424775764</id><published>2005-06-20T21:08:00.000+10:00</published><updated>2005-06-20T21:19:14.250+10:00</updated><title type='text'>Core Data fun</title><content type='html'>I finally found the time to run through &lt;a href="http://cocoadevcentral.com/articles/000085.php"&gt;CDC's tutorial&lt;/a&gt; on Core Data. It was my first exposure to the new features in Tiger's Xcode Tools (yeah, I've been that busy), and I loved it! Can't wait to start using Core Data in my apps.&lt;br /&gt;&lt;br /&gt;A new version of Pixadex was released with (apparently) much improved performance loading large libraries. It's still pathetic IMO, so maybe my first Core Data app will be an icon organizer... Or maybe I'll just release a boring upgrade to jNotes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13188563-111926635424775764?l=abhibeckert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abhibeckert.blogspot.com/feeds/111926635424775764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13188563&amp;postID=111926635424775764' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/111926635424775764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/111926635424775764'/><link rel='alternate' type='text/html' href='http://abhibeckert.blogspot.com/2005/06/core-data-fun.html' title='Core Data fun'/><author><name>Abhi Beckert</name><uri>http://www.blogger.com/profile/02320249507248046773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13188563.post-111887300327094848</id><published>2005-06-16T07:59:00.000+10:00</published><updated>2005-06-16T08:03:23.273+10:00</updated><title type='text'>If you can't beat them, join them</title><content type='html'>Daring Fireball's latest post on Apple's switch to Intel is by far the best one I've read so far. It outlines my opinion on this article perfectly, and has me even more convinced than I was that this is a great move.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://daringfireball.net/2005/06/rule_the_galaxy"&gt;Read his article here.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13188563-111887300327094848?l=abhibeckert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abhibeckert.blogspot.com/feeds/111887300327094848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13188563&amp;postID=111887300327094848' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/111887300327094848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/111887300327094848'/><link rel='alternate' type='text/html' href='http://abhibeckert.blogspot.com/2005/06/if-you-cant-beat-them-join-them.html' title='If you can&apos;t beat them, join them'/><author><name>Abhi Beckert</name><uri>http://www.blogger.com/profile/02320249507248046773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13188563.post-111857118952104683</id><published>2005-06-12T10:07:00.000+10:00</published><updated>2005-06-12T20:13:09.526+10:00</updated><title type='text'>Broadband!</title><content type='html'>We finally got broadband connected at the new house, so last night I was able to watch the WWDC keynote. it was great, and I'm glad I didn't miss it.&lt;br /&gt;&lt;br /&gt;Incase you've been living in a cave the last week, Apple is going to be switching to intel CPU's starting next year. Personally I think this is great news for all mac users, mainly because it'll make Apple a *lot* more competitive.&lt;br /&gt;&lt;br /&gt;Anyway, as usual I'm in a huge rush, gotta go to work now. I'll be gone for a few days.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13188563-111857118952104683?l=abhibeckert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abhibeckert.blogspot.com/feeds/111857118952104683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13188563&amp;postID=111857118952104683' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/111857118952104683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/111857118952104683'/><link rel='alternate' type='text/html' href='http://abhibeckert.blogspot.com/2005/06/broadband.html' title='Broadband!'/><author><name>Abhi Beckert</name><uri>http://www.blogger.com/profile/02320249507248046773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13188563.post-111758571261705378</id><published>2005-06-01T10:26:00.000+10:00</published><updated>2005-06-01T10:28:32.620+10:00</updated><title type='text'>Been away for a few days</title><content type='html'>On the spur of the moment, I decided to work for my brother (scrubbing green house roofs on a flower farm) on Tuesday, incase you were wondering why I was gone.&lt;br /&gt;&lt;br /&gt;Anyway, it was hard work as usual, though this time it was drizzling, which means I didn't get hot, and the domes were already moist. I got through them reasonably quickly. Unfortunately last night I stayed up until 3:30 AM playing Crash and Burn on my brother in-law's Xbox, then got woken up at 5:30 to get ready for the bus back home, as you can imagine I'm running on caffeine right now...&lt;br /&gt;&lt;br /&gt;We have a visitor staying here for a few days, can't remember his name... He's german, about 20 something. Seems like a nice guy, though he doesn't speak much english. Apparently he's the son of one of my mother's friends in Germany or something like that. He'll be here for a few days, then he'll probably do some dome washing for my brother (there's *loads* of work washing domes).&lt;br /&gt;&lt;br /&gt;Haven't managed to do any work on PrefsMenu, but I might have some time today. I've got to write a quote for ImageSmith though, I'm not sure how long that will take.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13188563-111758571261705378?l=abhibeckert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abhibeckert.blogspot.com/feeds/111758571261705378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13188563&amp;postID=111758571261705378' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/111758571261705378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/111758571261705378'/><link rel='alternate' type='text/html' href='http://abhibeckert.blogspot.com/2005/06/been-away-for-few-days.html' title='Been away for a few days'/><author><name>Abhi Beckert</name><uri>http://www.blogger.com/profile/02320249507248046773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13188563.post-111735752724250332</id><published>2005-05-29T19:04:00.000+10:00</published><updated>2005-05-29T19:05:27.243+10:00</updated><title type='text'>PrefsMenu progress update</title><content type='html'>Despite all the fuss with moving house, I'm managing to get somewhere with PrefsMenu 2.0. It's shaping up to be a really nice update, though I'm going to have to scale back a few of the features to get it released asap (the current version of PrefsMenu doesn't work properly under Tiger). I've still got a few things left to implement, but I'm going to shift as many of them as I can to v2.1, so hopefully I'll be able to release an update soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13188563-111735752724250332?l=abhibeckert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abhibeckert.blogspot.com/feeds/111735752724250332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13188563&amp;postID=111735752724250332' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/111735752724250332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/111735752724250332'/><link rel='alternate' type='text/html' href='http://abhibeckert.blogspot.com/2005/05/prefsmenu-progress-update.html' title='PrefsMenu progress update'/><author><name>Abhi Beckert</name><uri>http://www.blogger.com/profile/02320249507248046773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13188563.post-111735688173178227</id><published>2005-05-28T18:52:00.000+10:00</published><updated>2005-05-29T18:54:41.736+10:00</updated><title type='text'>We've moved</title><content type='html'>Hey guys, I'm finally in our new house! It's excellent, I wish I had a digital camera to show you. Anyway, it's air-conditioned in every room (important in Cairns), great yard, really nice lighting in all of the rooms, nice floors, double garage (with remote controled openning), deep swimming pool, quiet suburb but close to the city, reasonably good drive between here and work (long way, but traffic flows well).&lt;br /&gt;&lt;br /&gt;We've hardly un-packed anything so far, there's a big pile of boxes in the lounge room, and an even bigger pile in the garage. But it's getting smaller slowly, one break from work at a time.&lt;br /&gt;&lt;br /&gt;Internet access is a bit of a problem, so I'm writting this into jNotes for now, later I'll go online and post it. We're stuck with dial up for at least a week while we wait for ADSL to be connected. The main problem with that we get a lot of phone calls, and can't really afford to block it any more than necessary.&lt;br /&gt;&lt;br /&gt;I half set-up our network this morning before going to work. Didn't have much choice for the Airport Base Station's location, as there's only three phone outlets in this house: office; living room; and main bedroom. Both the office and the main bedroom wouldn't provide wireless access to the whole house, so I chose the living room. I wasn't very happy with this at first, since it meant having a power lead running allong one of the walls of the living room, but then I saw the people who lived here before had drilled a hole in the wall (probably for an ethernet cable) right next to the phone outlet. The other side of that wall is just going to be used as a bedroom for visitors, so I ran the extension lead through the hole (had to remove the plug from the lead, pretty small whole). Nothing too difficult, but after a whole day of packing, shifting, cleaning and driving I enjoyed every second of it.&lt;br /&gt;&lt;br /&gt;Lita, Shane and the girls also visited today, the girls were just as actian filled as usual, and I'm glad they weren't here too long, I need rest for work tomorrow! They'll be coming again next weekend, but for two days instead of a few hours.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13188563-111735688173178227?l=abhibeckert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abhibeckert.blogspot.com/feeds/111735688173178227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13188563&amp;postID=111735688173178227' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/111735688173178227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/111735688173178227'/><link rel='alternate' type='text/html' href='http://abhibeckert.blogspot.com/2005/05/weve-moved.html' title='We&apos;ve moved'/><author><name>Abhi Beckert</name><uri>http://www.blogger.com/profile/02320249507248046773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13188563.post-111710709422248228</id><published>2005-05-26T21:26:00.000+10:00</published><updated>2005-05-26T21:31:34.226+10:00</updated><title type='text'>Moving tomorrow!</title><content type='html'>We're moving to Bayview Heights tomorrow. The new house is heaps better than this one, but the extra $40 a week is gonna hurt. I still haven't packed any of my gear yet, not that I'm to worried, won't take long.&lt;br /&gt;&lt;br /&gt;I can't wait to finally see the new house, moving is stressful. Sorry guys, but you won't be seeing me in iChat much over the next few days, even though I'll prolly be spending a fair amount of time surfing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13188563-111710709422248228?l=abhibeckert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abhibeckert.blogspot.com/feeds/111710709422248228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13188563&amp;postID=111710709422248228' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/111710709422248228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13188563/posts/default/111710709422248228'/><link rel='alternate' type='text/html' href='http://abhibeckert.blogspot.com/2005/05/moving-tomorrow.html' title='Moving tomorrow!'/><author><name>Abhi Beckert</name><uri>http://www.blogger.com/profile/02320249507248046773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
