January 24th, 2009

My daughter is turning 8 and wanted a birthday cake that looked like Pikachu. So we made one – it was a family effort. Made from one 9″ round for the head, a 9×13 square for the body and the ears cut from another 9″ round. The tail is just pieced together out of trimmings with the biggest bit the center of the round used for the ears. Fruit rollups for the red parts, oreo eyes with mini marshmallow pupils and black piping frosting for outlines. The underlying cake is chocolate. She is so excited she didn’t sleep at all.
This is my first cake construction, but after watching Ace of Cakes for a couple years, it seemed pretty straightforward to do.
Posted in personal | No Comments »
January 15th, 2009
This week is the North American Music Manufacturers annual trade show. There’s going to be a dinner with users and employees of DP, a program I use to record music. I’m hoping to show off Jambalaya. What would be the coolest is if some established company would take over marketing Jambalaya and hired me to do future development. That would be my dream gig more or less.
OK, its not likely to happen, but I can dream. Although if things don’t pick up next month, marketing that is likely to move to the forefront as I’ll have nothing else going on.
Posted in JambaLaya, MIDI, music | No Comments »
January 13th, 2009
I’m fed up with git. I know its the hot new Linus developed ultra distributed no master repository version control system with extra dietary fiber these days. But overall, the user experience sucks and the tool provides no help at all and I end up in the weeds with it daily working with just one other developer. I would not choose it again.
First off – there’s a zillion tutorials for it – all incomplete and leaving out crucial details – which makes finding information about it worse than having no tutorials. You can waste hours looking at trivial blog posts about git that don’t answer the key question about how to manually resolve conflicts.
Second, git doesn’t seem to deal with XCode project files at all. Trying to tell git to ignore them via the config flags doesn’t seem to work. Our project files are ALWAYS in conflict and while we keep resolving them by doing git add – we never get a chance to try to reach common ground and this is actually worse than having no version control on the project file.
Third, I have yet to figure out how to get git to actually put the differences in a file so I can fix them. It continually complains about merge conflicts without actually putting the conflicts where I can find and fix them.
So, I’ve come to conclude that I just don’t “get” git’s model (despite reading a few dozen papers around the web on it) and I never had nearly so much trouble with plain old CVS. So I don’t see what problem git “solves” but I do see a large number that it creates.
Maybe there’s a book somewhere putting all the pieces together…
Posted in Uncategorized | No Comments »
January 6th, 2009
In an effort to meet more people and explore opportunities, I’ll be at the San Diego Web Professionals Meetup on the 15th and the Small Business Meetup on the 12th.
Hopefully something will come up.
Posted in software | No Comments »
December 17th, 2008
The wrist thing took three weeks to heal, but I’m better and working again.
But now my availability is ramping up.
My San Diego contract is wrapping up early – at the end of January. I’ve been fully booked for so long that I haven’t got any leads and, really, I’m just looking for stuff I can do remotely. I like San Diego and I’d like to stay there so I guess I’d better get off my tail and start networking there.
If you’ve got any leads on software projects, send them along. My preference is Cocoa/iPhone, but web work is always good. I guess this is the time to really start marketing Jambalaya too.
Posted in programming | No Comments »
December 1st, 2008
Ergononics are so important – when I let them slide I end up with numbness and tingling in my small fingers and wrists and aching in my forearms. Ulnar nerve irritation is the problem as far as I can tell. So I’ve been forced to take the last couple weeks off to heal – no computer time. Checking email but nothing else this week.
Posted in general, health | No Comments »
November 13th, 2008
As mentioned before, I’m working with BaseTen for access to postgres. One thing my client wants is the ability to just enter a search term and find most anything (Googly style database search). This isn’t so hard, you just take any string and do case insensitive like searches on the most likely fields in the database in a big OR statement.
BaseTen builds queries out of NSPredicates and NSPredicate supports an operator ‘like[cd]‘ where the c option is to ignore case and the d option is to ignore diacriticals (accents and other funny squiggles found in non-english text). Postgres does not offer an option to ignore diacriticals in search. So how to support this?
The good news is that the unicode characters are laid out such that taking the numeric value and taking the modulo of 128 (the size of the ascii table) results in the stripped version.
I wrote a PgPL/SQL function that converts every character in a string to its ascii equivalent, then compare those.
CREATE OR REPLACE FUNCTION asciify(unicode text) RETURNS text AS $$
DECLARE
translated text;
BEGIN
translated := '';
FOR i in 1..(char_length(unicode)) LOOP
translated := translated || chr(ascii(substring(unicode,i,1))%128);
END LOOP;
RETURN translated;
END;
$$ LANGUAGE plpgsql;
The asciify’d versions of Panama and Panamá will end up being Panama and I can do searches like
SELECT name from countries where asciify(name) ~* asciify(?);
and get the equivalent of a case insensitive and diacritical insensitive ‘like’.
Tags: database, postgresql
Posted in programming | No Comments »
October 8th, 2008
It seems a bit odd to hear of the collapsing economy when I have more work than I can handle. As of last Friday I had 5 projects in queue. I busted tail and knocked one off and shipped it yesterday. But now I am running 4 concurrent development threads in 3 languages (not counting a couple of personal development experiments I’m playing with – one is a GLORP based active record implementation – the other is some enhancements for JambaLaya).
Quite a change from the beginning of the year when my one client scaled back his work drastically. Too much work is a good problem to have in a busted economy. If this continues, I may have to farm some work out.
Posted in personal, programming | No Comments »
October 5th, 2008
I’d kind of sworn off doing Java a few years ago but a little contract fell into my lap that seemed like it would be some quick cash for not too much work. I already had a lot of code in the can that would help me do it quickly. Also, I still have IntelliJ 6, which can make Java almost tolerable.
Unfortunately, part of the system required a servlet to handle http requests (using http as an RPC mechanism). I’ve used Jetty in the past with good results so I downloaded it. Despite the existence of a “plugin” for IDEA to work with it, the debugger never worked.
So I moved on to Tomcat. I finally got IDEA configured to use Tomcat, the debugger worked, but the servlet was ignored every time without any kind of error message being logged. Did it fail to link or something (it used a lot of external libs I had to bring in). No clue. I simplified the servlet to just printing “Hi there” and still it refused to load.
This resulted in a refamiliarization with web.xml files and all the rest of it. In disgust I switched back to Jetty. Jetty at least logged the errors to the console and I fixed all the link issues, but still no debug. Back to Tomcat but it still wouldn’t load my servlet at the url I wanted. Eventually, I found the invoker servlet settings, turned that on, and the servlet began to work.
The bottom line is that the entire J2EE architecture, the servlet containers, the zillion xml files specifying garbage I never want to change anyhow, all of it is MUCH TOO FRIGGIN COMPLICATED FOR WHAT IT DOES. Too many descriptors. Too much config. Too much cargo cult xml.
Compare to PHP where I just drop a file in a folder under document root and I’m good to go. Or rails, which is pretty much the same deal – just putting the file in the folder ought to be all that’s required to make the thing work.
I think this will be my last foray into Java hell. At least for a few years until I forget how stupid it all is again.
Posted in java, programming, web, web services, xml | No Comments »
October 3rd, 2008
Like a lot of long time Cocoa developers, I’ve long lamented the loss of EOF for doing database applications. CoreData is lame, too complicated and fiddly for document based development, too light weight for multi-user.
OTOH, EOF wasn’t perfect either. Having been doing Rails, I find I really like ActiveRecord. It strikes just the right balance between SQL and objects and I like its use of the database schema as the primary meta model.
So I was excited to learn about BaseTen. Right now it is PostgreSQL only, but that’s fine – I like PG. It allows for use of controllers and bindings like CoreData, but it is designed for multi-user use and it doesn’t have a separate model file – you just design the schema along with foreign key constraints and start using it. It really is kind of the best of all worlds. Bonus is it wires the database for notifications so applications stay in sync. In autocommit mode – all objects are hot sync’d. Usually this is exactly what you want for small business apps (think less than a dozen simultaneous users).
Definitely makes development of small business database backed apps easy.
Posted in Objective C, programming, software | No Comments »