Archive for the ‘Opinion’ Category

Take The Risk – It’s Totally Worth It

Posted on March 11th, 2009 in Opinion | View Comments

The following post is something I sent a friend who’s still works at my former workplace. She was feeling a bit down due to the circumstances that have been happening there (and that I know all too well), so I offered her this piece of advice. This really isn’t technology related or anything, but it’s something I wanted to post to keep on my blog, to remind myself whenever I feel stuck in my life.

You’ve been there much longer than I was, and you know better than I that nothing will ever change. When I left, I was obviously happy, but I still felt a bit bad for those who stayed behind. But as I think about it, the people who have stayed are usually because of their own choice. It might sound cruel, and it’s not my intention to make it sound like I’m a heartless bastard, but usually people are in negative situations because of themselves, because they don’t do anything about it.

I spent the better part of 2007 doing everything I could to find a new job – I would learn new things related to my field, I would scour job sites, looking for jobs that sounded better than my current situation at the time, I would send resumes all over the place. It takes a while, and you get pretty damn frustrated when you get interviewed by companies and never hear back from them. But I’m a firm believer that if you want something and you work for it, eventually everything falls into place.

I want you to take a moment and honestly assess yourself. Have you done anything to improve your current work situation? If not, why haven’t you done anything? Are those situations really impeding your ability to move on to something better, or are they just excuses for procrastinating? On the same note, if you are doing something to try to make things better, are you giving it your all? You’ll need to really want something to have a good chance at getting it.

I tell you these things because for a while I was pissed off because things didn’t get better. In reality, they weren’t getting better because while I thought I was trying to make things better, I really wasn’t doing much to improve anything. Sometimes you need to take a good, long, hard look at yourself to find what’s wrong. Only then can you begin to take steps to cure everything.

Hopefully you don’t take this message the wrong way. I got nothing but love for you, and I’m truly happier when someone is doing awesome than when I do well myself. I want to see my friends succeed even more than I do. So I hope you’ll be able to do so. And if you need help, then what the hell am I here for?

The above post truly reflected my life a few years back. I was miserable, feeling stuck in a job with no opportunity to shine or do anything worthwhile. But I realized I really wasn’t doing anything to help my situation. So it was pretty stupid of me to be angry at the world when it was really my fault. Once I realized that and got my ass back on track, things started falling into place.

This whole mindset I sent my friend was due to a book that was recommended to me, called The Ultimate Secret to Getting Absolutely Everything You Want. I admit, I’m pretty skeptical about these types of books, but Mike Hernacki (the author) kept this secret as simple as possible. It all boils down to one thing: If you want something, you must be willing to do whatever it takes to accomplish it. That’s it. Simple, isn’t it? And it’s so true. People are so afraid to take risks, that opportunities pass them by when they could’ve reached out and taken control of what they wanted.

I’m pretty happy at this moment in my life. But if the need ever arises to find change, I know what to do. I hope my friend does too.

What Have I Been Up To?

Posted on March 6th, 2009 in Books, Databases, Mac, Open Source, Opinion, Programming, Ruby On Rails | View Comments

It’s been quite a while since I last updated this blog. I should seriously start writing more often. So, what have I been up to? With the cold weather here in New York City, it gets difficult sometimes to go out and have fun in the city. As usual, most of my time is spent on technology, software development, stuff like that. Here’s a brief recap of what I’ve been working on:

Got a new MacBook Pro, and I love it – I finally gave in and bought myself a shiny new MacBook Pro. I’m having a blast with it. For the open-source developer in me, this has everything I could ever want. It’s a beautiful and sleek machine that has gotten me highly motivated to start expanding my knowledge in different directions. While I still consider these laptops to be pricey, they’re really great.

Learning Objective-C for Mac and iPhone development – Since I got a nice Mac, I figured I should start learning Objective-C, then eventually get into Cocoa and the iPhone SDK. I’ve always been impressed by some nicely-done open-source Mac applications, and iPhone apps have always seemed to be so creative, so I wanted to learn how to build some myself. Since I’ve been working for so many years on dynamically typed languages (like PHP and Ruby), it’s kind of a total change of pace to go back to a somewhat-statically typed language like Objective-C. It’s been a bit of a challenge, since I last used a C-based language back in my college days. But it’s going along well so far.

