September 5th, 2008 Rusty
I’ve been on google chrome for 1 day(s) now.  The whole office has pretty much switched.  Its amazingly fast.  In fact, my post about SugarCRM slowness can now be amended to state that SugarCRM with Google Chrome is awesome!Its unbelievable what a remarkable difference  this new browser makes on a site that was completely unusable before.Considering that Salesforce.com would have cost us appx $400/mo for our small shop, I am quite pleased with the way two free apps came together to save us alot of jinga.We’re also using Google Apps for Domains so Google is now on both sides of our CRM.  wow, scary.   Â
Tags: Google, SugarCRM
Posted in Blogging | No Comments »
September 4th, 2008 Rusty
I really, really want to be balanced in my discussions regarding the iPhone SDK and Cocoa/Objective C. Its been tough. But an ahah just occurred and I feel its important to lay it out there.
http://github.com/aptiva/activerecord/tree/master
Take a look at the instructions for how to use it. The dynamic nature of Objective C, in that it uses a messaging paradigm for calling methods, means that an inheritance hierarchy can provide structure and guts. That’s cool!
Much like dynamic, interpreted languages (Ruby, Python, Asp classic), you can exercise much freedom with how your objects interact, construct themselves, etc. You also get strong typedness and the performance that comes with that.
In this example, by #import(ing) the active record framework… you can
- Create the table in your database
- Create a model class named as the singularized version of your table name
(people -> person)
for a table with:
id as the primary key
firstName as varchar(255)
lastName as varchar(255)
The required code would be:
person.h
@interface Person : ARBase
@property(readwrite, assign) NSString *firstName, *lastName
@end
person.m
@implementation Person
@dynamic firstName, lastName
@end
That’s it.
Now you have active record capabilities
NSArray *people = [Person find:ARFindAll];
Person *person = [people objectAtIndex:1];
NSLog(@"%@ %@", person.firstName, person.lastName);
Posted in iPhone SDK | No Comments »
September 4th, 2008 Rusty
My brilliant tidbit of iPhone SDK advice today is to ignore the message that xCode gives you when compilation fails and just accept that something is messed up and now you need to put on your utility boots and start digging.
There aren’t very many different compiler error messages, so “syntax error before” should be read as “start here and work back”
My issue today was that I had a circular reference. The problem manifested itself as the above error message. The actual line where the build result console pointed me to had absolutely nothing to do with the problem.
How DID I find the problem? I started deleting s#&@. I started from the line that was listed in the compiler error. I’d delete that line, build. The “syntax error before” would go away but now I had an undeclared variable. I’d delete an #import. build. AFter going to lunch and proceeding with this approach for about two hours, I deleted an #import in a file three imports away and 80 errors suddenly popped up. Yep every single one of them “syntax error before”.
The solution was simple but not very exciting. leave the #import in the “.m” file unless it is part of the interface.
So there is my second tidbit today: don’t #import anything into you “.h” that your “.h” don’t need.
Posted in iPhone SDK | No Comments »
September 3rd, 2008 Rusty
I’ve heavily embarked on my journey into iPhone sdk development and have made tremendous progress as I slowly iterate through v1 of our Ockham Research Idea Generator. The experience has certainly humbled me and made me appreciate Visual Studio more. I am not a C++ programmer so I must start from ground zero and learn a number of things I already know how to do on other platforms and in other contexts. Its frustrating to consider yourself an expert in software design and engineering yet find the simplest problems elusive and hard to overcome. This such as setting background colors, initializing screens, converting variables, appending strings, memory management and object construction are all common, basic concepts but have proved unusually inaccessible coming from a Microsoft and web development background.
I hope others may grow as I go
I plan to post regularly about the things that I learn about developing for the Mac OS platform. Specifically, I am targeting iPhone but most of the concepts are applicable. Objective C is the language of choice for iPhone development, although you can also use C or C++ (though I haven’t tried). Objective C is weird, no other way to put it. The latest Obj-C supports dot notation for properties but I just find that convenience confusing and inconsistent. "Do or don’t," I say. Rather than dots, you pass messages using brackets. The messaging capabilities are interesting and powerful. The brackets become familiar after a while and the common conventions start to look rational once you’ve been staring at it long enough.
iPhone is Cocoa
The short of it is: if you don’t find an answer in iPhone resources, try Cocoa resources, forums and docs.
Cocoa is the mac framework built in Objective C and is pretty much the equivalent of the Microsoft.Net framework. You build against the framework and your app benefits from the abstraction of details that you should not have to care about. It evolved from the NextStep platform developed by NeXT around the time the Delorean first went back to the 50’s. While the full OS X Cocoa platform has modern features like automatic garbage collection, the iPhone OS is stripped of these novelties. It is remarkably easy to crash your app doing nothing more than loading lists. Once I’ve gotten a little further, I will pick up a good book on Cocoa development and familiarize myself with where this all came from. I’m sure that will help. If you have the time, do that. Otherwise, I hope you can gleam enough from me and others like me to clamor through the bits you need.
Objective C
I really don’t care to add more languages to my alphabet soup list of 1001 ways I can skin a cat. Nonetheless, I now have another C based language to paste into my presenter bio. If it were really interesting like Ruby, or really prolific like PHP, I’d be less irritated. Sorry, I am irritated. I am sure I’ll find the magic books/forums/tutorials that answer all the questions I’ve had but, for now, its like I am trying to join some secret society where I have to prove myself before I’ll be granted my practice manual. The thing that makes it hard is that Apple seems to be telling folks not to help them educate and share with the community. Apparently, posting tutorials violates their NDA. I hope I don’t get an email stating that my opinion is covered in Section 4a of the developer agreement. I will check just to be sure
Resources are hard to find
The advantage that Ruby, Php, Javascript, JQuery, Python, Xsl, C#, yadda, yadda, yadda have is that you can Google for answers. Objective C documentation is often behind a password so that single, tiny, obscure, wonderful tidbit of eureka is buried in a 300 page Tome that you cannot see unless you log in. Therefore, simple things are difficult to figure out.
When you do find something, its nasty
Here’s the thing that’s really tarnished my opinion and caused these many paragraphs of whine… No offence to all the bright, clever YouTube kids out there who spent their summer hacking the iPhone instead of lighting their GI-Joes on fire like I did (in fact, many kudos), but a decade of programming has taught me a lot about how to program but even more about how not to. I’ve learned though trial and error, and more error, and how the hell to I troubleshoot this error, how to structure my programs so that its less costly down the road when something needs to change. Its not a matter of if, its a matter of when, will it will change. When it does, you’ll either be glad you took the time to design strong object oriented concepts and design patterns into your program or you’ll be very angry that you (or someone else) didn’t. Unless you need practice cursing or just want to expand your slang vocabulary, you’ll want to practice good design.
The iPhone tutorials out there will get you from XCode to button click but should you really load the next view in the event handler of a button click? And should you load all the data that your view needs inside the loadView method of the View? The answer to that is, "No." This is not the place for design patterns and such but I will try to cover that going forward. You can design iPhone software well, its just not the default.
I’m a Windows programmer who switched to Mac for all its charms
I’m still a Windows programmer and I love Visual Studio now more than ever. I love C#. I absolutely enjoy programming web applications and services on the Windows platform. I derive great pleasure from launching Vista inside VM where it can do me no long term harm. I delight in having the ability to continue working while being Vista’d as Windows updates cripple my Windows VM. When I am not programming, I love to surf the net using Safari, watch TV on my AppleTV, or do just about anything on the iPhone.
While Microsoft spoiled me with Visual Studio and massive developer support, Apple is the expert in consumer devices and user interface. Perhaps there is some prestige attached to being a Mac/iPhone developer. On the other hand, I would like to build upon the strong community I have experienced in the MS development world and perhaps build some of that in the iPhone developer arena.
My next post will be technical. This one was just to explain why (and get it off my chest)
Posted in iPhone SDK | No Comments »
September 2nd, 2008 Rusty
A good friend of mine has been an Obama supporter since before he was in the news. I can tell you that Obama has been "the news" ever since. We, via a partnership with the news analytics experts, track news volume. Obama being talked about 3 times the volume of his competitor is just same old, same old. Its remarkable, but its normal for him. I normally don’t say much about politics because I dislike them all so much, I choose to disengage.
Obama is a great leader
When I saw him speak for the first time, I was definitely impressed. In fact, I was inspired. I feel as though he has the capacity to make a difference in this world and will certainly be a driving force in our near and not so distant future. However, is he qualified to lead or country? I know, its been asked and the McCain camp is beating it to death. Well, is he?
What has he actually legislated and what success can he present as proof of his candidacy? I finally found reference to his tax plans. He will raise taxes. He’ll leave lower income people pretty much alone. They are having a hard enough time. Those people who are managing to grow and produce, they get a stick in the nuts.
The top tax bracket would go up to 39%. So, make $100,000. Before you see it, Uncle Sam takes $40,000, leaving you with $60K. That’s an awful lot of the pie. For a family of 5, it breaks down to 0.12 remaining for each member of the family with 0.40 pouring down the IRS gullet.
There’s the numbers. Should we keep squeezing or does it look like the problem is perhaps in the utilization of these funds?
So let’s say I invest my .12 of my own earnings in an effort to grow a retirement fund so I don’t have to work until I keel over. Let’s say I manage to put something away and grow it by investing in our nation’s economy. Obama wishes to raise capital gains, any profit made over a greater than 2 year period (ie: long term investment, aka: retirement) to 28%. So, after already being taxed on what I earned, I get taxed again for being smart and investing. That’s stinks. How much longer do I have to work to make up for that?
McCain will be a lot more of the same
Yes, McCain wants to continue with some of the directions that the last office took with regards to Iraq, taxes, the economy. Is that so bad? …really? I know the war has been a big cluster-f#@% but our economy, though weak and in much more danger compared with 5 years ago, is still doing pretty darn well. I say that because I’ve been hearing that a recession, and sometimes even depression, is immanent - for five years! The media proposes that everything is near disaster but then they listen to what Rock stars have to say in between bong hits so consider the whole picture. I don’t personally know anyone who has lost their primary residence due to foreclosure. I know a lot of people who bought way more house than they could afford, including myself. Still there. Many expect it to rebound soon. I do know people who have lost their jobs but they found new ones right away. The European economy isn’t exactly trouncing us so I tend to look globally when there are global issues at hand.
McCain wants to make tax breaks permanent. He wants to leave other things alone. This will likely cause our deficit to continue to grow. Of course, we measure our deficit by a bunch of 19th century voodoo that is no longer any more appropriate than measuring the length of a mile by the instep of some dead British king. So, are we in economic turmoil? Some, yes. Should we respond by taking all the money that productive Americans earn ad give it to government agencies who still operate under the "do whatever I want" patriot act? I know, Obama will protect us from those mean agencies. He’s our hero. Great. But I haven’t met him and I would rather not appoint a government employee to handle my money for the better of the whole over my interests in educating my kids and retiring with enough to keep me eating while my heart is still beating.
Long Term Consideration
I am no expert in finance. I am no expert in politics. I couldn’t tell you a thing about law (except a few ways you should try not to break it).
However, I’ve learned that you should follow the example of those you respect and those whom have proven success and avoid the mistakes of those who deserve no less love but haven’t figured it out. I am not going to listen to the opinion of some techno blogger (me) about whether I should vote for Obama because "I like him". I will, however, be very careful to find someone older than me whom I would like to emulate and try to figure out what they have learned and apply that to my own situation. As much as I like Obama and what he stands for, I prefer to make my own decisions with my money and I disagree with Michelle that ""The truth is, in order to get things like universal health care and a revamped education system, then someone is going to have to give up a piece of their pie so that someone else can have more."
That statement indicates that we foster a culture where we redistribute wealth from great to small in a framework that favors balance and indiscriminate equity. Unfortunately, economics is anything but. A person who invents and builds a remarkable thing should not have to hand over the gains they made so that those who have not risen above can have the same wealth and benefits. No one should have to endure sickness or hunger and everyone should have access to education. We don’t all need iPods and designer jeans. What happens if you remove reward for effort an risk / benefit? Apathy.
History in the Making
I just felt compelled to speak my thoughts on why it is so important to check the government before handing over more control, more money and more of our collective pie. With limited information, I make careful, deliberate decisions. I want you to keep your job. I want you to put your kids through the college of their choice. I don’t want your employer to cut staff after the tax plans "change, change, change" only to benefit the budget of inefficient and ineffective government organizations. We’re all pissed off about some of the things that the Bush administration has been responsible for but we had only one attack on American soil (though it was unbelievable, tragic and massive in scale). We’ve been able to keep other countries in check who thought, briefly, that this was a good tie to test the line. While my family will make half as much as our last generation counterparts made, we still have a chance to make a future for our children that does not include leaving their education and health up to the government. Remember the cost/benefit of everything we do. Raising taxes provides a benefit of more money in government but at what cost? Communist healthcare provides equitable medical benefits to all but at what cost?
I invite rebuttal and please point me to the appropriate resources so I can make an educated decision as I go to the polls. I was very much in favor of Obama in the beginning. But as this unfolds, I worry about how the message has not evolved. I worry about the "feel good politics" and promises that sound like they may be just more empty promises from a man with no really performance to demonstrate. I spent a number of years claiming that I would be a rock star and many people believed me, including myself. I might still record an album and I might even sell some copies but I am now wiser because I have experience behind me. Idealism has its place: in the hearts and minds of our children. We have no idea what they can accomplish. However, there is a good reason we don’t let our children make decisions until they grow up.
Posted in Blogging | No Comments »
September 2nd, 2008 Rusty
This is specifically for the developer who wants to get source control going quickly as well as to instruct a colleague on how to jump onto a project without excessive ceremony. I’m going to skip the part about associating the project with SVN in the first place, importing the project initially, etc. The project has to be imported into SVN before you can then check it back out and work subversively. I’ll assume you can figure out how to add a directory to Svn using the command line. The basics (and then some) are covered on Subversion with XCode on Apple.
Open XCODE and Configure SCM with Subversion
a picture says a thousand words…
Add a Repository
Click the "+" to add a repository
Give it a name so you can tell it apart from the Skynet alpha Svn repository
Configure your Svn
Click "OK"
Checkout your XCode Project Structure
Navigate to the root of the Code project and "Check Out"
Navigate to an appropriate project location on your file system.
An alert will indicate that it is complete
Choose "Open xxx.xcodeproj"
Use integrated SCM with SVN
If the project was previously associated with SCM, you can skip this step. In other words, if you cange a file and an "M" shows up next to it, you’re done.
Otherwise, Choose Project > Edit Project Settings
Near the bottom, choose your repository for SCM

