Today is a good day to code

Losing Weight With Technology

Posted: February 3rd, 2010 | Author: irv | Filed under: Lifestyle, Programming | Tags: , , , , , , , | No Comments »

About 8 months ago I started running because I noticed that Nike+ was built into my iPhone 3GS.  I had run in the past, but never very seriously.  I started to lose a bit of weight, but it wasn’t coming off like I felt it should.  I’ve always been heavy, except for the couple of times in my life when I went on a crash diet.  Once I lost nearly 100 lbs, way back when I was 16 by eating every other day.  Recently I think I have found something that works so A few days ago I felt motivated to indulge in telling my story on my blog since perhaps someone would find it helpful.  Since my weight kept going up, and I kept exercising harder and harder, I thought that something must be wrong with me.  At one point I was riding my bike to work, totaling over 200 miles a week and I didn’t lose an ounce.

Over the years, the lifestyle of a software engineer and a literature nerd took its toll on me and I gained back all of the weight that I had lost when I was 16, and then some.  I signed up for one of Nike’s virtual running plans and started to run more and more.  I was really enjoying analyzing the data that was coming out of my nike plus, that combined with the weather data from slowgeek.  But I wasn’t really losing any weight.  I just sort of settled into the fact that maybe I was just one of those people who were meant to be fat.

My wife wanted me to go to the doctor and ask for statins, which I did, because she was worried about my blood pressure and cholesterol, which I hadn’t checked in forever.  My doctor agreed with me that something wasn’t right about the fact that I wasn’t losing weight, even though I was working out like a demon, that my blood pressure was so high, and that I was having allergy and miscellaneous immune issues.  She didn’t want to give me any drugs, she is an awesome doctor, so she sent me over to get a lab done.

The cool thing about my doctor is that, much like a software engineer tracking a problem, she was able to string together a bunch of seemingly random data, anecdotal and otherwise, mix it with empirical data from the labs and quickly come to a working theory of what was going on.  I had a chronic vitamin D deficiency.  I know it sounds like a joke, and I thought it was pretty silly when she prescribed me high-dose vitamins, but my laughter in ridicule quickly turned into joyous laughter once the weight started dropping off.  My cholesterol was fine, so that was the only thing.  My doctor told me that a) everyone has a vitamin D deficiency, and b) since I was African American it was worse for me, especially living in the Bay Area.  She said that vitamin D plays a role in, get this, metabolizing sugar.  That without it your body has a hard time using the energy from sugar.  Well most of everything we eat is sugar ( high-fructose corn syrup ), so this would explain why I couldn’t lose weight.

That wasn’t all either, I had been moody for quite some time, but the Vitamin D mellowed my moods and helped me to concentrate.  About the same time I had been reading a book called The Omnivore’s Dilemma.  I was becoming more conscious of what I was eating.  I figured that since the iPhone was so awesome at capturing data with the Nike+ and that I always have it with me, if I could find something that would track my nutrients and calories on the iPhone I’d be able to see what was going on with my diet.

When I first started using LoseIt! (ITMS Link) I was shocked that almost all of my calories, between 4,000 and 6,000 a day were coming from carbohydrates.  I was running at something like 90% carbs 2% fat and the rest was protein.  Prior to using the program I was under the assumption that all I had to do was keep my fat down.  With my Vitamin D deficiency preventing me from actually burning the massive carbohydrate load I was putting in, my body was just storing everything.  Once I finally got the Vitamin D levels evened out with supplements, I started cutting down the calories.

Almost immediately I noticed that I started choosing the lower calorie foods with high protein such as eating a chicken breast, with no bread or rice, and a salad, instead of a salad and a horde of pretzels.  The pretzels had an insane amount of calories, so did bread, and rice, so I stopped eating so much of those almost immediately.  I started eating way more fat, and when I say way more, I mean that between 12% and 20% of my calories were from fat.  I still eat way more fat than people say is good for you, all the while losing weight at between 1 and 3 lbs a week, with little to no ravenous hunger that doesn’t occur at mealtimes.  Of course I avoid trans-fats and saturated fats, but I am not afraid to eat a steak or dark chicken meat.  Once you get into training for endurance sports your needs will change, but at the beginning it is really good advice to follow Chris Carmichael’s : Eat Right to Train Right foundation percentages.

All this data was making me giddy, I could actually see what was happening to my body as I changed the mixture and quantity of what I was eating.  As I fixed my diet, the constant hunger went away.  LoseIt had me at around 2800 calories when I was at about 260 lbs, but now it has me at about 2060 at 200.

