iPad + home automation = potential
posted on 2010-01-27

Like many other tech watchers out there on the west coast, prior to eating breakfast I was on twitter following the iPad announcement. The consensus on twitter is that the iPad is 'just an over-sized iPhone'. A+ on humor, tweeters. It certainly looks like a giant iPhone. This isn't a bad thing by any stretch, of course, but this fact speaks to the market viability concerns of the tablet. It's too big to fit in a pocket, underpowered as a laptop, too power hungry as a reader, and doesn't have a physical keyboard. Apple does have a really good chance though, of shaking up the home automation market with this thing. The main reasons for this? First, the process for developing software for an industry leading line of devices in this space, Crestron panels, is so unwieldy, expensive, and prehistoric (like a dinosaur), it is all but inaccessible to independent developers. In contrast, the iPad is programmed using the astoundingly successful iPhone SDK. Second, a Crestron panel installation involves expensive Crestron trained technicians. The iPad is installed by nobody. To serve as an illustration of these points I've created a hypothetical developer, Joe Developer, or JD. We'll follow JD on his quest to choose a platform to develop his new home automation app. Joe is very excited.

JD starts his process by examining Crestron. Like Apple, Crestron has hardware/SDK platform lock in. Yes, Crestron has an Apple-esque SDK model for their devices. But there are big differences, JD realizes. First of all, there's cost. The buy in for the SDK is very expensive (A couple years ago, it was $10,000 give or take a few thousand. I'm unsure what is now because I didn't want to sign up for anything at Crestron's site, sorry). JD signs up for an account at Crestron and finds/gets the SDK, which we can safely assume is not free, and is perhaps mailed to him on CD-ROM because that's just how Crestron rolls. With pricey SDK in hand, JD realizes it is quite clear from Crestron's site and around the web that you need to become a Crestron Authorized Independent Programmer (CAIP) in order to compete in the market and make money. This requires classes (in classrooms), and coursework specifically for Crestron panel software development. This too costs money, and at the end of the day JD has put a lot at stake to develop for Crestron panels. In addition to what is already at stake financially for JD, skills he learns here are really only applicable to Crestron panels. JD also realizes that he needs to be hooked up with Crestron authorized installers/resellers to get his software onto an installed panel and into the hands of an end consumer of his software.

JD is dismayed. Developing for Crestron is a very cumbersome and expensive process. The term 'insurmountable barrier to entry' keeps popping into his head like an angry butterfly. JD decides to check out the new iPad as a platform for his ideas. Within seconds, a quick google search for the iPad SDK informs JD that the iPad is programmable using the iPhone SDK. JD thinks to himself that some of his friends have been doing iPhone development and one of them has even made some money. The iPhone app store sure seems like a good place to sell his app (because it is). Plus he'll be simultaneously learning how to develop for iPhone using Objective-C. He already knows C so it won't be too much of a stretch. JD notices he needs a Mac, which he luckily has, so he signs up for an Apple developer account. After 5 minutes he's downloading the SDK for free and at this point JD is thinking that this is pretty easy compared to Crestron's mess. Also, it becomes clear to him that he doesn't need anyone else in this process. Apple is doing the work of selling the hardware, and he just needs to develop some software and the end consumers just download it and hopefully they like it. JD thinks to himself, 'It sure was easy to get started with iPad development. Now i can just concentrate on my app.'

JD is happy, and that's good. JD is very independent though, and probably won't be developing for exactly the same kind of scenario that you would find in a Crestron installation. Crestron installations link together custom systems of electronics and devices controlled by the panel in residential, commercial, and recreational spaces. I think that Crestron's continued importance, specifically in the home automation space, has more to do with adoption of connectivity standards by device manufacturers than anything. The landscape for Crestron is likely to change as DLNA compliance and other standardization efforts advance, with offerings like the iPad and inevitable Android based clones on the market. When these systems and devices start implementing standards, and do start working together in a standard way, Crestron would do well to open up their ironclad development model. Otherwise, they stand a significant risk of losing developers and ultimately market share. The iPad SDK and Android SDK offer JD (and non-hypothetical developers) much more accessible developer tools and a proven software distribution model without all of the institutional overhead you get with Crestron and co.

Intava no more
posted on 2010-01-19

Do you remember those bracelets that consist of two black tubing things folded in a 'secret' way that make a loopy bracelet? These were big punker things to do in the day; I was given mine by a punker anyway. I got my bracelet in 2001 or so, right around when I first started getting to know programming in any money making capacity. I'm a little fuzzy on if I was taught how to make the bracelet, or if it was given. What I do remember, however, was that you weren't supposed to take it off. If it came off, it came off of its own volition.

