xorcyst.com — xorcise your daemons

ramblings on software development, and other assorted bits.

November 5th, 2008

gRApple updated to reflect new Apple refurbished store layout

Apple updated their refurbished Mac store and in the process broke gRApple.

So, I updated gRApple to reflect the Apple site changes, it’s available here

Apple actually improved the parse-ability of the refurb store this time around so the changes were
pretty simple and involved removing some older extra bits in the code as well as making a few search element
changes to align with the new document layout.

Anyhow, get your refurb filtering and purchasing on, lots of excellent deals to be had at the moment!

Popularity: 4% [?]

October 23rd, 2008

mmmmmmm, ZFS.

First, the background info… We have a family wide NAS which houses hundreds of movies, tens of thousands of songs, hundreds of documents and all manner of other important digital content like vacation photos.

Recently, I was listening to some old music (~5yrs) and noticed some degradation (very audible pops and clicks), which is unacceptable. The NAS was running Debian and a software RAID5 (4 disks, 3 live, 1 hot spare), and had been in that form for a few years. Now, the corrupt audio could easily have preceded this particular incarnation of the NAS (which has been around in various forms for ~12yrs), but it was concerning nonetheless.

I’ve read and seen lots of phenomenal press regarding ZFS and decided this was the time to give it a go. So, I ordered some external drives from Newegg to use as a staging area, copied all the existing data onto them, loaded the NAS server up with Solaris, and created a mirrored ZFS pool from all 4 disks (I’m more concerned about integrity than overall size at this point).

Solaris supports the two primary protocols the heterogeneous NAS clients connect from, CIFS and NFS, and I have a weekly ZFS scrub running in cron. To top it off, data I/O is noticeably faster on Solaris than it was Debian.

All in all, I’m thrilled. Solaris could be less painful, but ZFS is an amazing file system that lends me confidence regarding data integrity of my many irreplaceable files.

If you haven’t played with ZFS yet, you’re missing out. Grab OpenSolaris, and explore.

You can even create ZFS file systems on top of files (instead of disks) if you want to try additional things out, but lack additional disks! Try that with a MD software RAID…

Popularity: 6% [?]

September 30th, 2008

Android SDK

I’ve been developing for iPhone in my spare time for ~8 months now (jailbreak and toolchain prior to the official SDK). It has its ups and downs to be certain (down => AppStore), but for the sake of trying out the “competition” I snagged the Android SDK and associated plugins and whatnots for Eclipse, and proceeded to implement a simple app.

My 2c is that Apple wins on most fronts (ease of use, abstraction, API, framework elegance, etc…), but Android development was straight forward enough and I do see the potential. Hopefully the competition will do the mobile platform front some good…

Android development has a long way to go, and the SDK and toolkit feels fairly hacked together IMO. I’ll probably develop for Android too, but plan to wait and see how the Android Market and G1 uptake develop before diving in completely.

Despite Apple’s best efforts to dissuade developers, by rejecting Apps among other things, I’m won’t be converting. Yet.

Popularity: 11% [?]

September 9th, 2008

Chandler 1.0

Most folks may not be familiar with the Chandler project, but it has some interesting goals. The project finally
hit 1.0 recently, and reached a point that it’s stable enough for serious usage, IMO. I’ve used at various points in the past, and I must
say that they’ve done a great job. I’ve been using it since 1.0 went live a while back, and have been very pleased.

Until now, I’ve been using the auto hide drawer note of my own creation to handle to-dos and general
note taking. Chandler stays out of your way and, for my work flow tastes anyhow, does a great job capturing things as they come up, while also dealing with longer term notes and task items. Its syncing abilities and web interface make it superior to any similar app, and I recommend it for anyone that uses GTD like apps, or other methods for keeping track of their tasks etc…

I started reading Dreaming In Code, which chronicles Chandler’s beginnings, but I must admit I found it too boring to finish. I only managed to finish 2/3 before losing interest. It is an interesting read from a historical perspective, and perhaps as an example of how other organizations develop software, but for my tastes it just couldn’t keep me engaged.

Anyhow, if you haven’t heard of it before, or haven’t checked it out, go now!

Popularity: 14% [?]

July 24th, 2008

jpeekaboo v1 released

Alrighty, I finally put the finishing touches on jpeekaboo tonight, enough for others to try it anyhow.
v1 is out, and is essentially at the same place as where I had my Stickies fork, only without
all the extra unused stuff, and in java!

native distros for linux, OS X and Windows are available from google code

and here’s its dedicated site:
http://jpeekaboo.xorcyst.com

on a related note, my foray into C#/.NET was interesting indeed, but I’m too big on having cross platform capable apps for that to ever agree with me,
and no, I don’t want to mess with Mono. So long C# and thanks for all the, er, fish ?

Popularity: 22% [?]