LoseIt works on a very simple assumption, that 3500 calories a week equals 1 lbs, so short 3500 calories a week, you should lose 1 lbs per week.  With all the data I can now see, based on what I am eating, what is happening to me during races, long rides, etc… I have a much better understanding of why I am cramping up on rides, or during swims, or why I bonk, or can’t crank up the output on some days.  I am learning which foods burn best for what.

Everyone thinks that the government has BMI and the diet guidelines all wrong, and to be fair, it is a bit off, but not as much as people think.  People want to believe that they are just the way they are, and that they don’t need to, or can’t change.  Many people think that they can be healthy while being seriously overweight, or that they are somehow special and the laws of thermodynamics don’t apply to them.  Everyone is so focused on eating more “good calories”, etc… That is all bullshit.  A calorie is a calorie.  If you don’t burn it you will gain weight.  Unless you are a triathlete, marathoner, etc… 3500 calories = 1 lbs period.  First you have to fix any chemical or other issues in your way, but aside from physical biochemical issues, it is possible for everyone to be at a healthy weight, and it isn’t hard as long as you can be anal about tracking calories.

I would have lost 1 lbs per week had I not been running, picked up swimming, and started cycling more.  Instead I was losing around 3 to 3 and 1/2 lbs per week.  While doing all of this I was building my CycleMetrics application for the iPhone.  Testing it was a monster, I had to do intervals to test the power output on the bike even when I wasn’t riding simply for fun.  All the while aggregating my exercise data on Google Docs, and using LoseIt to count calories.  Some people may think it is rude when I pull out my phone at dinner and start tallying up the damage before I eat it, but it helps me with portion control, and screw them if they don’t like it.

At the moment I have lost 60 lbs.  I still have a bit to go to hit my ultimate goal, which is to hit the top end of the normal BMI range for my height and shoulder width, but now that I have a framework with which to control my weight and keep myself at peak physical and mental performance I am not concerned that I will hit them.

I would like to editorialize a bit and rant about the food industry.  It is absolutely insane that I need this much technology to figure out what is in the foods that I am eating.  I shouldn’t have to track every calorie this way, corn shouldn’t be in everything in the quantities that it is.  The government shouldn’t tax fossil fuels, they should tax high-fructose corn syrup.  Also, eating out is inordinately hard.  I needed The Daily Plate ( Livestrong ) (ITMS Link) Application just to figure out how to approximate what I was eating and what the calories are in stuff at restaurants.  They should really consider putting this on their menus voluntarily, and if they won’t the government should make them do it.  Only because if they don’t everyone’s health care bills will rise.

With all of the money that we are looking at spending to improve health-care, I can’t believe that we don’t do something about the sugar / corn intake of people.  Unless you look at what you are eating, the amount of calories that you can consume is really absurd.  The bag of pretzels next to your desk that you munch on while coding and listening to glitch music is about 1400 calories, you’d be better off with two butterfinger bars.  Better than that would be to eat a balanced lunch with fat, carbohydrates, and protein.

If I was reading this, and I was still where I was, I’d be saying to myself, yeah its all well and good that you found religion, but you are working out, eating right, and got quality medical care.  It worked for you, but how can I know that it will work for me?  Its a good question.  I don’t know that it will work for everyone.  However, what I do know is that for each of the people that I have given this app to who have seriously tracked what they ate, their results are the same as mine.  Think about it this way, development without a framework is hard, it is tough to know where to start, and even harder to know when you have built enough.

LoseIt is like a framework, it makes the hard decisions about how much and what to eat.  It lets you think about that fancy Lisp project that you want to build, instead of feeling guilty about eating too much, or wondering whether to eat this or that.  Really it doesn’t matter much what you eat, if your goal is to lose or maintain a healthy weight.  I still eat McDonalds, although I get a happy meal, I eat dominoes and drink copious amounts of beer.  The difference is that either I work out to get rid of the excess calories or I stop eating and drinking when I hit my limit.  That is not to say that you won’t have any health problems eating this stuff, it is just to say that your weight won’t be one of them if you stay within your calorie boundary.

As far as the exercise goes, there are so many different types of sports out there, even people who say they hate sports admit to not trying them all, who knows, you could have a desire to be a curling champion, or to do pole vault, etc…  There is something for everyone.

