Today is a good day to code

Is The Raleigh-Durham Research Triangle the Next Hot Spot in Tech

Posted: August 12th, 2009 | Author: irv | Filed under: Uncategorized | Tags: , , , , | No Comments »

It seems that more often than not, when I am listening to a podcast, or reading about some cool new tech startup, it is in North Carolina, more often than not anymore.  I am wondering if we should rename it cloud hills North Carolina.  I started paying attention even before Apple and the governor of North Carolina acknowledged the 1 Billion dollar deal with Apple to locate a server farm there.  I have some pet theories as to why the area is hot and about to get hotter.

The first requirement for a thriving startup scene is access to capital.  Charlotte has that in droves, and is only a short “relatively” drive from RDU.  A few months ago, things there were touch and go with the financial meltdown.  Charlotte being arguably the second biggest banking city in the US after New York was looking at losing a significant number of businesses.  However, after some luck and quick work by the government, things seem to be looking up.  I would imagine that these banks are looking at trying to put their capital in something a bit more secure than financial derivatives.  Besides, what is better for PR than investing in small business and “putting America back to work.”

The next requirement is a thriving higher education community.  Between Charlotte, and the Research Triangle, there are a number of first class universities that have some of the most storied histories in the US.  Duke, UNC, Wake Forest, you name it.  There are plenty of hungry young minds looking for some VC and a little opportunity.

There needs to be solid infrastructure around broadband, electricity, and existing tech resources like hosting.  Well, they seem to have that, if Apple can build a huge server farm, and with what the universities, biotech companies, and bank tech consume as far as server resources are concerned.  There is skilled labor there, and know how.  Plus with companies like Red Hat out there, companies can find the services they need.  More importantly the state has shown that they have the governance to get it done.  The fact that they were able to change laws to meet Apple’s requirements to get the business shows that they are serious about tech.  The fact that they have working government puts them heads and shoulders above California because of that alone.

Not that I am eager to leave the Bay Area in any way shape or form at the moment, but North Carolina has my attention.  There is a lot going on outside of the microcosm of the Bay Area, and I think people are starting to take notice.


Open Source and Design: Why OSS Projects Have Strange UIs

Posted: June 9th, 2009 | Author: irv | Filed under: Uncategorized | Tags: , , , , , | No Comments »

One of the things that I have been continuously wondering is whether or not open source projects will ever get awesome UIs similar to the Apple iPhone, OS X, Apple TV, etc…  Right now I think that Ubuntu has made incredible strides toward getting a UI design that is anywhere near as awesome as Microsoft or Apple, but most other OSS projects just look ugly, or have no UI whatsoever.

Part of the reason, I think, is that most graphic designers make money off of their finished product, not necessarily the process by which they work.  If a UI designer / graphic designer were to open up their materials and process, what they did would have a little less value.  I worked for a while with a number of unbelievably talented designers, and they were very generous with their information.  So much so that someone like me who is unabashedly a programmer, who had no design skill, can now make moderately acceptable UI decisions.  The problem is that I am still far slower than they are at doing it, but one could see that if I were to have access to all of their psd files, etc… and their knowledge, I could just continuously duplicate what they had done.  I would not grow, I would not get better, but I could continue at that level indefinitely.  This would reduce the need for that designer long-term.  But this is a very small part of the problem.

Another issue, I think, is the nature of Open Source Development.  By necessity OSS is a community process, and design is not a community process.  Design is a single individual, or a group of like minded individuals’ effort to produce the art that is their vision.  If you open it up to the group, you will get 1 Million different approaches:  We should animate transitions!  We should not animate transitions!  We should copy the OS X dock! We should copy the Windows start menu!  These are things that can destroy a design process, what what you end up with is Windows Vista, or OS X 10.3 with lots of different interactions that don’t make sense to the end user.  The amazing thing about art is that the finished product always reflects the process.  If the creation process was disharmonious and quixotic, then the finished product will be that way, no matter how talented the designers.  If the creation process was focused and driven then that is how the finished product will be.

Another reason is the inherent contempt developers seem to have for designers telling them what to do.  So many developers think that they can design a series of forms, etc, and will challenge designers’ judgement.  In a OSS project, where the developers do not have business overlords forcing them to bow to the designers “crazy, insane, hard, impossible” requirements, they will not do it.  The reason Apple got where they are now is because Steve Jobs forced the developers to bow to the designers, and the result is arguably, the best working environment on a computer, technically as well as aesthetically.