July 11th, 2008

jpeekaboo, java based auto hide drawer note

pwsidenote is becoming far more painful than I’d hoped to strip down and end up with what I want.

In response, I’m shelving it as is and starting a new project, jpeekaboo.
Same goal, auto hide drawer note that can be pinned to any screen edge and sync content offsite.

I also need an app that can run on linux, OS X and windows, so that’s a fair portion of the
motivation too.

I’m sorting through the prototype, but it’s coming along nicely. I’ll post the details when it’s ready.
In the mean time pwsidenote will stick around, but won’t be developed anymore.

Popularity: 27% [?]

June 26th, 2008

pwsidenote, an auto hide drawer style sticky note application

I’m always on the lookout for small apps that help me improve my efficiency. Despite many wanderings into the
land of GTD apps, I always come back to a simple plain text scheme, using either post-it like applications, or a simple
text editor. On the OS X platform, I use sidenote. On Windows, I use Stickies for Windows.

I recently found myself wishing Stickies was more like sidenote. Fortunately, Stickies is open source, so off I went with my
desire and used Stickies for Windows as a starting point to make some modifications so it’d do just that.
The fruits of that effort are an application that behaves similarly to sidenote, with my own flavor added.

I am continuing development to add other similar features as sidenote as well, but what’s available works reasonably well enough that others can start playing with it.
You can get binaries/source code/bug tracking etc. from google code, here. It’s a C#/.NET application.

Enjoy! (warning, it needs polish)

Popularity: 36% [?]

May 4th, 2008

Book: Facts and Fallacies of Software Engineering

I recently finished reading this book. See the books page for more details.
In short, it has some interesting information and is certainly worth a read.

Popularity: 40% [?]

May 4th, 2008

Centralized vs. Decentralized Storage

A number of times thus far in my career, common storage has been a sizable bottleneck in the application
frameworks in which I’ve worked. Centralized solutions are slow and easier to manage. Decentralized
ones are relatively rare, complex, and less than ideal. The best solution I know of is DRBD,
which when combined with OCFS2 or GFS can be quite good.

For example, say you have a very heavily used web application, running on thousands of
servers spread out in data centers all over the world. The most typical solution to providing
common storage to each of those servers, that I’ve seen, is by way of expensive, proprietary
fiber channel SANs and the like. In addition to the costs, this is far from ideal for a host of
other reasons that I won’t go into.

The closest commercial solutions I’ve seen that can address the scalability of my example are some of the
infrastructural storage ideas behind cloud computing/virtualized environments such as Amazon’s EC2
and Google’s AppEngine. In theory, these compute clouds handle scalability in spades, but access to
the underpinnings isn’t such that anyone outside of those company’s could utilize them elsewhere in
any meaningful way, at the lowest levels anyhow.

It should be interesting to watch this space develop in the future.

Popularity: 45% [?]

March 5th, 2008

Hotkey consoles for all

I still really like the hotkey triggered drop down console notion. I’ve been a fan ever since finding
Visor for OS X. Today, I was wondering if I’d have to come up with my own solution for Windows
when I came across an existing way provided by someone else. Granted, it isn’t as friendly as
Tilda or Visor, but it gets the job done. What I came across is an instructables explanation,
linked here.

It’s also now in my SoftwareGoodies list.

I’m thrilled, I now have hotkey triggered drop down console goodness on all 3 platforms I use daily.

Popularity: 51% [?]

January 17th, 2008

Forward, the quick iPhone call forwarding toggle

I decided to whip up a little iPhone application to help with an issue I have with the existing call forwarding feature. You have to go into settings, then phone, then call forwarding, all to enable/disable forwarding. I wanted something quicker. A toggle that turns it on/off each time you run it. The result is Forward, the quick iPhone call forwarding toggle. Head over to it’s dedicated page here for more info.

Popularity: 61% [?]

December 1st, 2007

Apple TV vs. Mac Mini as HTPC

Recently, I was running an Apple TV as a HTPC, hooked up to our TV, to watch movies from our file server (mounted via NFS) here at home. The back row interface of Apple TV was slick, but sadly the h.264 encoded movies were too much for the Apple TV’s processing power, and it regularly dropped frames during movie viewing. Major detractor. Also recently, Apple released OS X Leopard, which despite its faults, also happens to have the same media interface as Apple TV as its new Front Row interface. So, we dumped the Apple TV in favor of a Mac Mini, which does not have any trouble decoding h.264 at full clip. The experience is much improved. There are a few things missing, such as an easy way to display cover art for the movies, and Front Row lacks the You Tube plug that the ATV had. In time, I expect both will be resolvable with community solutions. Until then, the Mac Mini is a better, more capable solution. We’ve converted our entire DVD collection, and can view any/all at the quick click of an apple remote.

Popularity: 65% [?]