If you capture the data, imagine the awesome analysis software you can write to find trends.  Right now I am cross referencing my diet with the weather, and speed with altitude to see at which humidity and carb levels I perform best at with altitude.  It isn’t so much that I care, it is mostly about the fun with analyzing the data.  I never thought I would have so much access to the inner life of my body.  Anyway, I this is about wrapped up.  If you are having trouble losing weight look into Vitamin D, and if you haven’t already, grab LoseIt (free) and a copy of Omnivore’s dilemma, it will change your life for the better.

*UPDATE: 2/19/2010*

I forgot to write an additional thing that I am doing to control my weight.  Since my father died a little over a year ago, I have been trying to get 100% of my fiber each day, somewhere between 25 and 30 grams.  Coincidentally, I learned later that fiber plays an important role in helping you to feel full after meals, as well as helping your body dissipate excess calories.  I would recommend that anyone increasing their fiber, however do it gradually or you might have some uncomfortable results.


The Post Free Era and What it Means to Google

Posted: September 16th, 2009 | Author: irv | Filed under: Companies, Google, Media | Tags: , , , , , , | No Comments »

For the past few months I have actively quested against using anything that is free, asking difficult questions of the product, and often choosing a paid alternative when the answers were not forthright enough, and I have been noticing similar tension on twitter, and the other social media places that I haunt, as well as casual encounters with friends and family. Why have I have been trying to move off of the free ecosystem? What reason could there possible be? I mean who doesn’t want stuff for free? Well, that answer is complicated, to fully understand it, I think we have to look at some of the things that the “free” ecosystem has brought us.

The first, and most significant negative thing that the expectation of free software and services has brought to us is a huge proliferation of spyware and malware. There are a few reasons that the amount of spyware and malware increased dramatically around the time that software became available for free. It is largely a consequence of the law of unintended consequences. First, fast internet became widely available at costs that are reasonable. In fact, for a while ISPs played around with having a free price point, but that faded away quickly as capital intensive enterprises are incompatible with the gift economy.

The next is a series of unsustainable business models driven by advertising with ever declining value delivered to the sponsoring companies due to consumers being advertised out. This in turn has driven to many choosing not to consume content at all, or destroying once vibrant businesses such as newspapers, music, and movies. What is the answer to the decline, to increase the ads of course, to make up for a clear down trend with increasing the volume and driving down margins while lowering the quality of the product to keep the same profitability. Does this sound familiar, it should, its the same thing that happened in the housing market to continue an unsustainable business model. Instead of innovating out of the crises, the advertising companies are clinging stupidly to the old systems.

Once fast internet became widely available, the GNU / GPL driven software model with distributed version control systems became possible. Now people were able to collaborate on software, in countries where labor costs were cheaper, driving the price of development down in general for large projects. The GPL began with a powerful intent, to make software, and its source code available to facilitate learning and improve the quality of all software. It has largely achieved this end, however it got end users used to being able to download high quality software for free. At first, this was all gravy, but eventually these same people started to get tired of giving away their hard work, some of them graduated college and needed to make money, others just wanted to improve their standard of living, the reasons are too numerous to go into, but the result is that these “alternative” business models started to spring up around software that at its core was free. The service / support model was the first to appear, along with making closed source software available for free but with embedded malicious software. The idea behind this was simple but powerful, by installing covert software on millions of remote PCs you could send spam email advertising whatever you wanted, and no technology ( at the time ) could stop you.

This was the beginning of the advertising ecosystem. Yes it basically came from malware.

TANSTAAFL : There ain’t no such thing as a free lunch. Truthfully, nothing is free. Businesses saw what was happening in the malware / spam / zombie / email space and wanted to find ways that they could do this in a legitimate way, since millions of dollars were being made off of the spam networks. What the malware / spam networks were getting from users, in addition to their IP addresses, were profiles of their behavior online, the networks could generate information about what sites were trending etc, where people went when they were looking for a product, where they went after the first click. Crack cocaine for marketing executives. It is always surprising to me how many people do not understand what is happening when they use google, bing, yahoo, etc, and why they are free. These are hugely expensive enterprises, with huge costs that could almost never be made up by charging people to use them. I don’t know what Google would cost if they didn’t advertise, but I would imagine that it would cost thousands a year to use it in order for Google to be profitable in the same way.

Webmasters often don’t think about why Google would give away analytics when Omniture has built such a profitable business selling web analytics for years. The reason is simple, Google makes more money from adwords when they can trend users from the Google search page, through their path from site to site. By including Google’s tracking code, an authenticated user logged into Google’s services can be followed.