I think this may be an intractable problem inherent to open source projects, barring an executive taking an open source project ( Free BSD ), and hiring a designer to draw up the UI + interactions ( Cordell Ratzlaff? ), and then forcing developers to do the impossible ( Bud Tribble ( NextStep Engineers ) ).  Also, since it is art, hiring a designer to create assets and interactions for any software is incredibly expensive, relative to the low barrier to entry of just doing it yourself.  I don’t actually have an answer for this, I am wondering how it will ultimately be resolved.


The TouchBook: The NetBook to End All NetBooks?

Posted: May 21st, 2009 | Author: irv | Filed under: Uncategorized | Tags: , , , , , , , , | No Comments »

The primary problem with my iPhone, G1, iPod Touch, etc… Is that they are too small and have too limited a battery life.  What I have been hoping for, for a very long time is a single slab tablet computer, sort of like a big iPod Touch with a 3G / LTE modem, a soft keyboard, and an open set of programming APIs so that I can make whatever applications for it that I wish.  Ideally it would have a dual core ARM CPU and great battery life, plus the option for a physical keyboard, well it seems that while I was hoping that Apple has done it, Always Innovating has taken matters into their own hands:
TouchBook

The TouchBook will run a variant of an open operating system called OpenEmbedded, a variant of something called the Angstrom Distribution, which I suppose is a distribution of the OpenEmbedded OS.  Although I have only seen the you tube video:

It seems to have the right stuff to be successful.  At $299 for just the touch part, or $399 for the touch part with the keyboard and second battery, the price is right.  The 3D in the video appears to be sufficient to compete with the iPhone, but what it will likely come down two are a couple of things:

  1. Are the APIs polished, or are they as disjointed as the normal Linux programming APIs
  2. Is Apple going to do a large form factor iPod Touch

If Apple is going to do a MacBook Touch, or a MacBook Mini, even at $499 or more, that can run the current crop of iPhone apps as desktop widgets, it will make it difficult for normal people to justify buying the TouchBook over a big iPod Touch.  Hax0rz, evangelists, early adopters, and general geeks like me may buy the TouchBook, but it is going to be an uphill battle for widespread customer adoption with yet another programming environment for developers to adapt their iPhone apps to.

On the other hand, if they were to make a pre-installed Android option available that was running Gnome or something, but could still run Android apps with little to no modification, in the same widget system as was described above, it could be interesting.

I respect what these guys are doing, its something I have thought of doing many times myself, and I might even spring for one if I get a little personal government bail-out money, but I just am afraid that I will crave whatever Apple makes.  Even though I have switched my personal phone over to a G1 and love it, and love coding for it, I still pine after the iPhone, some things are just simpler.   It really has nothing to do with the G1 hardware, while it is ugly as the offspring of sin and feces it functions adequately.  Its the OS that seriously lacks polish in places, and the unavailability of any sort of desktop synchronization mechanism is difficult at times, especially since the iTunes app doesn’t always play ball when dragging large numbers of UN-DRMed files out.

I suppose Google could modify gears to allow Android to tether to some kind of web app / web management system, that would be interesting, but I see that as being in the distant future.  Love it or hate it the iPhone and the iPod Touch, Cocoa Touch is just way ahead of any of its competitors.  If Apple would loosen up on the app store policies, allow 3rd party libraries and scripting languages on the iPhone, I think most of the competition would disappear overnight.  You’d still see the Linux guys pushing stuff for the fringe crowd, but Apple would have the consumer market locked up.

I think that the App Store situation is what is going to hurt Apple the most.  I am only developing for Android because I can’t flush out my app on iPhone, not because I can’t or because its obscene, but only because Apple doesn’t allow PHP, Ruby, and Perl, which is what my application is all about.  I can’t believe I am the only one who is playing by the rules and doing what Apple is making me do, develop for competing platforms.  I’m sure Apple doesn’t and wouldn’t care, my application applies to only a subset of a subset of a subset of the general population, web developers, and isn’t likely to bring in a ton of money for them or me, but I do it because I love the concept of building web apps while mobile.

The TouchBook is really perfect for my application, so after the Android release, I guess I’ll be doing it again for the TouchBook. Here’s to hoping people buy it, and that Apple doesn’t announce a large iPod Touch at WWDC.


If Only All Web Sites Had Browser Stats Like This