I’ve compiled quite a few resources for learning all of these things. I recently purchased a book called Programming In Objective-C, which seems like the de-facto book on Objective-C, as it’s pretty extensive..And there are a few good screencasts – PeepCode developed a screencast dubbed Objective-C for Rubyists, and The Pragmatic Programmers have a screencast series by Bill Dudney called Coding in Objective-C. Of course, Apple has done a fine job with their Objective-C documentation. All of these resources should get you coding in Objective-C in no time.

The iPhone development part is mostly being learned because at my day job we would like to create a nice iPhone app for users of our site. I truly think that a mobile interface will expand our user base easily, even if people say they don’t really use mobile interfaces for a lot of things. I find myself using Facebook and Amazon’s iPhone apps more than I visit their sites.

BarterQuest is getting better and better – It’s been a wild ride on BarterQuest since we launched. We’ve been featured all over the place, from blogs to television shows, and we’re getting more and more users visiting, registering and trading on our site every single day. I’ve even traded twice already, and everything has gone as smoothly as it possibly could. It’s a great way to get the stuff you want by getting rid of the stuff you don’t want.

If you haven’t checked out our site yet, or haven’t done so in a while, I highly recommend you visit us soon. We’re going to be adding support for Real Estate in a few weeks, so our range of tradable items will greatly expand. And stay up to date with all that we’re doing by following us on Twitter.

Learning (and liking) CouchDB – My curiosity with CouchDB started when people were mentioning it quite a bit, and some Rails libraries like CouchRest were gaining some attention. So I checked it out for the first time, and I had no freakin’ clue why someone would use document-oriented databases, when relational databases did just fine.

Then a week I was working on a side project, and when trying to design my classes, I noticed that I would either have to denormalize my database tables, or be strict with normalization, but have a rather messy database schema. Then it just hit me – I finally knew the reason why CouchDB would rock in this scenario, where the data I was storing wouldn’t always follow the same structure. So I got into it, and I’m really liking it a whole lot. It’s something different, yet really useful in some situations. Seeing that there’s a market for databases like these, like Amazon SimpleDB, it seems like CouchDB (and document-oriented databases in general) will gain much popularity in the foreseeable future.

These are just a few things I’m playing along with. It seems like there are a lot of fun times ahead in software development and computing in general. I’m just happy to be able to ride the wave.

Goodbye, Digg and Reddit – Hello, Hacker News

Posted on January 27th, 2009 in Opinion, Sites | View Comments

For the past few years, I’ve more or less kept the same RSS feeds in my reader for all that time – TechCrunch, Signal Vs. Noise, Seth Godin’s Blog and Penny Arcade. I also have a lot of smaller, niche blogs that either don’t provide me with much information anymore (sorry, Slashdot) or that are rarely updated (just like this one!), but those don’t stay too long. The ones I mentioned here are feeds that will stay with me until the day I die. Or until something much better than RSS feeds are created, whichever comes first.

Two other sites which I considered staples of my feed reader were Digg and Reddit. I was seriously addicted to these two sites a few years ago. I would go home after work and just read post after post of their front pages, without skipping a single one. If you have followed these sites, you know that over the course of 12 hours, a lot of news can appear on these sites. However, these past couple of months, I noticed I was just skimming the articles on these sites, and sometimes even just marking them all as read. It got to the point that it was just easier to delete these two RSS feeds from my reader, after around three years with them. So, why did I have to part with my beloved RSS feeds?

Well, both Digg and Reddit display user-generated content, meaning that anyone submits an article, people vote it up, and if it gets enough votes it’ll show on their main page, with thousands and thousands of people viewing it. At first, this was pretty damn cool – A lot of neat news and sites were introduced to me via these sites. However, with great popularity, it starts to attract a lot of new users. Apparently, a lot of these new users are prepubescent teens who don’t provide much content to begin with. It just started to become asinine post after asinine post, most of it which left me scratching my head and thinking “How the hell did this get voted up?”