This has benefits to the user in Google’s case, since Google has so far shown that they can be trusted with the vast amounts of user behavior data that they have amassed, and they do frequently show ads that are highly relevant. So Google’s business is in gathering data points about your behavior, and using that data to present you with the ads that are most appropriate to you. Every application and service that Google builds is to this end.

Yahoo and Microsoft are desperately trying to copy this business model, as are many smaller vendors, and that is the problem. While Google can be trusted, I do not believe that the others can be, and frequently I am not 100% certain about Google. The problem is that Google is behaving as though it were the only company out there doing this, and they seem to be oblivious to the fact that people don’t want to see ads, even good ads. I keep hearing that poor targeting is the culprit, but I am not so sure that is true any more. There is a class of people that is rapidly growing who just don’t care what type of ad it is they are just tired of the cognitive noise. I would be included in that class.

With so many different ad networks trying to copy Google, the result is end-users inundated with ads, everywhere they go there are these behavioral ad networks trying to determine what ads to show you, with varying success and quality. They are all clamoring for data, trying to convince site owners to put their little tracking code into their stream. Unfortunately this hasn’t stopped at the web, iPhone apps, Blackberry and other mobile apps, even desktop apps are showing little ads in order to compensate the developer, whose time is extremely valuable, for their hard work.

The problem for a company like Google that is interested in doing the right thing, or at least trying to, is that the lesser companies are producing ad-fatigue in users, which has lead to adblock pro and other advertising blocking solutions as end-users try to reduce the noise around them. These companies, realizing that their ad driven dreams are beginning to fade have moved to making ads look like content in the old 30’s radio business model. The funny thing is that those old tactics led to the FCC getting involved and setting guidelines as to how advertising should be embedded into programs. It is a vicious cycle that is reproducing itself in all mediums.

The embedding tactics range from “independent” product blogs, to product shils on twitter, to television programs designed to specifically and only show you a car gratuitously. Again, not all of these are bad, I follow several businesses on twitter that do not annoy me, and actually behave more like a partner than someone trying to cheat me out of my money with a product that I don’t want, and can’t use. Some of these ad sponsored “apps” on the iPhone for example are so thin as to be a press the monkey with a batman logo. What is the point of that? It is just noise.

So what’s the problem? Everyone is getting paid.

The overriding problem is this… its too much sponsored content in general. Everyone seems oblivious to this and I’m not sure why. It could be the same thing that lead to the housing crash, everyone was making way too much money to look at the obvious. People are tired of being advertised to. Everyone is touting some kind of free future where everything is free and companies are always making money in “other” ways. Typically these “other” ways are not specified, but I can fill in what “other” is. They are increasingly nefarious and opaque ways of capturing your behavior and data, then using that information to influence your behavior, usually resulting in you buying stuff with you not being able to remember why. This is bad, and is not really a proper way to run a business. It can only end with massive data leaks and a public so unhappy that government legislation is required.

I don’t think this will happen. I believe that the public is smarter than this and that they will start to back away from free software due to being saturated with ads, and begin to embrace paid software from companies with clear agendas and business models. I think that the VC money will begin to follow suit, heading instead to companies with models that a 5 year old could understand, as opposed to models that only a PhD in macroeconomics can comprehend. We make a product ( content ) and then we charge more for it than what we paid to make it.

Another of the problems with the ad model is that where once it liberated artists to develop art without needing to think about how they were going to get paid for it, it is now doing the opposite. Companies are hiring artists to make movies, television, plays, books, video games, you name it just to push some product. Artists are now the slaves to the master that they were once masters over. I would argue that the newspapers have it right, that they just need to start charging for content. It is critical, however that they get their pricing right. I think that PayPal and micro-payments will be the Visa of the future, if Visa gets their act together and drops their rates, perhaps they could be the one. Perhaps newspapers’ circulation will drop, but they would be more profitable and healthy. One company has demonstrated that this is a sound business model, and they are standing astride the world right now as a colossus.

Apple is poised to do very well in this system. Not only have they always chosen to provide high quality products and charge top dollar for them, we see that the public is more than willing to pay for quality software and hardware. MobileMe may have had its issues, but Apple’s motive in making it is simple, they want to sell more iPhones and Macs, they make 50% profit or more on each one, there is no ulterior motive, they are not selling my data, there are no ads, period. They make money in a way that I can explain to my daughter in one sentence. They could put some ads in the iLife suite and give it away for free, but why? They have proven that people will pay not only for the Mac to run the software, but they will pay a reasonable amount for software on top of that.