Posted: May 14th, 2009 | Author: irv | Filed under: Uncategorized | Tags: , , , , , , , | No Comments »

At this point, I just wish that Internet Explorer would just go away completely, but at least I know that the readers of this blog don’t use it.  What I’d really like to see are the Safari and Opera numbers on top as well, but I guess I can dream, speaking of dreams, what if all sites browser stats were like this:

Web Developer's Dream


I moved to wordpress

Posted: February 6th, 2009 | Author: admin | Filed under: Uncategorized | No Comments »

I’ll get all the old content in soon!


Mides and The PHP Interpreter

Posted: January 17th, 2009 | Author: irv | Filed under: Uncategorized, mides | Tags: , , , , , , , | No Comments »

Mides and The PHP Interpreter

I really want to put a PHP interpreter into Mides, the problem is my interpretation of the Ts & Cs of the App Store. It is my understanding that executing downloaded scripts is prohibited. To the best of my knowledge, downloading a bunch of PHP templates and running them through the interpreter runs afoul of that provision.

What that really means to me is that the dream that I had when I originally wrote Mides will be a long time coming. I think that with some competition, Apple will hopefully broaden the types of applications that are available in the app store. It would be fantastic if they allowed scripting languages to be included in apps. It would be awesome to have the ability to have ruby on the device, as well as PHP and Python. Really the only platform that I could put some sort of PHP interpreter onto would be Android, but for some reason I am just not super excited about it.

What I am super excited about is the Palm Pre. It looks sweet, oh well Mides fans, I guess we’ll just have to wait.

* 5/6/2009 – I am currently working on a Dalvik compatible compiler for PHP that will work on Android.  It is a bit harder than I thought, so we’ll see if I can get through it.  I looked at it on iPhone, and it still seems to be a no-go. *


Why I Will Never Specialize

Posted: January 5th, 2009 | Author: irv | Filed under: Programming, Uncategorized, java | Tags: | No Comments »

Why I Will Never Specialize

Picture of IrvinI realized a few weeks ago that I had left behind the concept of being an expert in any particular language. Not that being an expert is all bad, however the pace of change in software development makes it impractical.

For a while now my interviewing ( candidates ) has changed to reflect that belief. I frequently get into constructive arguments with my hiring managers about the types of resumes they are sending to me to screen. The problem isn’t that they aren’t qualified, the problem that I see is that they are insanely qualified. Meaning that they have for example 20 years of Java or something with no hint of other languages, or techniques. I mean how many awesome programmers have you met that had never deployed their own PHP server, or their own tomcat server. How many programmers have had no experience with shell scripting.

Actually a red flag for me is someone who has never even looked at what Microsoft has to offer. I don’t use Microsoft technologies, but I have worked for companies where I did, and I stay as informed as possible about their various languages and APIs. The reason is because I am interested in programming, not in making a bunch of money ( even though that would be nice ) or finding a cush job to lounge in. I really want to understand what is happening inside of the compiler, etc…

I mean recently I started on a foray into what I thought was the V8 JavaScript engine, which is *MEGA COOL* by the way, but I found myself looking at the assembly language commands and thinking, hmmm… I want to understand that. So I started digging in, and now I think that assembly language is cool. Boy, I’m a long way from ColdFusion.

I don’t have anything against people who specialize in one language. That is the way people hire, the reqs always are asking for 10 years experience in Java or some truck like that. I would prefer the req say, and they do when I have control of them, 10 years of programming experience, which means you could be 18 or 75, its all the same to me. The best resumes are the ones where the person has just about every language, with one at around 8 to 10 years of experience, but lots of side projects in everything from lisp to sed and awk. It is probably hurting my chances of getting ahead in my career, but that doesn’t matter, that I won’t just stick to one thing, but I really want to understand this, I want to know how it all works, and I want to have a part in making it better.

It probably means that I am a freak.


Installing ColdFusion MX 7, and the Apache Connector on Leopard Server (10.5.5)

Posted: December 31st, 2008 | Author: irv | Filed under: Apple, ColdFusion, Companies, Programming, Uncategorized, java | Tags: , , , , , , , | No Comments »

Installing ColdFusion MX 7, and the Apache Connector on Leopard Server (10.5.5)

Picture of IrvinThis weekend, I spent an unpleasant 24 hours or so working on upgrading a client’s server to Leopard 10.5.5. The actual Leopard upgrade went pretty well on the G5 XServe. The secret to that was having a crossover cable, and knowing the specific RackMac system identifier to be able to get the IP address to SSH into. The problems started with ColdFusion.