Both Digg and Reddit had different ‘straws’ that broke the proverbial camel’s back. For Digg, my issue became the posts that were being voted up on the main page. As of right now, Digg’s front page has links ranging from lame pictures to videos of basketball players head kissing to ‘Tips on surviving the World’s Weirdest Mexican Restaurant’. If I were 15 years old, I would be click on the ‘digg it’ button all day long! Nowadays, I don’t find it amusing at all. I also tried subscribing to other sub-categories of Digg, like Technology, but most of the posts didn’t grab my interest either.

For Reddit, the same issue happened when I subscribed to their front page. However, I thought I had found bliss when I subscribed to their Programming section. The posted linked were usually good. However, what turned me off about this service were the actual users. Or rather, their comments that were posted for each link. In most cases, it seems like everyone wants to be a comedian, and the norm of posting comments was just limited to one-liners. Not quite what I expected out of a group with programming and technology topics. It even made me not want to contribute to any discussion or submitting links.

Thankfully, I discovered Hacker News. This is just what I was looking for – an awesome news site, with the topics that interest programmers, with actual intelligent discussion between its users! The topics that are promoted on their main page are not the failed attempts to be funny like Digg’s links, and the comments are very thought-provoking and encourage discussion. I’ve made more comments in Hacker News in the past two weeks than I did in Digg and Reddit in the past year, perhaps even longer than that.

If you’re developer like me, who’s yearning to be educated and talk it over with like-minded people like yourself, you’ll be doing yourself a favor by heading over to Hacker News and joining in.

Don’t Waste Your Time On Me – Worry About Yourself

Posted on November 8th, 2008 in Funny Stuff, Opinion | View Comments

Yesterday morning, someone posted a comment on a post I wrote at the blog of the company I work for. This person, named ‘Tom’, said that our site was filled with lies, and that we had false advertising all over the place. Of course, I don’t get angry about negative feedback, and you shouldn’t either. I politely reply to the comment on the blog, letting this person know that we apologized for any misunderstanding, that what we claim on our site is true, and provided our support E-Mail address in case he has any questions or inquiries. We’re more than happy to listen to what people have to say. Well, Tom replies a while later saying that it’s “not my job to make sure your advertising is true.” Well, obviously he doesn’t want to open any sort of dialog with us.

I show this to my boss, and we started looking around. Obviously, we look into our site, using the IP address from where the blog comments originated from. We notice that there’s a user who registered to our site, named ‘Lucy’, registered with an E-Mail address different to the one used to leave the blog comment. It was a free Gmail address, and of course, the IP address could be the gateway address for a larger company. But we decide to continue looking on, with the E-Mail address of the registered user in hand.

Upon further sleuthing, we notice this person has left comments on blogs and newsgroups, under different names but mostly using one name, Mark, more than the others. He was also touting a particular site in all of his other posts. When searching for the name we found, it turns the perpetrator who left the negative comment on our site: the co-founder – and now VP of marketing – of a competing site. We decided to leave it there, since it’s obvious by his comments left on our blog that this person is trying to hurt us. Plus, it’s hilarious that our sleuthing was sort of akin to a South Park episode, where the boys discover some criminals by searching all major Web 2.0 sites.

I can’t help but laugh at this turn of events. I mean, here you have a co-founder of a competitor, and instead of focusing on how to actually make his product better than ours, he decides to take a stab at others who are competing with him, apparently in hopes of inflicting some damage. To make matters worse, he does it under different guises. To be honest, if this person came forward from the get-go and told us he was from that competing site, and that he thought our site was misleading in any way, I would’ve been happy to open the lines of communication towards him. I’m sure we both would’ve gotten something positive out of it.

I’m not saying that you should be totally oblivious to your competition. Like the saying goes: Keep your friends close, and your enemies closer. You need to know what others are doing, so you can get a leg up on them, do things they’re not doing and make yourself better. That’s the point of having and running a business. But to spend actual time making baseless comments to the competition leads nowhere. Even worse, it makes you seem afraid and desperate to even consider attempting such stunts. And we’re not even close to mentioning something called “professionalism”, which this person seems to be seriously lacking.