Microsoft and Adobe are as guilty for creating the free / illicit software market as anyone, by charging ridiculous amounts for their software for what it does, people had to figure out alternative means to get their work done. This feature of software engineering is furthering the dependence on these opaque difficult to understand business models. If you make a solid product and charge a reasonable sum, even a high-reasonable sum, people will pay. Otherwise, they will pirate or find ways to cannibalize the standard method of doing business.

To sum up, the free era is over, Google’s business model is in danger, and Apple and content companies that create quality product and are willing to charge for it stand poised to make a comeback. Microsoft and others following Google are lemmings headed off the cliff. I think the advertising bubble is about to be popped.


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


Writing a PHP Interpreter for Mides

Posted: May 7th, 2009 | Author: irv | Filed under: PHP, Programming, android, iPhone, java, mides | Tags: , , , , , , , | No Comments »

For the past few weeks I have been working on writing a PHP interpereter for Mides.  As I know that I am not allowed to do it for iPhone, as it would involve downloading and executing scripting code, which is not allowed.  I have only been looking at the tokenizer for the iPhone, while I have been looking at the full monty for Android.

I actually have gotten to the point where the tokenizer is passing a lot of my tests, but there is a lot of ground to cover with PHP. Tommy Carlier’s blog on writing a parser has helped tremendously.  Still, even after getting the tokenizer working, I have to write an interpreter to execute the tokens.  This involves implementing the many methods that PHP has built in, so it will be a while until I get that completely done.

I am pretty frustrated with Mides for iPhone, actually, I wanted it to be a full PHP implementation and editor, but until the Terms and Conditions change it isn’t worth the effort to build an entire PHP interpreter just to have the app rejected. I am still improving the iPhone version, and the next update should be a huge improvement over what is currently there.  I had to remove the nesting because I need the memory for documentation search as well as the PHP tokenizer that I am working on.  Overall, the next update for Mides will make it better, it will be close to what I was hoping for, but it will never be completely what I was hoping for on iPhone.

The Android version of Mides on the other hand is shaping up nicely.  The Android text view supports color so I have some syntax highlighting happening which doesn’t hurt performance on the G1 too badly.  The tokenizer is mostly done, and now I am designing the interpreter.  Development on Android is going a lot faster since I don’t have to worry quite as much about memory leaks, although if you try you can still make them happen.

At any rate that is why there haven’t been any updates for Mides in a while, I have been working on localization, parsers, and interpreters.  I am spending most of my time on the iPhone version of Mides, but it seems that I am getting farther with the Android version, go figure.


HTML 5 Databases on iPhone

Posted: February 18th, 2009 | Author: irv | Filed under: Apple, Companies, Google, Programming, android, iPhone, java | Tags: , , , , , | No Comments »

Today I as looking into using HTML 5 databases on Android and iPhone. It turns out that the Android browser doesn’t seem to support window.createDatabase at all. It may be that it does work with Gears or something, but I didn’t try it.

What I did find, when enabling the developer menu for iPhone Safari was that in the 2.2.1 firmware, a user can view the databases that are currently stored on their device in the web browser by domain and delete them.

In the detail screen, it shows you how much data is currently stored in it, and it has a max, which appears to be stuck at 5 MB. I wonder if Apple has plans to improve the mobile Safari dev environment to allow for richer web applications at some point in the future when the AppStore revenues have died off a bit.

 

*EDIT*

Actually I did figure out that the G1 uses gears, so I guess they are equal, but gears doesn’t seem to care too much how much space I can use.  I haven’t tried the WorkerPool, or the local caching stuff, but I found another blog where the guy had an icon on his screen for a web-app.


iPhone Codesign Error 2.2.1 Firmware

Posted: February 6th, 2009 | Author: admin | Filed under: Apple, Cocoa, Companies, Objective-C, Programming, iPhone | Tags: , , , , , , | No Comments »

I have an older project and have had my certificates expire. I spent a couple of days trying to figure out how to get the stupid thing to build. Then I found this blog: http://iphonesdkdev.blogspot.com/2009/01/codesign-error-valid-provisioning.html.

Basically what it says to do is to go into the .xcodeproj file for your application, open the project.pbxproj and modify the PROVISIONING_PROFILE variables.

This didn’t work for me, but removing all of the key / value pairs did.


resume

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