Now I am going to rant. My client has an Enterprise license, so we aren’t running on some hacked up installation, we are running a major OS that has been on the market for about a year, it has been in the hands of developers for more than a year. That there isn’t a proper connector bundled with the installation is criminal. If I wanted to go hacking around inside of source code, building crap, I could run open source. Why did we pay so much money for this? I will not write any more private applications with ColdFusion. If a corporation wants me to build ColdFusion applications, I may, but only after I try to convince them to go with something that is more likely to be supported on UNIX / Mac OS X.

I mean, how long has Apache 2 64-bit been out there, this shouldn’t come as a surprise to Adobe. I can’t trust that they will support major platforms going into the future. This is because of one or both of two things. The first possibility is that Adobe doesn’t want to put money into ColdFusion because it is dead or dying, the second is that Adobe wants to force people to upgrade to ColdFusion 8 by any means necessary. What Adobe has done is to make me look bad in front of my clients for choosing a technology that was not supported. I have already begun to write my applications in RoR, now I am definitely going to write my applications in RoR. I am done. I could have made so much more money writing code instead of screwing around with compiler flags.

The problem is that I would expect to run into trouble installing or running my software when using OSS. That comes with the territory, but when you buy software and it claims to support the platform, one would reasonably assume that the platform would be fully and actively supported. Anyway, rant over.

Now I will show how I fixed the problem:

First:

If you have a standalone installation (the only one that works), you will need to start it by switching to your ColdFusion directory, if you followed the defaults, it will be /Applications/ColdFusionMX7/runtime/bin. You will need to issue the JRun command from here ./jrun -start coldfusion. This will work, if you try to start it any other way, you will get the THIS_PROCESS_HAS_FORKED errors.

If you have installed it in multi-server, you are screwed, I have not found any decent way to get this to work.

Second:

You should be able to get to the administrator on http://127.0.0.1:8500/CFIDE/Administrator/index.cfm. Then you will need to set up the connector, this was crazy. The solution I am about to post I found on Scott Pinkston’s blog. The post is called ColdFusion 8 Leopard with apache an answer for the rest of us. It is generally for CF 8, but it will work on ColdFusion MX 7.

Here are the steps from his blog:

go to terminal window.
cd /Applications/JRun4/lib
unzip -d src wsconfig.jar
cd src/connectors/src  

apxs -c -Wc,-arch -Wc,x86_64 -Wl,-arch -Wl,x86_64 -n jrun22
mod_jrun22.c jrun_maptable_impl.c jrun_property.c jrun_session.c
platform.c jrun_mutex.c jrun_proxy.c jrun_utils.c

apxs -i -n jrun22 -S LIBEXECDIR=/Applications/JRun4/lib/src/connectors/src/
mod_jrun22.la

strip mod_jrun22.so

Now run the connector configuration:
sudo java -jar /Applications/JRun4/lib/wsconfig.jar

After it finishes, run this command:
cp /Applications/JRun4/lib/src/connectors/src/mod_jrun22.so /Applications/JRun4/lib/wsconfig/1/mod_jrun22.so

sudo apachectl restart

The order of the files to be compiled is *IMPORTANT* I was working on a Dual-G5 2.3 GHz so my command was /usr/sbin/apxs -c -Wc,-arch -Wc,ppc64 -Wl,-arch -Wl,ppc64 -n jrun22 mod_jrun22.c jrun_maptable_impl.c jrun_property.c jrun_session.c platform.c jrun_mutex.c jrun_proxy.c jrun_utils.c.

You will get some warnings, you can ignore them. If you get an error saying something about functions that start with an underscore in your apache error logs, when you try to start it, you have the file names in the wrong order. If you see an error that says it found the module, and it is mach-o, but it is the wrong architecture, you are probably using -WI (I as in imitate) instead of Wl (l as in Larry).

Step 3:

Make sure to add the add handler to your httpd.conf. in the ifmodule for mod_jrun22.so. Mine did not install this by default, so my ColdFusion templates were coming up with the code showing up as plain text. Here is the default handler: AddHandler jrun-handler .jsp .jws .cfm .cfml .cfc .cfr .cfswf.

I hope this prevents anyone from going through the ridiculous configuration nightmare that I went through this weekend. I apologize for the rant, but I have some other cool projects that I would rather work on than spending forever hacking around with my application server.