I can offer some bits of advice from all of this. Make sure you know who you’re competing against, but don’t spend your time on them. Spend your time where it matters the most: your product. If you’re sure of yourself and the work you’re doing, then you shouldn’t worry at all about someone else. And even if someone is doing better than you, instead of wasting time and energy worrying about someone else, take it and make yourself better. Like I’ve heard before, “A dog in desperation will leap over a wall.”

That’s Why There Are Choices, People

Posted on September 18th, 2008 in Opinion, Programming | View Comments

I was having a quick tech discussion the other day on a non-tech message board I visit on a daily basis. I had mentioned how frustrating it is to have to spend hours developing for good ol’ obsolete Internet Explorer 6.0, and why people are so damn lazy to upgrade. There are countless reasons why people don’t upgrade, which I won’t go into now to avoid a long, long rant on why I think these people should be stripped from their computing privileges. But I was talking about the recent developments in web browsers, in particular how Firefox 3.1 is going to be much faster, or how Internet Explorer 8.0 is promising to play better with web standards, I received this delightful comment from one of the few techies (and one of the few females) in that forum:

He can shove Firefox 3 where the sun doesn’t shine, and if he suggests Internet Explorer 8 in person I will be forced to cram his balls up over his head whilst they are still attached to him.

Just lovely. And I hadn’t even suggested that people upgrade!

The particular reasons she gave me as to why she made this statement are irrelevant to the discussion (“Firefox 3 doesn’t support all my add-ons yet and Internet Explorer lost me a long, long time ago.”), but something slightly ticked me off about this brash statement.

Every single person on this planet has an opinion to express, for whatever reason. People involved in computers aren’t excluded. I’d say we absolutely love expressing our opinions about a myriad of things, leading to sometimes heated (and entertaining) discussions: Windows vs. Linux vs. Mac, Ruby vs. Python, vi vs. emacs… No matter what you say, there will always be someone to express the opposite.

I learned a long time ago to avoid these discussions altogether. Why? It’s not because I’m a poor debater and fear I’m going to lose (which is most likely true). It’s because no one in this world will ever be pleased. That’s why there are choices in this world. To put it as simple as possible, someone wasn’t content with something, so they made another thing. And they’re happy with it.

So if I’m happy with Ruby and Rails, and you’re extremely happy with Python and Django, then I respect your opinion, sir. Just don’t come down on me and run down a zillion reasons why Ruby or Rails suck (which are probably variants of “Rails Can’t Scale“). Be happy with what you have, I’ll be happy with what I have, and we can co-exist nicely in this vast software development universe.

Amazon Ships Really Fast – For Those Who Know

Posted on September 17th, 2008 in Books, Opinion | View Comments

Yesterday afternoon, I had the urge to get a new Rails book, so I went to Amazon and ordered The Art Of Rails. This post isn’t about the book, but I’ll try to write about it after I read it.

This post instead is about the weird shipping service that Amazon provides on its site, at least in my particular case. When ordering something in Amazon, you get the option of how fast you want to get it. Among their options are: Standard Shipping (which is 3 days according to the site), 2-Day Shipping and Next-Day Shipping. I usually choose the standard shipping, since whatever I order isn’t a matter of life or death. I completed my order, expecting the book to arrive on Friday or Saturday, just in time for the weekend.

I just checked the tracking on the book – It’s already waiting for me at home, less than 24 hours after ordering it.

Of course, that’s not happening every single place in the country. It seems the reason I got it so quick is that Amazon has a distributor close to New York City (the tracking indicates it left Bethlehem, Pennsylvania, which is about 90 minutes away), so they received the order and shipped it out UPS Ground, which is just a short drive here. It isn’t the first time this has happened. I usually get books from Amazon one or two business days after I order them.

Obviously, I don’t mind the fast service. That’s why I continue to constantly buy from them rather than any of the other million bookstores I have access to. But take a look at the costs for the different shipping options for the same book:

  • Standard Shipping – $3.99
  • 2-Day Shipping – $11.98
  • Next-Day Shipping – $17.98

So, I spent 14 dollars less than someone who chose Next-Day Shipping, yet got the book as quickly as they did. Pretty sweet deal, but I wonder how many people from this area (and perhaps other areas where shipping is just as quick) keep on choosing those ‘faster’ options unknowingly.