IRVIN OWENS, JR.
ALAMEDA, CA.
(925) 899-5797
IRVIN@OWENSPERFORMANCE.COM
HTTP://WWW.OWENSPERFORMANCE.COM

TECHNICAL SKILLS

Cold Fusion MX 6.1, MySQL, Swift 3D, XML, ASP, JavaScript, IIS, Creative Suite, Apache Server, CSS, Microsoft Visio, Microsoft Access, FileMakerPro, Java, JSP, JSTL, Tomcat, NetBeans, Eclipse, Xcode, PHP, XHTML, Fusebox 3, Fusedocs 2, Web Standards, AJAX, XHR, DHTML, C#, ASP.net 2.0, Visual Studio 2005, Cocoa, Objective-C, iPhone SDK.

EXPERIENCE

  • 2007 – Present: Epocrates, Inc.
    Manager, Web Applications User Interface  

    • Lead the Epocrates web UI team to develop cutting edge SOA based interface to support multiple web based devices.Responsibilities include mentorship of other team members, defining standards and techniques, design and creation of cutting edge AJAX based web interfaces. Used JSTL, JavaScript, DHTML, design patterns, understanding of OO based design, knowledge of browser incompatibilities and knowledge of standards based web development to build dynamic next generation applications as a member of a very accomplished development team.Invited to Apple to work on the iPhone SDK pre-release. Built Epocrates demo for March 6th SDK event. Built Epocrates iPhone Web Application. Represented Epocrates on stage with Glenn Keighley. Designed native Pill Picker, helped to design and build Epocrates Essentials for iPhone. Redesigned domain model, and am currently implementing new service based domain server using Java.
  • 2006 – 2007: Epocrates, Inc.
    Senior Web Developer  

    • Responsibilities include mentorship of other team members,
      defining standards and techniques,
      design and creation of cutting edge AJAX based web interfaces.
      Used JSTL, Java, JavaScript, DHTML, design patterns,
      understanding of OO based design,
      knowledge of browser incompatibilities and knowledge of standards based web
      development to build dynamic next generation applications as a member of a very accomplished
      development team.
  • 2006 – 2006: FoundValue, Inc.
    Senior Software Engineer  

    • Design and create cutting edge, standards compliant user interfaces utilizing
      modern programming techniques including patterns, AJAX, and deep knowledge of
      browser incompatibilities. Utilized expertise in CSS, XHTML, C#, Web Services,
      and JavaScript extensively. Other technologies and software packages used
      include Visual Studio 2005, Eclipse, SQL Server 2005, and IIS.
  • 2005 – 2006: Weathernews Americas, Inc.
    Web Applications Developer  

    • Develop and deliver enterprise applications to large corporate clients
      using ColdFusion MX 7, SQL Server, and Sybase. Worked with Design Patterns,
      and object oriented software design methodologies to design and implement
      robust maintainable software to enable access to weather data. Used Flash MX,
      AJAX, and Web Services to deliver dynamic map data to clients via a
      third party GIS solution. Used Asynchronous CFML gateway to deliver
      high performance multithreaded processes for ColdFusion 7.
      Worked with Japanese parent company to deliver advanced solutions
      to international client base. This has included
      several trips to Japan to work intensively with parent based engineering
      teams.
  • 2005 – 2005: City and County of San Francisco
    PROGRAMMER ANALYST  

    • Assist in the design and development of applications to support CalWIN
      transition using ColdFusion MX and Microsoft SQL Server. Convert and
      debug applications while moving them from ColdFusion 5 to ColdFusion
      MX.
  • 2004 – 2005: Academy of Art University, San Francisco, CA.
    INSTRUCTIONAL DESIGNER 2 

    • Converted web based courses to online equivalent Used Flash MX with Actionscript, Cleaner, Adobe Suite, Macromedia Suite MX to design and build multimedia rich courses for art students.

      Worked with ColdFusion MX to build contact management utility to log interactions with instructors.

      Project managed content managers, contracted instructors, and occasionally other instructonal designers to develop courses.

      Used WBT Systems’ TopClass LMS (Learning Management System.) Worked with Camtasia Studio to deliver narrated computer aided demonstrations to students.

      Served as subject matter expert and Instructional Web Designer on courses.

      Developed Java applications to streamline workflow.

  • 2003 to Present: Owens Performance, Alameda, CA.
    OWNER/CREATIVE DIRECTOR 

    • built Mides, http://www.midestouch.com a full featured PHP IDE for the iPhone and iPod touch. Currently selling in the Apple App Store.
    • Formed information systems consulting company developing web applications for small companies. Created www.vietsperformance.com using Cold Fusion MX 6.1, DHTML, Fireworks MX, Dreamweaver MX, and CSS.Created user editable back end making all content dynamic, Interfaced site with the Viets Performance financial system. Built GlobalPSD corporate order processing system, website, and intranet using ColdFusion MX 6.1. Deployed Xserve G5 to support the GlobalPSD web application, email, and FTP services. Installed and configured ColdFusion MX 7, PHP, and JRun 4. Ongoing support of co-located server. Winner 2nd Place Yahoo! Y!Q Contextual Search Challenge. Recently built Facebook application called JoostConnect to update users’ profiles with what they are watching in Joost, as well as allow them to be alerted of notifications while in Joost.
  • 1999 to 2002: Northstar Integrated Distributors, Hayward, CA.
    REGIONAL DIRECTOR OF OPERATIONS 

    • IS / E-Commerce manager, worked with development teams to create online presence with dynamic web store. Used Flash, ColdFusion, Generator, Dreamweaver, and MySQL to manage corporate site.

      Implemented intranet using MySQL, Access, HTML, and Perl to provide access to legacy data systems with a user friendly interface.

      Built infrastructure for planned growth, implemented Oracle Small Business Suite to provide automated financial reporting.

      Web based infrastructure implemented resulted in activations rising to 10,000 per month from only 1,600 activations per month.

      Northstar Team Player of the Year Award in 2002, and Multi-Tasker of the Year Award in 2001.