What Does a Sun Bankruptcy do to Enterprise?

Posted: December 29th, 2008 | Author: irv | Filed under: Companies, Programming, Sun Microsystems, Uncategorized, java | Tags: , | No Comments »

What Does a Sun Bankruptcy do to Enterprise?

Picture of IrvinFor more than a few weeks now, I have been pondering some broad implications of companies that we all rely upon failing. Probably the grand-daddy of these is Sun Microsystems.

Normally I wouldn’t be concerned about tech companies going away. It is part of the normal advancement of the art, but in Sun’s case, it does concern me. While I don’t share many developers’ blind love of Java, or Solaris, or any product really. I do feel that Sun has given a tremendous amount to the software engineering community and would be sorely missed if they were to go belly up. At the time of my writing this, Sun’s stock is at $3.41 per share, and their market capitalization is 2.52 Billion, less than Sun has on hand in cash.

I don’t necessarily think that Sun is in financial trouble, but it does seem that there are a bunch of products that they release that are mostly not for pay. Not to mention that their financial performance may / should, be giving some corporate IT departments pause as to their dependence on their technologies. Many companies rely on support from Sun, and if that were to transition to the community, the level of response may not be sufficient. The question I would ask is, “Will a Sun Bankruptcy Drive Corporations Back to Microsoft?”

Unfortunately, I can’t see any other alternative at the moment. There are millions of lines of code out there written against the Sun JVM, and while the JVM is now mostly open source, and so is Solaris, the companies that count on those lines of code typically are not interested in maintaining that code as well. Without Sun, you could have JVM forking, Solaris forking, etc… where a particular application written against Java or Solaris may not run in a given company. Corporations would have none of these problems if they used the .net stack for application development.

Now, I am not advocating that all corporations out there should drop their Sun implementations and run to Microsoft, but what I am saying is that they should prepare themselves for a little instability. I tend to use Ruby and the Rails framework for most everything anymore, but I have come to be somewhat skeptical of the gems that I am using. I am also aware that there is currently no support beyond community support for most of these items, and the developers working on them could get bored and go away. So for functionality that is more than a nice-to-have, I tend to write it myself.

Hopefully this will go away when we start to see professional gem houses, but in the near term, I would hope that companies would begin to diversify their stack a bit so as to mitigate the cost, such as re-engineering their non-core systems to be less dependent on core software from a particular vendor. The last thing you would want would be to find a showstopper bug in something you were about to release that was based on a technology from a shaky vendor, that holds up your business process.

Most good IT shops already support a variety of technologies so as to not be locked in to any one particular implementation from any given vendor, but enterprise developers should not continue to believe that Sun or Java will be around forever in its current enterprise-blessed, no-brainer form. I think serious unbiased evaluation of technologies to be included in future products should gradually become the norm. If Microsoft wins, so-be it, there is some good stuff in .net, but I would hope that Ruby and PHP would benefit from this situation.


Setting Up VirtualBox Headless on Ubuntu 8.10

Posted: December 28th, 2008 | Author: irv | Filed under: Companies, Sun Microsystems, Uncategorized | Tags: | No Comments »

Setting Up VirtualBox Headless on Ubuntu 8.10

Picture of IrvinOver the weekend I have been setting up a RoR rig with MySQL replication. The problem I have is that I only have one machine that I can use of all of this. My solution is VirtualBox Headless.

The first step is naturally to install Ubuntu Server 8.10. There is no UI. The next step changed what should have been a 5 minute task into a 3 hour task. Pay close attention… If you use apt-get install virtualbox, you will get virtualbox 2.0.4 OSE version. The open source version does not have the built-in RDP server. So when you try to issue the command sudo VBoxManage modifyvm “vmName” -vrdpport 4389 or whatever, you will get an error back. My solution was to download the non OSE version from Sun’s VirtualBox site. After that, just issue the normal Debian dpkg command to install VirtualBox 2.0.4 non-OSE. There is an issue with the kernel driver not being updated with the kernel that may cause problems later, but I didn’t do anything with that.

After you get it installed, follow the instructions here : https://help.ubuntu.com/community/VirtualBox for getting VRDP up and running. You have to create a new PAM authentication file.

After that things work as advertised. Remember, if you want to run headless over VRDP, you *must* install the non-OSE version directly from Sun’s VirtualBox site. Follow the instructions there if you want for the kernel driver to automatically update and recompile if the kernel changes.