Archive for the ‘software’ Category

Snow Leopard is out

Sunday, August 30th, 2009

and while I don’t have my copy yet, I’ve been getting the betas and I know what’s in it. There’s a lot there, but its not visible to the average user or non-programming so-called technology “pundit”. This is unfortunate. They are tossing it off as a “service pack” but its more like having your car detailed and the tiny single cylinder engine replaced with a fuel injected turbo V8. It looks like the same car – but it can go many times faster. As applications get updated, it will get even faster. How?

The core OS has been restructured to allow it to take advantage of all those cores in newer computers. So while we have the same body, it is all new under the hood.

The truth is that 3GHz is about the theoretical limit for clock speeds for the Intel x86 family. They’re not going to get faster. They are getting cheaper though. So now, instead of getting a processor that’s twice as fast every cycle, you get twice as many 3GHz processors. That’s all well and good, but much of the core OS has been built assuming one processor. So even though I’ve got a dual quad with 8 processors in the box, most of them are idle most of the time. That power is wasted.

Enter Snow Leopard. It restructures the way the OS divides and schedules tasks and supplies new apis for applications to parallelize logic to much improve processing throughput. Besides letting programmers take advantage of all of the Intel cores – OpenCL makes it easier to offload vector processing to the graphics processor – a largely underutilized resource most of the time.

The average non-technical user won’t see much change and that’s no surprise – but if this were “just a service pack” there wouldn’t be so many broken programs that need updating. The change is substantial and at this point, most application updates going forward are going to require Snow Leopard. Its not practical to build apps that take advantage of Snow Leopard and still work on older releases so this is the line in the sand.

Fortunately, Apple realized this and Snow Leopard is priced “almost free”. I’m not one to push people to upgrade working systems without a compelling reason.

However, eventually an update or a new application will come out that you’ll want and it will require Snow Leopard and this is why it is good that Apple made the barrier to updating very low. Certainly a forthcoming update to Jambalaya is going to be Snow Leopard only.

My Social Calendar

Tuesday, 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.

BaseTen Rocks!

Friday, 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.

Summer of Rails

Sunday, September 21st, 2008

I’ve now worked on three different Rails applications. One of them was from scratch, the other two I took over from someone else. The thing I like most about Rails is Active Record – it just works and it is easy to use – even for existing databases (although it takes a bit more work to specify the mappings).

I have a project coming up that would probably be a great Seaside candidate. The database has to be postgresql (according to the client). There is a native cocoa component – I’ll probably give BaseTen a try. For the web component, the obvious candidates are Rails (although I don’t know the state of Rails with PG – only mysql), and Seaside/Glorp – but I need to use Glorp to work like Active Record since the DB will be the master source of record for the schema.

Sadly, it doesn’t look like Glorp’s ActiveRecord on Squeak is ready for prime time, I might have to kind of finish that implementation.

Hoppin’ on the Rails

Friday, April 4th, 2008

I’ve got two new clients – on is taking over expansion of an existing Ruby on Rails application. The other is the replacement of the application I wrote in the previous article. I want to stick a new codebase on the existing database. Since rails excels at CRUD and I’m short on bandwidth and hand-off-ability is a concern with the new development, I’m going to use rails for that one too.

I mean, I can only learn so many frameworks at once. So here we go – working through Agile Web Development with Ruby on Rails.

Software Design Tip: Minimize Number of Languages

Tuesday, April 1st, 2008

I was recently asked about taking over support for an existing application. I’ll leave out what it does – suffice it to say it is web based, has a simple 3-5 page UI for the public to buy something, and about a 15-20 page set of back end interfaces for trained customer service and admin people to use. So less than 30 screens overall mKay?

The application was said to be written in Java. I know Java – I don’t like it, but I know it. If its small, I could be persuaded to pick up the maintenance.

However, I got a source drop and I was totally appalled. First, it suffers from the usual Java framework-itus.

Its J2EE – so we got Jetty container. They used Hibernate – so we have generated Java code based on some XML schema files. There’s also a mysql database – which duplicates the information in the Hibernate XML schema files. It uses cocoon – cocoon make use of xml and xsl to define navigation and transformations. There is also reporting that uses xsl. Workflows use flow – more xml only they used the Javascript extension so the workflows are actually defined using server side javascript.

