Showing posts with label Python. Show all posts
Showing posts with label Python. Show all posts

Tuesday, March 10, 2009

Next Steps?

Thinking out loud here... The Amigo is faced with a dilemma: I've spent the last couple of months learning enough PHP to build a site. More accurately, the site is built with PHP+MySQL+(some)JavaScript. I only recently began learning Dojo and a little jQuery to upgrade the visuals on the site. The site works as it is; although it's got some shortcomings:
  • It's weak on security. Yes, it's got password protection, but I have done only a little to protect it from SQL-based attacks.
  • It's not flashy. Since I'm just starting with the higher-level JavaScript libraries, I've hand-coded a bunch of things that will look better and do more once those features are replaced. Of course there's a learning curve involved in that... Still, it's a back-end site for a family-member's small business. Customers will never see it, so basic functionality might be okay.
  • What's there so far could be considered a proof-of-concept. It supports a single product line. Within the next 12 months there will be three product lines. I've done an okay job of making functions general purpose enough to be extensible to different lines, but there will still be significant work involved to bring things up.
Had I a do-over on this, I probably would have stuck to my original plan of Python + Django. That would probably have netted me more skills in an up-and-coming development space.

For example, the Old Amigo just learned of a local company that may be hiring in the reasonably near future. They are a Python shop. So they do their work using Python (duh), Django, and Plone. I've seen some training vids and it is clear that some combination of these technologies could have sufficed for the site I just spent three months pulling together, but that's not what I picked. 

OTOH, the Plone learning curve is notoriously difficult to climb -- especially if one is to use that technology to build a site "from scratch". We're talking UML diagrams here, for instance. Things like form-based inventory control & sales tracking sites really aren't the target for Plone.  Plus the "native" database for Plone is ZODB (Plone lives on top of Zope and the latter uses the "Zope Object DataBase" to manage its content).  This implies moving from MySQL towards ZODB; although I've read that Plone can access MySQL databases if one gets the right add-ons.

So should I jump ship? I've spoken to the owner of said company. There is no guarantee that he'd hire me under any circumstances. Would I enjoy moving to something new? Probably. I sort of found PHP to be a train wreck of a language. Do I feel uneasy starting back at the bottom of another learning curve? You bet! One good way to advance is to focus and build new knowledge on top of what one has already learned.

While the underlying concepts (think GET & POST, etc) for forms processing and server side programming will transfer, all the time invested in developing some facility with the messy PHP syntax will go for naught.

And there is no guarantee that I'd be hired.

Would it be better to focus some serious effort on some client side stuff (Dojo, jQuery)?  That's what I was doing yesterday when owner of said local company called me to chat about working for him.

I just don't want to continue running around in circles.

Sunday, February 8, 2009

Decisions, Decisions... and Recipes

Well, the Amigo has version 0.8 of his Nailtini inventory and order tracking program up and running. Quite a few features.  Not very many known bugs.  Certainly ready for the clients to try it out and provide feedback.  Angel is one such client, and she is already giving me input on how to make the program more useful.

This seems like a good time to study some more programming technology.  The Nailtini program uses: PHP, MySQL, html, css, and a little JavaScript.  It's been a fun experience and a great learning experience.  The question is: what's the next thing to learn?  What would give me the best ROI?  

I spent a few hours reading up on Java.  Not JavaScript, but Java.  The Amigo had an interview a while back w/ a manager at Amazon.com.  The developers there -- or at least those in that manager's group -- use Java under Linux.  Some of the best programmers (and smartest guys) I've ever met have been Java programmers.

OTOH, there's Python.  It's much more modern than Java, but it's not falling-off-the-leading-edge-modern.  Python's momentum is definitely on the upswing.  It's certainly easier to learn than Java.

Finally, I found a pretty nice website devoted to Python.  The author of that site recommends that if you want to be a Python programmer, you should also know (you guessed it): PHP, MySQL (or equivalent), html, css, and JavaScript.  Well, shucks.

Do any of you -- Subscribers to the Wrong Rock -- have suggestions?  Do any of you think it would be a Bad Idea or a Waste of Time to focus on Python learning for a few weeks?

The other thing that's going on today is an attempt at creating a recipe.  This is the 2nd try.  The Venerable Friendly One would like to have a reliable recipe for dark chocolate fudge that's made with honey (instead of white sugar) and with some combination of peanut butter and almond butter (instead of dairy butter).  

The first iteration resulted in scorched chocolate sauce.  Since it was chocolate, it was still good (sort of).  The recipe from which I started indicated that you shouldn't stir the fudge after it started to boil and that you should use a candy thermometer.  Thus, the mixture scorched before ever reaching the "soft ball stage".  

At about 50 minutes of simmering, with occasional stirring to prevent stickage, the fudge mixture was clearly at the "thread stage".  Barring other data, it shall be declared Cooked at approximately one hour of simmering.

This time, the Amigo will use an electric mixer to beat the fudge into submission. Hopefully that will address the lack of thickenage.

Stay tuned on this one.