Like I said, this doesn’t apply to every single place in the country, so that’s why there are different options. Also, for someone who really needs an item the next day, selecting the Next-Day Shipping option can serve as a guarantee. But with the millions and millions of orders and a whole lot of stats to go along with those orders, couldn’t Amazon have estimated dates depending on where the items are shipping? This way, the consumer is better informed and can make a better decision. It just seems like the right thing to do.

Oh, and if someone from Amazon is reading this, please don’t purposely slow down my shipments next time.

Envy Casts – The New Hotness?

Posted on September 16th, 2008 in Opinion, Programming, Ruby On Rails | View Comments

Last night I was in the mood to just review some of the stuff I already work with on a daily basis. I’ve been reading up on a lot of new stuff that I’m dying to play with, so a quick review of familiar concepts would be a welcome change of pace. Plus, it always seems I’m learning new stuff whenever I go back to an old concept. So I was searching around to see what I could get. I’ve already exhausted most of my Ruby and Rails books, gotten most of what interests me on PeepCode, and seen virtually every single episode of Railscasts, so I wanted to see something different.

That’s when I remembered that the guys from Rails Envy started producing their own screencasts, originally dubbed Envy Casts. As you can see with what I wrote above, and what I’ve written previously, I absolutely love screencasts. And since I’m an avid listener of the Rails Envy Podcast, I thought I would give these guys a try.

So after viewing the screencast on my way to work today, I have to say that Gregg Pollack and Jason Seifer have a good thing in their hands. Their screencasts are totally different from everyone else’s, which is immediately apparent. Instead of just a voiceover of how something is done, they actually have the guys (mostly Gregg) in front of a green screen. While it would virtually be the same if they went the regular screencast route, this adds some sort of personal touch.

Of course, the guys inject their humor as usual (with Jason usually appearing on screen for comedic purposes and nothing else). It even has quick educational breaks, with Gregg posing as a doctor to give us lessons on how our brains work. It has absolutely nothing to do with Ruby, Rails, Active Record, or anything related to software development, but as I mentioned, it provides quick breaks between topics.

So far, they only have one screencast covering Active Record. But I’m definitely looking forward to subsequent screencasts, as long as they’re as good as this first one. Perhaps we have the new hotness of the screencast world in our grasp.

Delete Your Crap

Posted on May 6th, 2008 in Open Source, Opinion, Privacy, Software | View Comments

I posted this story on a non-technical message board I frequently visit, as a service for some of the users there who might not have a clue on how easy it is to retrieve data from a supposedly-formatted drive. I decided to pass it along here as well. I think privacy is very important, and with the proliferation of electronic devices that store data, it’s getting easier to retrieve information from others.

Here’s a story of some dumb-ass kids who recorded themselves smoking weed on a digital camcorder, returned the camcorder to the store, forgot to erase their tapings (most likely due to said kids smoking weed previously) and the next person who bought the open-box camera from the story posted the videos all over the Internet for all the world to see:

Remember to delete your stuff from electronic equipment if you’re returning it, selling it or giving it away. And even then, be wary of it.

I was once sold a USB flash drive from a friend, and although my buddy deleted the contents, I was able to see what he had their previously before with a freely-available program off the Internet (don’t remember exactly which one right now), out of curiosity. Dude had some… let’s say ‘interesting’ pics of his then-girlfriend.

His way of deleting the contents was to simply do a quick format on the drive from his Windows machine before giving it to me. To avoid all the technical details, for those who don’t know, what this does is simply destroy the FAT table and/or boot sector, which is a sort of ‘table of contents’ for the drive, thus nothing appears when you try to access the drive. But the data is still in the drive’s sectors, and unless you rewrite those sectors (either by copying something new in the flash drive or using some software, which I’ll get to in a minute), they’re easily accessible.

The program I’ve used for a while with Windows is called Eraser (I carry a portable version of this program on my USB drive, called Eraser Portable), which makes sure your data is clear from your portable device (like flash drives, SD cards for digital cameras, even iPods). In short, what this does is over-write the sectors on the drive multiple times with ‘garbage’, so it’ll be virtually impossible to get that information from freely-available tools. I’m guessing the government has more advanced tools, so for the overtly paranoid, you’d be better off just smashing the drive to pieces and dipping them in a vat of acid.