Posted in Programming, iPhone | No Comments »
September 2nd, 2008 Rusty
Programmers these days despise nothing so much as repeating themselves. If you solved a problem once, its expected that you’ll not have trouble solving it again. In fact, you’ll likely find something better! ..and good programmers have tests in place to prevent the error from recurring.
I was trying to solve the problem of Asp.Net Mvc throwing controller errors as a 500 application error rather than throwing "404 Not Found" when a url points to a non existent route or file path. When I Googled it, some clever hacker had proposed a solution that results in more appropriate behavior. I was going to follow that fellers other posts to see what else they’d contributed. It was me, 4 months ago. I just don’t remember posting that and clearly didn’t apply it to my own project.
…I’m getting old.
Posted in Blogging | No Comments »
August 29th, 2008 Rusty
I hate to be critical and negative but someone ought to benefit from the half day I lost evaluating a tool that stinks like yesterday’s chili at breakfast.
I installed SugarCRM yesterday as it appeared to be the tool for Crm in the Open Source space. I was also excited that it supports MS SQL Server. I liked the idea of being able to use my comfort tools for digging through the data.
When I launched the app, I noticed that it was pathetically slow. I mean, s l o w . . .
I tried all my tricks to speed it up but the reality is that there are just too many huge include files. The server tends to respond in less than 10 seconds for the most complicated pages (less than 1 second for some) but no page loads in less than 6. Most pages take more than 30 seconds!
Using firebug, I measured the download of several pages. I installed on Windows IIS using SQL Server with the demo data installed. I was the only user hitting the server.
I clicked on "Create New Opportunity" and the page note indicated: "Server response time: 2.54 seconds." However, the icons and images took more than 20 seconds to finish loading.
Granted, I could probably have used the page after ten seconds but that is far too long to wait considering I expect early users to have to click a few times to find what they are looking for. 3 clicks at 30 seconds is not acceptable.3 clicks at 60 is completely unmanageable.
I tried clicking on Dashboard and "Server response time: 12.48 second" but the page took more than 60 seconds to display content.
I tried to reindex tables and set content expiration on the themes and includes directory but this didn’t help much at all.
Using Firebug, loading the "Emails" default tab, the total is:
140 requests 2.25 MB (0 b from cache) 33.8s
That is HUGE. a plain refresh results in: 39.77s
Oucharama!
I am now trying vTigerCrm…
perhaps salesforce.com is worth $9/user/mo? Probably!
Posted in Open Source, Windows | 1 Comment »
August 29th, 2008 Rusty
I’ve been busy and haven’t blogged for a while. Our resident investment analysts have kept the blog-o-sphere fresh with posts on our Investment Research Blog. There you’ll find financial market commentary and investment research editorial. If you are an individual investor, its a great place to gain expert insight into the markets and the economy. If you’re a professional investor, take a look, I think you’ll be quite impressed.
I’m a tech guy and this is my first foray into the financial industry. One of my primary motivations for taking this position is the incredible expert leadership and constituency in the Ockham / Global Access Holdings staff. While my previous positions provided me with job satisfaction related to my technical competency and opportunity, I felt the business sector in which I was developing did not contribute to my own personal, individual growth. Joining Ockham Research is like a transmission mechanic joining the Mario Andretti racing team because he want to improve his personal racing skills. My brother told me once, "no one will care about your financial health and return on investments like you do." He was right and that meant I need to learn about investing. Ockham Research is an entity dedicated to bringing proven investment analysis to investors and investors to volatility and opportunity. I’ve already learned a ton about the financial industry, so much that I’m excited to come to work each day. When’s the last time you could honestly say that?
Bringing financial analysis to the masses
Sites like Reuters and Google Finance provide an abundance of information regarding equities and investments but they don’t provide sentiment. There are a million ways to evaluate and attempt to predict future stock performance. Some of them look like they work (until they don’t) while some of them actually do work (at least for now). Some of them just don’t. In fact, somewhere around 80% of investment professionals under-perform the benchmark (not sure what the exact figure is) . That means your better off buying guaranteed return bonds than investing in the stock market using the principles that most investors subscribe to. So, unless you really know what you are doing (or think you do) the most logical thing to do is to invest the majority of your available capital in sure things like bonds. Investing in "things you believe in" is a good way to dabble, but you’re going to be at the mercy of the media. What about those equities that are in a position to really grow? What about those companies who, for whatever reason, are under-valued and are very likely to perform well in the coming months? For that, you can log into http://www.ockhamresearch.com to find ratings and analysis on over 5400 equities.
Learn and Grow
Now that I’ve have shamelessly proudly plugged my new company, I’m excited to get back to work. If you also wish to learn some of these golden gems of finance, keep an eye on our investment blog.
This week, the Ockham Research Staff (our chief guru, at that) has prepared an article on Simple Investment Principles.
My expectation is that this company is going to be a household name in a few years and all that money that gets slid my way will be soundly secured for my children’s future using the principles I learn each day building these exciting tools.
Posted in Finance | No Comments »
August 19th, 2008 Rusty
I ran across this, quite by accident, and it was spot on: http://weblogs.asp.net/jezell/archive/2008/07/06/iphone-sdk.aspx
I have family to pay attention to, having spent way, way too much time trying to write an iPhone app, so I’ll be brief and to the point.
The iPhone is probably the most disruptive, innovative and important personal technology device in the last 10 years. Â It changes everything. Â It is worth paying attention to and worth investing in. Â
That being said, the platform for developing iPhone apps is far from ready for prime time.  Innovative and thoughtful early adopters will profit, most certainly, but most  apps are going to fade into oblivion. Â
The sdk, Objective C, XCode and the entire iPhone development toolset is disappointing. Â This is probably underscored by my recent experiences using Microsoft tools. Â The recent development of Asp.Net MVC from Microsoft has brought web development into the realm of productivity and satisfaction. Â I thoroughly enjoy building web apps using the modern tools and language features and can’t say enough positive things about it. Â Jumping off to xCode and iPhone development has been trying to say the least.
First, and foremost, iPhone sdk documentation is pathetic.  The best one can find are a few scattered tutorials where some teen age kid is putting together a UI that gets the intended screens in place but wreaks of the most costly and short sighted practices I’ve seen since VB 5.  Yes, you can point and click and cut and paste until your heart is content but the minute you wish to change something you will be paying the price for your technical debt to bad architecture and design.  If I google something in Asp.Net MVC, I find 10 resources immediately.  Its still a preview technology.  iPhone is out, released, production.  Googling basic issues results in nothing.  Part of that is the Apple “must be logged in to see this” nonsense.  Please, Apple, stop it.  Take the passwords off your documentation.  Let Google bring me to the resources I need.  When I do find tutorials, they are often based on the last drop of the sdk and they don’t work.  This is very frustrating.  If there were documentation or tutorials that worked, then I’d accept it.  But there aren’t any. Â
Finally, there is this Apple iPhone MVC thing that is supposed to provide a pattern for implementation. Â However, I can’t seem to figure out how to actually implement MVC for the iPhone sdk! Â There are xib files and UIView classes. Â These make up most of the outlets and actions. Â Then there are UIViewControllers but they don’t receive nor host the actions. Â Then there are delegates. Â It seems to me that we’re in a more event driven UI-centric environment where nothing is documented and you are supposed to just discover the right path. Â Inevitably, the wrong path leads to the screen you need and some high-school kid with more time then foundation puts together a video tutorial and explains, in his braces enhanced D&D DM narrative, how to wire it all up.
The last thing I want to point out is that tabbed Visual Studio is amazing once you see what happens when Windows get loose all over your desktop. Â Holy crap can you get lost with Interface Builder, xCode, and all the little windows it manages strewn all over your desktop.
So, where credit is due: thank you Microsoft….and where work is needed, Apple, please consider improving your documentation and tutorials and doing some consumer research with developers who have never touched cocoa before.Let me close by saying I still LOVE my mac and absolutely think Apple does amazing things. Â I’m your biggest fan! Â But then I am also a Microsoft fan so that makes me “different”
Posted in Mac, iPhone | 2 Comments »