When I had received my bracelet, I had recently graduated from college, recently ended a long term relationship, and recently joined a punk band instead of couch surfing with my brother whilst searching for a job in LA. To me, the bracelet was a badge. I thought of my little bracelet as small note, that read that I was more than my tame exterior could imply to the casual observer. My little bracelet said in a small hushed voice, 'hey, my owner follows his heart, and he rocks at least a little. So now you know.'

I was laid off today, and within an hour my bracelet broke. I work with abstractions, and I consider myself particularly tuned to symbolism. I can't help but feel the hand of fate at work here. After having witnessed my bracelet's demise, my wife quipped, 'Today is a day of change'.

Prior to Intava, I was at Cornish College of the Arts going after a Design BFA. I did love it there, was doing well, and can remember vividly the decision to go to work instead of returning the following fall. The problem with Cornish, was that I felt this overwhelming pressure on me, like a giant invisible hand pushing me out on the path of ... making money. Well, not so much a hand as a collection agency. Point is, I needed to get out there and start using skills instead of learning more skills.

I took the job at Intava and it was a tremendous ride. I met Ben Huh, we actually got into an altercation over requirements in a Business Requirements Document (epic fail Ben... epic). He did buy us all sushi though, so he made up for it in a way. I surveyed the aftermath of a fallen crane in Bellevue, some poor lawyer watching TV was killed by a crane falling over 800 yards away. I had countless coffee's from Cafe Ladro in the Expedia building and many tasty quiches. I witnessed the utter confusion of Sprint through numerous unreasonable projects and amazingly disjointed requirements. I walked out to a quiet lobby at 9 pm more times than I can count.

I knew this was coming, eventually, obviously. Somehow I thought there was going to be a little more notice than no notice. Though, of course there would be no notice. There is never notice when something life changing happens, it just happens. What next? If I was younger and less salty I would try to guess. As it stands, though, I am very salty and more than a little sad so I'm just going to leave the guesswork to ________(intentionally left blank).

A couple workflow musings/tips re: Flex
posted on 2009-01-25

We have this fairly large flex application growing at work, and at some point a few releases back the main application project (shell), started to take a tremendously long time to refresh/compile within Flex builder (3). Flex builder has certainly come under fire for speed issues in developer work flow; to the point that Gumbo has 'Developer Productivity' as one of the three primary themes (linky). Undaunted by the overall pessimism out there on this tip, I sought to find some ways to speed things up. After all, I am (was?) a flash developer to start with, and we have ALWAYS had to find ways to work around...uh 'limitations' with the tools.

The first step, was to identify what happened to cause such a drastic increase in workspace build time. This led me to one sub project in particular that used to be a module (more on this later), but got rolled into the main application due to some fairly dumb reasons. Anyway, I noticed that were were many many embedded images; so step two was to try and roll all of the images up into a swf and reference the symbols in the Embeds. The idea was, if the images are pre-compiled into a swf, the mxmlc would have less work to do, and decrease the build time. Well, after re-factoring all of the image embeds to use symbols in a swf, like so Embed(source='myassets.swf',symbol='myImage_mc'), the speed did NOT decrease in any significant measure. So, this technique is only really useful for workspace cleanliness and organization, not workspace build performance.

Interesting, and stuff...but still no solution. The next thought was to make the project back into a module that would be loaded in on demand into the main application. Now, ironically one of the reasons this sub project was re-factored away from being a module was work flow related. The dev working on this originally was getting tired of republishing the module swf and copying it into the main application deployment during development, so he just made it a component and linked the source folder of the sub project to the main project. Then he just directly embedded the module subclass into the main application (ewwww...).

So the trick was now to set up the module project so that it was essentially a harness for the module, with any main application dependencies accounted for or stubbed. The main application then would just have the module built in the main build script and said module would run pretty much as it does in the development harness. This way, the module can be developed separate from the main project. This is also a good way to expose poor application design and coupling of your module to your main application, plus you get a debugging harness. As long as your module isn't directly coupled to much (or anything) in your main application source path, making the harness should be pretty straight-forward. To make sure the module is included in your debug compile of the harness, include it in the modules list under the project properties under Flex Builder (project->propertes->Flex Modules). When I got this working, the workspace build time of the main application dropped from roughly 50 sec, to 12. The harness build time went from 40ish sec to 3 ish. I had found my solution.

This kind of setup really only is worthwhile if you are working with a really big Flex application; one where the modules themselves are full fledged applications in their own right, and you will be compiling (previewing/publishing whatever) many times in a day. I know I compile frequently, probably 40-50 times a day; more sometimes if it's predominantly visual/layout stuff. In that kind of scenario there are big time savings to be had here.