EDUCATION

  • June 2004: California State University, Hayward, Hayward, CA
    Bachelor of English
  • 1997 to 1998: Virginia Commonwealth University, Richmond, VA
    English Coursework, Minor in Business
  • 1994 to 1996: Old Dominion University, Norfolk, VA
    Electronic and Computer Engineering Coursework

AWARDS
2000 Northstar Top Producer Award
2001 Northstar Multitasker of the Year Award
2002 Northstar Team Player of the Year Award
2005 Winner 2nd Place Yahoo! Y!Q Challenge

INTERESTS

Macs, Basketball, Football, Programming Languages, Literature, Anthropology, Gadgets, Gaming, Blogging, Writing Fiction, Fantasy, Driving, Camping, Web Development, Desktop Application Development, Currently working on mastering Objective-C using the Cocoa frameworks for OS X using Interface Builder and Xcode.

Formats: 

 

 


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.


An Open Android Will Kill a Closed iPhone?

Posted: December 25th, 2008 | Author: irv | Filed under: Uncategorized, iPhone | Tags: | No Comments »

An Open Android Will Kill a Closed iPhone?

Picture of IrvinThere has been much talk over the past few weeks about T-Mobile and Google’s Android phone, the G1. Unfortunately most of the debate hasn’t really been about the merits of one software stack over the other, or about the hardware differences between the two. I haven’t really seen it mentioned that the G1 may allow developers to create more interesting applications because it has 192 MB of RAM, or that the iPhone allows for better RPGs because the developers know that all of the iPhone subscribers have an absolute minimum of 4 GB instead of the 1 GB of solid-state storage that Android ships with. No, instead the debate seems to be around Apple’s assertion of dominance over what applications are allowed on the iPhone, and Google’s “apparent” openness to any application a developer wishes to ship, and that a user wants to install.

A couple of things about this. While Google says it won’t stop people from installing any application that they want on their Google Android phone, that doesn’t stop T-Mobile from disallowing applications on phones attached to their networks. Either Google or T-Mobile will have to implement a kill switch, similar to the iPhone, or they will terminate or suspend the user’s account if they detect the application running. The first time it happens, it will send a chilling effect into the community, as they will not have a clear idea either as to why the application was killed, or the user booted off of the network. Even if T-Mobile gives a clear reason, it is not likely to be agreed with by the developer of the application. Probably there will be some blogs citing a hidden cabal between Google and Apple to dominate the mobile market.

Also, while Google won’t stop any applications from being installed on the G1, and there will probably be multiple methods of getting an application onto it, I would be surprised to see Google being completely liberal with the applications it hosts in the Android AppStore. Google has to protect its customers as well as its servers and network just like anyone else. They have a less strong agreement with their carrier partners than Apple does, but that doesn’t necessarily mean that there is none there, or that Google will intervene in a carrier decision to not host a particular application.

