Between 9 am March 16, and noon March 17, some asshat decided to attack my site with 376 comment spam. All but one got through, and it made it into my moderation queue. I promptly marked it as spam.
Thanks to the Akismet guys, for a job well done!
I survived the crazy work schedule and lack of sleep from my recent gig. I know there are still a few outstanding bugs, less than 5, but they are not critical. They are so non-critical, our employer is giving us Friday off, and there’s no more overtime until perhaps well into phase 2, which starts later this month.
The Rails app I have been working on should be up already, but it’s out of our hands now. The customer is tasked with deploying it, not us. The first race of the F1 championship starts Sunday March 18. If the site goes up after that, it’s gonna lose impact. But that’s not my responsibility.
I want to show it off already. It’s been a crazy four weeks, and the site looks and runs great. I had nothing to do with the visual aspects. I’m a Rails code monkey, not a graphic designer by any means. Our web designer did a great job on the CMS and press/journalist access site, along with the Flash guys’ tremendous job on the Flash client on the consumer site.
Before this project, I had only worked on Rails with another Rails newcomer, for just six months last summer. But in this project I am working with a few Rails experts. One of them is even a Rails open source contributor. And I learned just how much I didn’t know. I am humbled and acknowledge I am just a junior Rails developer.
So I’m back to the books for more knowledge. I meant to do that earlier, but the overtime kept me away. Since I have the weekend off, I’m gonna study some more Rails stuff, like RJS and RESTful web services.
(Aside: You know you’re a real geek when you have the weekend off from working in front of a computer, and your time off consists of sitting in front of a computer, studying about work-related stuff.)
Also, I’ve already started writing a post about using embedded Ruby templates and ActiveRecord within command-line Ruby scripts. This can be useful to generate templated emails, XML feeds, and all kinds of other formatted output from cron jobs and the like using Ruby. I’m sure that will be of interest to quite a few Ruby fans.
Now if you’ll excuse me, I’m gonna use my free Thursday evening to begin to catch up on some teevee and anime I’ve had to let accumulate in my BitTorrent folder in the last four weeks. I also look forward to IMing with friends tonight for more than a few sentences, without having to divide my attention between work chat discussions and my friends’ conversations.
Talk to you again soon!
It’s been two and a half weeks since I started my most recent freelancing software development project. Two and a half weeks of 20 hour days and seven day work weeks. Yep, if this project were to end today, I could weather out the rest of the year before another project came along. I wasn’t born a fool and took advantage of the overtime for precisely this reason. I have aged a year in only three weeks, busting my ass into a nubbin’, but with this in my résumé, this is promising to be the wonderful start of a great year.
This project is huge both in scope and publicity, for our customer and for Rails. And we go live after Monday, March 12! There is still work after that, but next week, you all will get to know what I was working on! That’s cool! I’ve been dying to tell you. In some countries, this is as big as NASCAR.
The project backend is in Rails, and like most systems, it has a data entry component and an end user component. In this project, one data entry system feeds two end user components with more or less the same data, but styled and delivered differently. As I mentioned two weeks ago, this is a project about car racing, and as in any sport, the press and the consumer both need different levels of access to information about the race cars, the racers, and the race information itself.
One of the coolest aspect of this project is working with delivery from the Rails side, of Atom feeds to a Flash client. The Flash client is slick enough, as you will soon see. But the support of XML generation in Rails is sick slick. I would love to write about that in the future, as there are plenty of gotchas to learn about and work around.
I was not responsible for the Flash side of this project, not in the least. It was perfected by one of the masters of the craft, along with two other cool Flash guys. Hats off to them. Next week they get their 5 minutes of fame on this blog, as I will mention all team members by name when all is out in the open and the stupid NDA is moot.
Alright, I have to get going, as I have to eat dinner before I throw myself into the pit of overtime one last time. It’s all smooth sailing after Thursday night.
Last Wednesday, I sent emails and résumés for various job posts, and by that afternoon, I started getting nibbles. It was weird! Whereas I barely got any attention for over a dozen job applications I sent out between September and early February, I suddenly had five companies interested in me in a matter of hours! Maybe companies were waiting for post-holiday economy reports to start hiring? I wonder.
So to cut to the chase, I got a great hourly-pay remote development gig working on a Ruby on Rails project, on a really cool sounding website, for a very-high-profile vehicle racing company in the UK. It’s right down Ken’s alley, but if I’m not mistaken, this sport usually has a definitely more European racing audience. I think American racing fans like Ken, might resent these are not American cars, and just don’t watch. LOL
I cannot disclose any more information because of client confidentiality, but I think I may already have said too much. :-p
I’ll post a link here when the site goes up, at any rate. Only then can we drop all this silly NDA crap. It’s a bummer, because I can’t discuss application architecture specifics that would be of interest to my readers.
But fret not. There’s no rule about my discussing the project’s architecture in general. I just can’t say right out what architecture I’m dealing with on this gig.
I’ll be writing more about Rails in the weeks ahead, but just cuz I write about it, don’t mean it’s got a thing to do with work, you hear? :: rolls eyes ::
I have a deal for you if you are looking for inexpensive and reliable web hosting with great customer service (and who isn’t?) I offer you a coupon code for Dreamhost, the best shared hosting service known to me.
When you sign up with this link, you can get a $90 USD discount on a prepaid yearly account, or you can get a $50 USD discount on a monthly account, essentially waiving the setup fee. Disclaimer: I get a $7 USD referrer fee if you signup with this link.
By using this link, you can get 180 GB of space and 1.8 TB of bandwidth use per month, for as little as $29.40 USD for the whole year! This includes a free domain registration (or free domain transfer if you don’t want a new domain,) PHP 4.4.2 and 5.1.2, MySQL 5.0.24a, Python, Perl, FastCGI, Ruby on Rails 1.2.1, one-click web installs and upgrades of Joomla, WordPress 2.1, Gallery2, OS-Commerce, MediaWiki, and many others. And you are not limited to installing only those apps. You can install any other content you want to upload yourself. With Dreamhost, you can also set up your own webmail address for your domain, as well as SMTP and POP servers, and a huge amount of email addresses.
Overall, a really, really good value, and service I really, really am glad to recommend.
Note: if you get to the Dreamhost site, and don’t see the discount applied before you checkout, make sure you enable cookies. If you are using the NoScript Firefox extension, turn it off temporarily for dreamhost.com and restart the signup process from this page. If that still doesn’t get you the discount, restart the signup and enter promo coupon code PJTRIX1 in the signup form.
pjtrix.com and my other domains are now hosted at Dreamhost. I think they run just as fast as they used to on the GoDaddy virtual private host. But I don’t know, why don’t you come and kick the tires? Just let me know if anything seems amiss.
Be advised svn.pjtrix.com and trac.pjtrix.com are AWOL because of DNS propagation issues. I’m pretty confident they will become available once the DNS records are synchronized across the whole ‘Net. I tested the shared host install and content of trac.pjtrix.com on a dummy domain, and it ran fine.
As if to underscore that the move to Dreamhost was a good decision, I originally thought the svn.pjtrix.com and trac.pjtrix.com unavailability was a misconfiguration issue on Dreamhost’s part. I fired up a support request, and would you believe they got back to me in less than 30 minutes, and with the correct answer?
Let’s see the dumbass tech support folks at GoDaddy beat that! The best GoDaddy tech support can do on a first try is quote their unhelpful help pages, which they’re too dumb to understand anyhow, and they take many hours to reply! I guess it takes them that long to find which of their unhelpful help pages is more vaguely related to my problem.
Dreamhost tech support is leaps and bounds over GoDaddy’s. I never felt so confident about something as mundane and commonplace as web hosting. But as with everything else in life, there are dumbasses and grumpy saboteurs everywhere, ready to take your cash and trust and treat it without care. You need to be careful and find someone worthy of your cash and trust.
I’m glad to see first hand that Dreamhost lives up to its good reputation. And I’ve learned first hand that GoDaddy lives up to theirs.
As I mentioned at the middle of January, my virtual private hosting yearly contract with GoDaddy ends on March 1st, 2007. Back then, I decided to go with VPSLink and their LightTPD and Rails virtual private server package.
Well, that was not working out. LightTPD is a different beast from Apache, and I couldn’t get Drupal and some other software installed properly. Luckily, VPSLink has a 30-day money back guarantee, so I didn’t waste any money.
I had heard many good things about Dreamhost from many friends and through the web, so I decided to have a look see. And as luck would have it, I found a coupon code where I could get Dreamhost hosting for $29.40 USD for the whole year! With a 97-day money back guarantee, I also had nothing to lose. (I’ll share a coupon code later, so that you too can get a year of Dreamhost hosting for $29.40 USD.)
Dreamhost is a shared hosting company, whereas I had virtual private hosting with GoDaddy and VPSLink. That means I’m not free to install anything I want, in any way I want. But to be honest, I’m not doing anything out of the ordinary with pjtrix.com and my other domains. What I’ve been doing on my VPS host can be setup with a bit extra work on a shared host. Apache is quite flexible, and Dreamhost allows quite a bit of Apache reconfiguration through htaccess.
So far, the move to Dreamhost has been going well. I’ll be moving pjtrix.com tonight. My next weblog post will signal a successful move.
You can see from the title, I started this post two days ago! And I just managed to post it now! Busy, busy!
Hi there, readers!
I have been busy for the last week, looking for new gigs, and sending out article proposals for a few sites and print magazines. I’ve also been toying with making screencasts, using my camcorder, and operating iMovie, for a not-so-secret pjtrix project from the summer. And then there’s another two projects, but they are secret for now. All this fun left me with little time for pjtrix posts.
Among other news, this here weblog finally got approved for PayPerPost.com and ReviewMe.com. Let’s see if I find something you and I might be interested in. First thoughts: … meh …
I continue to cover living expenses with the odd gig here and there. I have to find a way out of the hole into better gigs, though. The secret and not-so-secret projects should help, as well as the writing. We’ll see. I remain hopeful for the near future.
I started this open source project in December, but I’ve actually made little progress in all of January. The learning curve is a little steeper than expected. Drawing a Mac OS GUI is super easy with Interface Builder, but making it work in a foolproof manner isn’t.
Then there’s the added complexity that all the Mac OS specific documentation is in Objective-C, a language I haven’t used or even looked at until now, and very different from the PHP, Python, Ruby, C++ and Java I know. And then I have to convert from the Objective-C examples to the Ruby-Cocoa construct I need to write my application. It’s not difficult, it’s just I haven’t yet internalized all the “bastard C-like object-oriented language from hell” newness.
From what I have gathered, Mac OS X Leopard is going to come with built-in Python and Ruby bindings to Objective-C. Maybe Apple will add some helpful documentation to their developer site that will help with this kind of conversion. I have half a mind to write a little GUI tool to convert short Objective-C snippets to their Ruby-Cocoa equivalents.
It’s not a pirate movie, and it’s not quite as good as the The Princess Bride, but Robin Hood: Men in Tights gets a good quote now and then in my emails and chats with my old college buds. And the Spam song always makes me laugh. So without much further ado, here is the monthly Akismet comment spam report.
In the month of January, Akismet reports I received 57 spam comments! This is compared to 74 for the entire year 2006. I remember not having any spam comments for quite a while, until some time in August 2006. I don’t remember the exact amount of spam comments I received in December, but I think it was less than 30, and November 2006 had about 20. So it seems that as I become more prolific in my posting, the spammers turn up their attempts. Or whatever.
Mateusz, Lenny, thanks for the comments.
Update: Reader Mateusz points out that there is an effort under way to port the XNA frameworks to other platforms using Mono. It’s great to see what the subversive, creative types come up with all on their own. It would be hilarious if PS3 owners could run XNA games by simply booting Linux. Take that, Redmond! Welcome to our social. LMAO!
My own take is that Sony is taking a laissez-faire approach, a la Franklin D. Roosevelt and the economy: let’s provide the tools, and whatever happens, happens. Let the market take it where it may. (I hope I am not embarrassing Mrs. Freite, my history teacher in high school, by mixing my economic strategies and presidents.)
While that is great, I think they could be a bit more proactive. They could encourage garage game development with the PS3 Linux project, by marketing it as such. A program like the old PSX Net Yaroze, but with PS3s and Linux, could attract some great talent. (See? Sony has been thinking about this garage developer thing for quite a long time.)
IBM and Toshiba see this as another marketing venue for the Power processor line, especially the work on the Cell Engine that they did. Toshiba only promotes Cell within its embedded processor market, not putting an oar in to help with the garage developer thing. IBM is a bit more active, but only within their established promotional circles: developerWorks and alphaWorks. And it is hardly a big push.
Microsoft is, of course, going all out, promoting XNA as a garage developer’s haven, especially generating excitement with the possibility of garage developers selling games on XBox Live Marketplace for both PC and XBox360. In my opinion, MS is doing a better job at pushing their ideas.
It’s like IBM and Sony don’t quite see what it is they have to do, having just provided the tools and sitting back to see what develops. While it’s great they’re not stirring the pot too much, the stew is gonna ruin if there’s no cook minding the stove.
OK, that’s enough analogies for today. Thanks for keeping the conversation going, guys. Comment away, and let’s keep talking. Anyone else have any thoughts to share?
The Sony PlayStation 3 (PS3) is the easiest and cheapest way for programmers to get their hands on the new Cell Broadband Engine (Cell BE) processor and take it for a drive. Discover what the fuss is all about, how to install Linux on the PS3, and how to get started developing for the Cell BE processor on the PS3.
Let’s ignore the $600 USD “cheapest” flame bait and concentrate on the business significance of Sony and IBM providing and promoting Linux for the PS3, shall we?
The PS3 is not the first game console officially sanctioned by the manufacturer to run Linux out of the box. For a few years, Sony sold a $99 Linux kit for the PS2, available only through their online store. It was discontinued early last year, and is now only available on eBay.
But why would Sony provide Linux for any of their video game consoles? What do they have to gain? In business, nothing is done “just” for the benefit of the consumer, much less for pure “free as in freedom” idealism. In the end, it all comes down to driving revenue and profits up, which ultimately pleases the shareholders. Cynical, perhaps, but do you really believe a public company as large as Sony does anything if not for the sake of revenue and profits? Any activity that does not somehow help improve those two factors, will not be seen very positively with the shareholders.
But still, what does it mean? How does PS3 Linux translate into revenue and profits for Sony? Let’s examine this some more, in the context of an obscure game console manufacturer with a similar strategy.
In Korea, the GP32 game console may not have run Linux, but the manufacturer provided on its website, a full set of open source programming tools that ran on Windows. Linux and Mac OS X support was added by the GP32 developer community shortly later. This made the GP32 the first off-the-shelf game console where the users were officially encouraged to make games for it. GamePark, the makers of the GP32, followed up nearly four years later with the Linux-powered GP2X, which also had a free, full set of development tools, including most of the source for the device’s implementation of Linux.
The response to the consoles was great, both in its native Korea and around the world. There is a healthy global open source game development community. Code-savvy game geeks from all around the world have taken to the GP32 and GP2X. Instead of dismal failure competing against Nintendo and Sony, GamePark has survived and grown against all odds. The gadget-happy Koreans responded despite fierce competition, and a healthy Korean commercial game developer community has grown to serve the Korean GP32 market. Many of these commercial developers were founded by the proverbial “two guys in a garage,” propelled to creativity by the open community GamePark fostered.
So back to the PS3. Sure, it’s freakishly expensive for just a single threaded, single tasking, web browser, digital photo gallery, photo slideshow player, propietary-format movie player, game console. But with Linux and the Blender Game Kit, OpenGL, SDL, etc., this is a garage game coder’s dream workstation on the cheap, with high-definition accelerated 3D graphics, surround sound, and all kinds of fun wireless tech at the developer’s fingertips. At $600 for a 60 GB model with 512 MB of RAM, it would make a nicer Linux computer than most sub-$1000 Windows PCs out there.
Perhaps a cottage gaming industry will grow out of the PS3 Linux strategy, like the GP32’s in Korea. Which makes this Linux play by Sony the direct competitor to Microsoft’s XNA move. You see, both Sony and Microsoft see independent game developers as the future savior of the game industry.
The big game publishers and developers screwed themselves, just as the MPAA and RIAA did, by making production ever more expensive, formulaic, and insipidly uncreative, and by depending on the quarterly mega-blockbuster to survive. They did this at a time when more people than ever have access to the means of production and distribution of digital creative content.
The goal of Sony’s Linux strategy and of Microsoft’s XNA, is to attract the independent game developers to their respective platforms. Microsoft believes that giving the tools away for “free as in free beer,” while keeping the secret sauce bottled up, is the successful strategy. Sony believes making the tools as open as possible without screwing the pooch is the the best strategy.
Now, as an open source fan, I will argue that a truly open community of coders, without central control and oversight, is going to prevail over the “you must please the gatekeeper” culture Microsoft wants to impose with XNA on XBox360.
But let’s not be too idealistic and see this independent game developer thing for what it really is. Just like IBM’s open source moves and Tim O’Reilly’s publishing strategy, both Microsoft’s and Sony’s strategies are all about the alpha geek mind share, and self-interest in the increase in revenue it generates.
But cynical as that may sound, open source is still the better thing. It gives more control to the developer and imposes less order, which leads to greater opportunity for creativity to go where it may. Anything less than an open technology and open community will stave off innovation before it even has a chance to set in.