September 22nd, 2007

iPhone Rocks!

After the recent price drop of the iPhone I decided to pick one up from the Apple refurb store. I snagged a 4GB model for $249 + shipping/tax/etc… and coupled with 3rd party software on the intertron threw my existing cingular/at&t sim card into this bad boy to avoid the lengthy contract and high use fees. In short, it’s one of the most useful gadgets I’ve ever owned.

At present, with the help of many 3rd party apps (donate a few bucks and support these folks!) here is everything I currently use the iPhone for

  • Phone
  • Calendar/PIM
  • SMS notification device (I have email notifications from work sent to the phone)
  • ToDo list
  • Camera
  • VoiceNotes
  • iPod
  • web browsing/pdf viewing with Safari
  • eBook reader
  • Dictionary, Thesaurus, Encyclopedia (websters, britannica etc…)
  • Finding my way around on the road via Google maps (even has satellite view!)
  • Occasional stock viewing
  • Checking the weather forecast
  • SSH into various servers at home
  • IRC via colloquy

see the SoftwareGoodies page for links to all of the apps I’ve been using on my iPhone

Now, it’s not perfect, but it’s close, and it’s far better than any other smart phone I’ve used. (I’ve had work provided Treos before and hated them)
If you’re on the fence, it’s pretty hard to pass on any longer with apps like Independence which
allows for customization, SIM unlocking, SIM forcing (of existing at&t sim cards) etc… The responsiveness is almost perfect. Only occasionally do I notice
any lag in the UI. Toying with them in an Apple store doesn’t get across the full usefulness which is possible, since they don’t have any
of the 3rd party apps installed. Finally, multi-touch is by far the easiest, most intuitive interface I’ve encountered for this sort of device.

Basically, iPhone Rocks!

Popularity: 76% [?]

August 3rd, 2007

Visor (OS X) and Tilda (Linux)

I’ve been using visor on OS X for a while now, and decided to add it and a linux analog to the SoftwareGoodies page.
They are both a drop down console application that allow you to press some key sequence to “activate” a terminal. I’ve found that since I typically have multiple
virtual desktops in use, it’s quicker to access one of these drop down terminals than key over to a desktop containing terminal(s). Granted most folks have multiple monitors anymore
so it’s less an issue in that case, but even then I’ve found the drop down terminal notion extremely useful. Have a quick grep you want to run ? ctrl+space (in my config) and grep away.
Very handy for those quick situations.

Popularity: 81% [?]

July 16th, 2007

Added FreeMind to SoftwareGoodies

Mind maps rock. I’ve found them abundantly useful for thinking through problems, and for mapping out tasks to help plan a project. FreeMind is a Java based mind mapping app which is very useful. There’s a link on the SoftwareGoodies page.

Popularity: 87% [?]

July 13th, 2007

Added Smart & Gets Things Done to book page

I recently read Joel Spolsky’s short book which serves as a useful ‘guide to finding the best technical talent’. It’s the first book of the
past three I’ve read which warrants a mention and a post on the books page.

Popularity: 90% [?]

June 22nd, 2007

nifty little Ruby application: gRApple, added to itch+scratch ware page

Recently, I’ve been keeping a close eye on the refurbished apple store page for Macs. They have a number of machines, laptop and desktop alike, that go for great prices from time to time. Many of the prices are ~15% less than retail, but occasionally, they approach 30% off! There are two issues though: 1) They go fast and 2) If you’re only looking for a specific machine or config, there’s a lot to wade through.
I’ve purchased a number of machines (again laptop and desktop) for myself, and others over the years from the refurb store and have yet to have any problems with any of them. Cosmetically they’re as good as new, and they carry a good warranty as well. You really can’t go wrong with the refurb store in my experience.

Also recently, I’ve been puttering around with some other programming languages. Python and Ruby in particular, and thought it’d be neat to create something to help my predicament as listed above. The result of my scratch is gRApple. It’s a Ruby application that makes use of hpricot to parse HTML, net/smtp to fire off email, and open-uri to make a connection.

gRApple parses the refurb apple store, and based on arguments given sends an email to the address/server within with anything that matched. Combine that with a cron entry, and a cell phone capable of receiving email or SMS via email and what you have is a way to be notified at whatever interval you like when something interesting (by your metrics) shows up at the store.

It’s released under GPLv2, and can be gotten on the SoftwareTidbits page. Go. Go now. Pick up a refurbished mac!

Popularity: 87% [?]

June 13th, 2007

Added The Black Swan to books page

Yes, I’ve been reading more lately. Go to the books page to see my quick review/summary, and pick up a copy from Amazon.com.

Popularity: 94% [?]

June 9th, 2007

Added ‘The Dip’ to books page

A short book on sticking or quitting (anything) by Seth Godin. More info on the books page. Take a look.