Got all that? We have Spring, Coccon, Flow for Javascript (flowscript), Hibernate, Jetty, Javascript, Html, CSS, SQL, XSL and god knows how many dozens of distinct flavors of XML. For a 25 page web app. Wait, did you notice I didn’t mention Java? There is Java – the Hibernate generated classes are used – but indirectly – they may as well not exist at all since all the application code is some fractured XML or Javascript fragment stashed who knows where.

It seems we’ve lost track of something here. “Locality of Reference” In general, all the stuff that deals with the product selection page ought to be visible by looking into the file representing that page, then maybe drilling into components. The problem here is that, everytime I have to drill down, I have to switch languages. And context switches are bad for programmer productivity – mKay?

I’ve turned down the job. I don’t have time to learn all that junk for this little app. The client needs a new installation – for 25 pages that do mostly CRUD to mysql. If I do it, I’m thinking plain old PHP with an ORM. If I can find an ORM for PHP.

So far I’ve looked at Doctrine (not yet ready for production but it looks cool), Propel – and some others. The really off-putting bit is their slavish insistence on creating the xml mapping file – just like Hibernate. Of course, I have an existing database. The XML file they want is in the db. It just isn’t XML. Still, all the information is available for query – so why are they bothering me with this junk? Read the damn schema and make me some classes. I’ll eliminate the many to many mappings by hand. Sheesh. No wonder there’s a software crisis.

Hey framework people, stop making me write monkey code – figure out how to eliminate extra work – not make it. One meta model is enough.

Mike Arrington, Software Pirate

Monday, March 24th, 2008

The ever clueless and abrasive Mike Arrington says something even more ridiculous than usual. I can see both sides of the Bebo thing and frankly, social networking makes me yawn. I have no patience or interest in it. Seems like a phenomenal waste of bits to me. Musicians uploaded their music without expectation of compensation. So sure, they’re probably not ‘entitled’ to a payout. OTOH, Bragg’s point is well taken – the musicians made them successful and it would be a nice gesture to give back. But I wouldn’t hold my breath on that. They’re internet entrepreneurs. Thus greedy bastards by definition.

OTOH, the thing that really ticks me off is this little comment by Arrington.

…it costs exactly the same to produce one copy of the song (the first one) as 10 million copies. Simple economics takes over. Free.

Which, if true, implies that Microsoft ought to be giving away Vista, Office, and everything else. Because Music is Software. It costs as much to develop as software, it takes every bit as much time, talent, and skill.

Just because you can make a second copy for a buck, doesn’t mean that’s all it is worth. If it costs $30k to record a song (which is kind of typical these days), and we are expecting to sell 100 copies, then this song needs to make $300 per copy to break even. If its 10 copies, then its $3000 a copy. The same economics apply as software. Just like there is free software, shareware, and commercial software, there are many business models around music. No single model is right all of the time.

Arrington should stick to his little blog about the shiny things – he obviously knows fuck all about the economics of creation.

JambaLaya site updated with documentation

Thursday, March 20th, 2008

mainscreen.png

Today I uploaded a whole bunch of shots and comments – primarily to serve as a proxy for a user’s manual. It is such a straight forward simple app, I can’t imagine it needs much of a manual. Basically live music performance oriented MIDI and audio processing.

Anyhow, check it out. http://www.audiofreakshow.com

About the only thing preventing a full on launch is the back end stuff to take payments and issue serial numbers, and finishing up the serial number handling in the application. It doesn’t adequately cripple things if there is no serial yet. Few more bottlenecks to install checks into. Also, one little bug with lyric editing. Minor, but a little annoying.

Curse You Google!

Thursday, March 20th, 2008

A friend sent me an email telling me my site has been blacklisted by Google – largely because some spammer (die, spammers, die) hacked a message and put a bunch of link spam in. I really have to question the security of wordpress. If they can’t keep it clean, I’ll have to migrate to something else.

There is an interface to request removal from the blacklist, but while you can be blacklisted in seconds, it apparently takes several days to get off of the blacklist. Nice.

JambaLaya approaching final candidate

Wednesday, March 19th, 2008

I’ve been working on it like crazy, stomping bugs and adding polish. It is pretty close to RC. Still need to add registration and complete the website infrastructure to automate dispensing of serials. I’m sure it will be huge because I just added the killer must-have feature.

Behold – Murph and the MagicTones Mode!

murphaboutbox.png

JambaLaya covered in “Thick Red Shag!” No other Audio Units host has that! Take that MainStage!