So while people will be able to open-source their code from day one if they so desire, and they will be able to easily hack applications onto their devices, at the end of the day, the carrier still has the ability and right to boot either the application or the customer off of the network. The only recourse would be to switch carriers, which can be somewhat painful, especially if there is a contract involved.

Being first Apple has had to tackle these issues prior to anyone else laying down a blueprint. Now Apple has clearly created an example to follow in some ways, and not to follow in others. I am indeed defending Apple because I feel that the critics have been far too harsh. If you look at it, AT&T is already having trouble with just the 3G traffic from the iPhone’s browser, what do you think will happen if everyone started tethering and turned off their home broadband service. Their network would come to a grinding halt. If they built out the network to support this behavior, then they would no longer be profitable at an acceptable level to their shareholders.

The “I am rich” application needed to be removed, that can be debated, but the arguments defy the common sense, Ocham’s razor logic to Apple’s position.

Finally, we get to podcaster, which would have been an awesome application, and I actually can’t defend Apple’s position here, unless, and I suspect that it isn’t, Apple’s position, I think this application would slaughter AT&T’s 3G network. They won’t even let us download music from the mobile iTunes store over 3G or EDGE. If you think about it for a second, why would Apple not want people to buy when they were on 3G or EDGE, money is money.

Clearly AT&T is playing a role in shaping what we can, and can not do on their networks with whatever device we choose. When Android devices begin shipping for Android, we will see similar restrictions from AT&T. They may take another form, but they will be restrictions nonetheless. It is important to remember that we are dealing with two companies, not just one. Heap the blame on both of them, not just Apple.


The Windowing Graphical User Interface

Posted: March 11th, 2010 | Author: irv | Filed under: Apple, Google, Microsoft, Uncategorized | Tags: , , | No Comments »

The Windowing Graphical User Interface

Picture of Irv Owens Web DeveloperNaturally if you ask most people about the biggest recent advance in the history of desktop computing, most of them would say that the windowing graphical user interface is it. While the GUI is definately a significant leap from the textual interface used in all Unix variants, I am somewhat dismayed by the lack of progression in interface technology.

It seems that the pioneers of these technologies can only think in Windows. It would be interesting if Apple and Microsoft, instead of focusing on improving their GUIs, were doing work in earnest to come up with another method of communicating with computers. Naturally, artificial intelligence and excellent speech recognition come to mind. With the incredible number crunching performance of current desktop computers, there is no reason for there to be no decent speech-to-text conversion software. Dragon is really good, but as far as controlling the OS, browsing, and writing software, it is far from ideal. For example, the computer should be smart enough that when developing in Dreamweaver I could say cffile tag. It should then put cffile tags with the cursor inside of the right less than symbol for me to add attributes. If the next command that I spoke was not an attribute of that tag, then the cursor should jump between the tags and begin copying in text. These things should be built into the operating system as APIs. But perhaps I shouldn't be looking to Apple and Microsoft to do these things. Maybe they are too focused on directly competing and keeping up with each other to really innovate. Maybe the open source community can come up with something to knock them off.

I definately don't see the GUI taking a dive anytime soon, but for devices like cell-phones, there isn't a much better method of controlling them than talking to them. I should be able to have it read-off my incoming SMS messages, and I should be able to dictate a response back to the phone. Intel has some pretty powerful mobile processors debuting, and they could easily handle this sort of rudimentary voice recognition software. I should be able to browse the web from my phone where it could read off the contents of the pages that I found while I am driving or whatever. It only makes sense.

As far as search goes this makes URLs and DNS somewhat unnecessary. Obviously you should be able to say triple-w dot whatever dot com and have your computer browse there, but who would actually do that. Wouldn't you just go into Google and say blah dot com, or more likely blah? This has been something that has come up several times in blogs and in discussion boards. More and more Google is becoming the primary way people find websites. This is good in that accessing information is more straightforward for most people. It is bad in that all pages can not appear on Google. Google seems to realize this, and that is why the blogsearch site has been launched, to give more people a chance to be found. Without DNS, and without having to know the web address of the site you want, a combination of voice and Google's search technology can make files on a computer available through the voice browser as well as any assets on the world wide web. Wouldn't it be great to just, as you are walking out to work say as an afterthought, “I want for you to find the best price on this movie, download it, and forward it to my television.” When you get home from work, you could just say to your television, “start a movie.” That is where we need to be going. Having all computing centralized around having multiple desktop machines in a home is a dead end. Devices and home servers are the future, and the graphical user interface is not the interface for this future.