There are still some improvements possible I think, one is to compile app/module images into a Class, say 'MyModuleImages' as public static variables, then compile an swc with only that class included. Then you would just link the swc as a library within the project. Embeds within the application would then be replaced with references to the embedded images in the class, CSS embeds would go to ClassReference() directives, etc. The build script would build the images.swc prior to building the app that's dependent on them. This would remove the image embeds from the workspace update ( I think), which would probably decrease the workspace update time quite a bit too.

Judi and Brenden's Wedding, continued
posted on 2008-01-01

Hello! for any of you looking for the wedding RSVP entry made in December, please follow this link Thanks!

java and me
posted on 2007-01-27

I had the fortune of getting a java developer seated next to my cube at work. And through some discussions with him he let me borrow a book on java called "Thinking in java". Being a flash developer, I'm pretty familiar with OOP, and after reading into the book a little and downloading my first netBeans IDE and playing around; i realize that Java is in some ways responsible for my current professional life.

See, before java came along (technically we can even go as far back as Simul-47 (48?)) Programming in the sphere I currently work would have been completely unappealing to me. Java 'officialized' a flavor of programmatic problem solving that focuses on easily (caveat! easy for a programmer) visualized objects and thier relationships. The procedural way would have driven me crazy. Crazy i tell you!

All of the languages I've been interested in and have programmed in are related to Java's example:

  • PHP (yes i realize that php is compiled in c and pre-5.0 was very much procedural in nature and represented weak, WEAK oop; however PHP took a major step towards the OOP paradigm with ver 5 and will likely continue to adhere to the principles pioneered by Java
  • Javascript. (a far cry from java, but syntactically similar and prototype oriented; so undoubtably was at least partially inspired by java)
  • Actionscript, yes the folks at macromedia have seemingly been plotting all along to develop a platform in many ways similar to java. The actonscript virtual machine runs compiled bytecode in the form of swfs; also AS 2.0 uses a subset of OOP structures and relations that exist in java. In fact, in many ways flash (and actionscript) in its current state is sortof like a front-end specific mini-java.

To say 'if it weren't for java' might be a little extreme; computer science couldn't stay in the track it was going. UI alone necessitated a different way of doing things, and HTTP and the rest of the web were the last straw. In summation, I'm glad java came along; cuz i like what i do. Java is important to my life because it encapsulated a new, even revolutionary, way to solve problems with a computer while actually providing a cost effective and stable alternative to the major procedural languages of the time. This allowed for an avalanche of support for the paradigm to follow which has resulted in languages that i mentioned, plus new ones on the horizon like haXe, Ruby, and others

Go Sun, go Java; thanks for all the hard work

heh, so THAT is what happened
posted on 2007-01-01

I knew something funky was going to happen on boveribit with the new year. I only coded the thing to work by month, not yearly. My own fault, I know; I just thought I would get to changing it before the year change. In fact, at one point I got curious how exactly the site would go awry so it was an experiment of sorts...right keep tellin yourself that bren. Well now I have a real good reason to go change it; It's showing the very first posts I made boveribit when I built it a year ago. Kinda cool, in that it's a little tour down memory lane. Generation...ah the days of unpaid servitude. So glad THATS over.

happy new year!

First day at generation. 1 & 1 sucks.
posted on 2006-01-31

I had my first day at generation creative today. No xerox machine and bullshit organization assignments for me. I got put diectly to work on assigment designing advertising collateral for Atomic. Pretty FREAKIN cool. I remember Cal productions and what they made interns do. I guess that's just the difference between a company like cal productions, and a real company.

Also, today I got to deal with 1 & 1 again. They really have terrible support, and now im locked into a 3 month contract. Seriously, cheap and good features...abysmal everything else.

they fixed my ssh acount access after about 5 trips through the phone system, so i guess that means I'll try and stay with them.

well, it's ready to go
posted on 2006-01-29

it's rough, it's a little unpolished....but goddamn it, it's going online.

links section done
posted on 2006-01-28

I had a small realization today.

I remember reading about AJAX about two months ago. At the time I didn't really realize what it was. But recently, as I've been developing my site, I get it. It turns out that I'm using a bit of LAMP development, and AJAX. Only a small bit though, as I'm only using the xslt part.

anyway. I'm learning stuff and it's gooooooood.

WORKING!
posted on 2006-01-27

the comments are done.

well at least they are ready to test. Now i just have to make the links section. not sure if it's going to be a separate database or just a seperate table. A seperate database is overkill, but it seems neater...eh.

management system working!
posted on 2006-01-27

barebones management system up and running!

I now can:

  • add entries
  • edit entries
  • and delete entries

    all from the same place

    thats just so freakin cool

-------- zee archives (monthly) --------