Popularity: 90% [?]

May 30th, 2007

Finally posted some itch+scratch ware

A number of years ago (2001 specifically) I was bored, and decided to fight off said boredom by writing a small little IRC like client/server app in Java. Yes, I realize writing code as a way to fight off boredom is geeky. Yes, I am a geek. Anyhow, I recently dusted this puppy off and made a couple of small updates. This little sucker is the first of many small apps I’ve had lying around for years, all of which I’ll eventually get around to putting up on the SoftwareTidbits page. Download it. Run it. Comment if you like. My goal in posting these is that myself and others may learn something in the process.

Popularity: 89% [?]

May 15th, 2007

PhotoRec

Added a link to PhotoRec on the SoftwareGoodies page. This sweet little freebie is great for recovering deleted digital pics, check it out.

Popularity: 85% [?]

March 6th, 2007

Perceived Value In Consulting and Services

You might think that an individual, or organization, that provides a superior product or service always comes out ahead in the business world. This idea is currently most pertinent to me in relation to consulting groups and service providers representing the IT industry. I’ve dealt with a number of different consulting groups lately in some capacity or another. Some directly in relation to my job, some in relation to other folks asking my opinion on what benefits or pitfalls a given choice may have for them. There are so many consulting companies around these days, that to stand out they frequently choose to focus on how they present themselves to a prospective client, largely by focusing on pizazz in the presentation itself. I offer that it is equally important to have actual ability, and a history that shows you can implement what you’ve promised.

When it comes to choosing any one option over countless others, it all comes down to the presentation. Sure, a great product helps, but crap peddlers abound, as do their wares. Still, people and companies consume what they offer, and seem none the wiser. When the world comes tumbling down around the pathetic implementation the pizazz peddler has provided, the consumer acts bewildered and confused. What ? Why ? How did this happen ? They may say. You made a choice based on a flashy presentation, what do you expect ?

Too many times lately I’ve seen friends, acquaintances, and colleagues choose an inferior product or service simply because of the presentation or sales pitch that was given to support said product or service. I’ve seen phenomenal products tossed aside simply for lack of a ‘pretty’ presentation. Come on people, check into whatever it is you’re getting yourself into. Don’t blindly accept the flashy presentation, see it for what it is. A flashy presentation has its place, but only to draw potential customers in so that they may reap the benefits of a company’s superior ability to deliver! The consulting and services industries seem entirely content to trumpet form over function, when in fact, the latter matters equally, if not more. I will continue to hope that some day consulting companies, if only a few of them, may find the happy medium, and that I will have the pleasure of working with them.

Popularity: 97% [?]

January 29th, 2007

Added Happy Hour is 9 to 5 to Books page

Head on over to the books page for more info.

Popularity: 95% [?]

January 11th, 2007

Entitlement should positively fuel Empowerment

All companies should strive to instill a sense of empowerment in their employees. Unfortunately, the hard truth is that most inflict a negative, bitter sense of entitlement instead, which usually results in high turnover.

This phenomenon begins even before the start of an employees appointment within a company. Promises of both the written and verbal variety are stated or documented, and a reasonable person expects that those things will come to pass. Sadly, they frequently do not. If you cannot do what you say, then do not say it. If you cannot follow through on what you’ve said, provide an explanation. Is it really that difficult ?

In addition to following through on promises and matter of fact statements, a company can engender a great deal of positivity in its employees by granting their requests.
A company which has fair policies for granting requests, and that consistently does so, has considerable good will that every employee will acknowledge.
Most employees, from their perspective, do not ask for much, and what they do ask for is usually to improve their ability to do their job. Why then do so few employers grant even simple requests ? If an employee asks for something that cannot be provided, explain why to the best of your ability. Listening to requests and explaining why they will or will not be met must go hand in hand.

An employee should be able to make a request once, and get a response or explanation within a reasonable amount of time. If an employee has to ask a second time, it is already too late. The seeds of bitterness are now growing, and it takes a lot to plow them under, if it is at all possible. This begins a negative cycle of entitlement.

A company’s culture is its most important asset. A good, positive culture will spill over on to all facets of the work that company does. The converse is also very true, that a bad, negative culture will certainly negatively affect a company in many ways.

If a company has successfully instilled a positive sense of entitlement, it will assuredly result in an amazing and productive sense of empowerment too. I opine that the best way to create this critical component of success is through consistent fulfillment of promises, both verbal and written, and by listening to your employees needs. If you do what you say, and provide for them what they require (within reason), the odds are better for all that things will go well. The odds are most definitely not in anyone’s favor in a work environment full of negativity and a bitter sense of unfulfilled entitlement.

Popularity: 100% [?]

December 31st, 2006

Added Books Page

I added the books page, and a reference and comment on the first of many books that will appear there over time.

Popularity: 98% [?]