Just wanted to pass this info along so you people can keep your privacy, and know how easy it is to grab a hold of your data.

Read more books!

Posted on April 25th, 2008 in Books, Opinion | View Comments

If there’s one positive thing I can take out of having to ride the subway to work for one hour each way every single day, it’s that I’ve been able to catch up on a lot of reading. I love to read a whole lot, particularly about technology. So lately I’ve been able to finish a couple of books I had around, plus I’ve been able to afford more books to read, so I’ve been buying more. While I haven’t read a library’s worth of books, I think I’ve read more than the average software developer has read. I would go into a long discussion about that fact, but maybe another day.

With a myriad of books out there, it’s difficult to know which ones to read. I first got inspired by Jeff Atwood’s Recommended Reading For Developers list. Since then I’ve purchased and read many of the books Jeff recommends, which are still pretty relevant and really good reads.

So I decided to dedicate some time to write some mini-reviews about the books I’ve read, in case someone wants an honest opinion on them from my perspective. I’ve already written about a couple of books before (like the upcoming Advanced Rails Recipes book, and my not-so-popular opinion about The Pickaxe Book), so I hope to expand on that.

Also, I added a nifty text widget on my sidebar which I will update constantly on which books I’m currently reading and into, with a link to Amazon (no referral link!) for more information. I hope you all find it interesting to see where I’m focusing now.

Any suggestions on recommended reading for a software developer like me? While I like programming-specific books, I would really like to get into more books that focus not on one single piece of technology, but as a whole. Any recommendations will definitely be appreciated.

Professional Dependencies

Posted on April 19th, 2008 in Opinion | View Comments

When I left my previous job to come to New York City, I made sure to clean up as much as possible, leave as much documented as possible, and clear up things with those who would be replacing my normal duties. I not only did this because it’s the professional thing to do, I also didn’t want to screw over my former bosses, much less my co-workers, since I did want to be able to maintain my friendship with many of them. Many times I saw people leave abruptly, which led to slight disorganization among the ranks for a while.

Since I only had one week to do this before I finished my non-work duties (moving, packing, saying goodbyes, etc.), and let’s face it, my mind wasn’t at my current job at the time due to the excitement of going to New York, there was bound to be something missing. So I kept the doors open with my former bosses and co-workers, assuring them that if they needed anything that I could help them with, to let me know so I can try to help them any way possible.

While I haven’t been called a lot by my former co-workers, I still get calls from time to time from them asking how to do a certain thing, or clearing up something I didn’t explain too well before I left. I also received an E-Mail from my former boss, asking if I could do some maintenance programming tasks. I has accepted, but since they didn’t answer me back in time if they accepted my terms (or rather, how much I would charge them for my time spent on this), I moved on to other projects and had to decline.

Now, I don’t mind helping out my friends as much as I can. But the problem is that a lot of the times I can’t help for whatever reason. Maybe it’s due to me having much work now like the aforementioned projects getting in the way, or I because I simply don’t remember well something in particular. Whenever this happens, I feel like I’m letting others down. Chalk that up to the way I am. Whether it’s a blessing or a curse, I’m still not sure yet.

Not to sound evil or anything, but although I want to help, I’m not under any obligation to do so anymore. I also think about it this way: When I arrived there, I had absolutely no help at all from the previous person doing the tasks I did, because that person wasn’t there anymore (from what I heard, he left abruptly on bad terms with the company). So I had to do things on my own. There were things I had to ask about, of course. But most of the things I had to learn for myself, like the programming, what type of servers / active scripts running, etc. This wasn’t by choice, it’s because there was no documentation left behind, and the bosses had no clue what the other person did.

So I question myself, where does the ‘professionalism’ end? Should it have ended once I collected my final paycheck and walked out the door? Or is it fair to have a short ‘grace period’? It puts me in a difficult position a lot of the times. I don’t want to let my former co-workers (or at least the good ones) down during their times of need, but I don’t want to be a crutch for them for too long. I think it’s time for them to start rehab and start walking on their own again soon.