Stoners Please Pay First


IMG00114-s

author: Angry Hacker | posted @ Monday, June 29, 2009 6:34 PM | Feedback (1)

Parenting Fail


Pole Dancer with kids.

ParentingFail2

author: Angry Hacker | posted @ Thursday, May 14, 2009 4:14 PM | Feedback (0)

Bulk Scanning Your Old Photos


Search for solution

I have a lot of paper photos.  A whole lot.  Like 10 large albeiffelums  each containing around 150 photos.  I recently tried to convert them to digital by using a scanner.  The job was massively mind-numbing and I quit after 6 photos.  But I still wanted digital copies.

So I checked out a couple of services that claim to do this.  The best one is probably DigMyPics.com.  They offer scanning at 300 and 600 dpi.  For 300dpi (which is similar to a 2 megapixels digital photo) , the cost to scan all my 1500 photos is around $410 or $0.27 per photo.  For 600dpi (similar to 8 megapixels), the cost is $675 or $0.45 per photo.  Plus shipping and handling, of course.  I’d say anything over 300 dpi is overkill. 

It’s kind of pricey, but what really kills it for me is that I have to mail the photos to them.  If the photos are lost, they are lost forever.  However, it’s an impressive service. 

Craigslist to the Rescue

So seeing how I have zero patience for scanning, I decided to hire a person to do it for me.  I posted an ad on Craigslist (in the computer gigs section).  My terms were $40 for 4 hours of work, so $10 an hour – a bit over the $8 minimum wage in California. I honestly did not expect a lot of response,  but to my utter amazement I got a massive amount of emails.   I had a hard time trying to decide whom to give the job to.  Eventually, I settled on a lady that lost her job recently and seemed in real need of money.  Plus at her last job, she used to scan a whole lot.

The process

Before the lady arrived, I set out to create a process to make sure that the scanning was as fast as it could be.  I decided to go with 300 dpi, rather than scanner’s default 150 dpi.  This meant that the scanner worked almost twice as slow.  With my scanner (Canon LiDE30), I could fit 3 photos at a time in 2 different configurations. 

Configuration 1 Configuration 2
config1 config2

Configuration 1 would have been perfect, but I wanted to use Photoshop’s Crop and Straighten Photos feature, which splits up the scanned image into separate photos.  Unfortunately it is not smart enough to figure out where one photo stops and the next one starts and, thus, requires white space between the images.  So to go forward with this config would require manual cropping.

Configuration 2 provides the white space, but it requires that photos 2 and 3 be rotated (so a bit of extra work).  So I settled on this configuration.   

When my hire showed up, I quickly walked her through the process and she was pretty efficient going forward.  She worked 4 full hours and while she waited for the scanner to do its thing, she worked on her unemployment application.  Somehow she seemed to enjoy the work and at the end asked me whether I wanted her to come back to scan more photos.

Results

All in all, she processed 110 photos.  So applying the math, that works out to be about $0.36 per scan.  It’s a bit pricier than DigMyPics but not obscenely so.  110 photos in 4 hours does not seem like a lot, but she was actually working fast.  There are a couple of steps that slowed the process down.

  1. The scanner itself needs to be faster.
  2. Removing photos from the album and placing them back in after the scan takes time. 
  3. Having to always rotate 2 images.
  4. Saving each cropped file takes a bit of time.  I had her saving files as PNG and Photoshop asks you every time whether you want to interlace the file.  I did not find a setting to tell Photoshop to stop asking.
  5. The file naming scheme.  I basically told her to name files numerically, so she always had to look up what was the last number that she saved.

How to speed it up.

Or a better way to ask this is how to reduce the cost of scanning a single photo.  So method #1 is easy, get a faster scanner. 

Part #2 has a bit more hair.  I am planning to write a Photoshop script (.jsx script) that will do the following 3 things automatically:

  1. Scans the 3 photos
  2. Splits them up into 3 separate images
  3. Auto rotate images 2 and 3
  4. Saves the images to disk.

Combining these two methods will hopefully bring the price down and speed up for the next go around.

author: Angry Hacker | posted @ Sunday, April 26, 2009 12:11 AM | Feedback (0)

Android Adventures


I like the Android OS.   There is a foregone conclusion in many circles that it’s the heir apparent to the iPhone OS.  Maybe it will happen, maybe it won’t.  But after seeing it at last year’s Google I/O conference, a seed has been planted in my mind that I should develop for it.  The barrier to entry for developing Android apps is really low.  Basically all the tools are free (SDK, Eclipse).  The language is Java, which even c# refugees such as myself can easily pick up in an afternoon.  Documentation needs to improve, but other than that any question you have will pretty much be answered on the android forums.

rimshot The seed came to fruition early this year and I wrote a really simple app – which did one thing and that is play the Rimshot sound.  I put it out on the Android Marketplace and to my amazement, 2000 people   downloaded it in the first 2 days. 

The cool thing about the Android Marketplace is that there is no wait time, there is no submission process, there isn’t a thing standing in your way.  As soon as you upload the NotFunny2application, it is immediately available in the store.  You pay a one time $25 fee and you are in.   Compare this with the iTunes store ($99, plus months waiting for submissions to be approved), Microsoft Mobile Store ($99 to enroll, $99 per application) or BlackBerry App World ($200 per application).

The experience emboldened me and I wrote a second application, called That’s Not Funny.  This application contains a collection of sounds that are handy when somebody says something that’s unfunny (e.g. Boo sound, Wa-wa-wa-wa, etc…).  In addition, I integrated ads into the application.  I was trying to see whether it is possible to make a living writing mobile apps. 

The number of downloads for That’s Not Funny totally blew me away.  As of now, it’s been downloaded by over 50,000 users.  Given the number of G1 phones out there, that’s like 1 in every 12 owners.  The integrated ads yielded $174 for February and about $240 in March.  Can’t really live on that, but if you have several successful apps, it starts to become possible.

betterdeal2 Which brings me to today.  I’ve released my first paid application called Better Deal.  It’s 99 cents.  The idea came to me while I was at Costco, trying to decide between 2 gigantic sets of paper towels.  One was 704 square feet for $16.99 and the other one 640 square feet for $14.99.   I couldn’t figure out which one was a better deal, without trying to do massive brain acrobatics in a crowded and noisy store.  

So I set out to write an application, which would be able to figure these types of pricing issues for you.  It was not too hard to write.  Really, the most complicated task was getting the layout right. 

I am realistic and guessing that it won’t get 50,000 downloads or anywhere close to that.  But it’ll give me a gauge of what to expect for paid apps.

If you are reading this on your G1 phone, you can get the application here.

author: Angry Hacker | posted @ Thursday, April 09, 2009 1:12 AM | Feedback (0)

Top 10 signs you should not be a VB programmer


And now for something completely irrelevant and totally out of date.  I was cleaning out “My Documents” folder today when I ran into something from another lifetime (like around 2000).

A co-worker of mine used to refer to VB6’s Run button as the Play button, among other things.  That inspired me to write a Top 10 list (i was a fan of Letterman back then) as to why one shouldn’t be a VB programmer.  It will only make sense to you if you coded VB5/6 in the 90’s.  In fact, for some of the terms, I had to take a double take (WebClasses?). 

10. You think that Inheritance is something you get from your granddaddy

9. Think that that Call keyword has something to do with the modem.

8. You think that a WebClass is something you take at your local community college

7. If you look at a checkbox and exclaim: "Wow! Is this new in version 6.0?"

6. If you see an ad in the paper for VB programmer paying $8.25 and you respond to it

5. If you think BLOB and DCOM are new slangs for crack

4. If the ad says "VB programmer with good communication skills needed" and you respond because you have good communications skills

3. If your resume states that you have 27 years of Visual Basic experience

2. You think that downloading VB Helpwriter will help you write VB code

And the Number 1 sign, you should NOT be a VB programmer is

1. You refer to the 'Run' button as the 'Play' button

author: Angry Hacker | posted @ Sunday, March 01, 2009 10:52 PM | Feedback (1)

5 ways to be a more efficient developer in 5 minutes.


The other day I saw a really cool and to the point post entitled 8 ways to be a better programmer in 6 minutes.SecretGeek was talking about .NET development, of course, and so am I.  I thought I’ll come up with my own list, but focus on efficiency and speed.  Anyway, here it goes.

  1. Make commenting and uncommenting dead easy. 
    Right on the toolbar, click Customize… Drag Comment Block and Uncomment Block onto the toolbar.  Using the ampersand, make shortcut keys, respectively, to be Alt+c and Alt+x. CommentTrick How? Just rename the menu items  to &Comment and &xUncomment.  This allows you to comment and uncomment really quickly, thus avoiding mind numbing and difficult to remember Ctrl+K/Ctrl+C and Ctrl+U.  The final result should look something like the picture.    This trick works on C#, VB.NET, XML and has worked on every version of Visual Studio since Visual Basic 5.  If you are still unclear on the concept, try the hand-holding edition.

  2. Learn the frakking snippets. 
    Seriously, they’ve been around since 2005 – that’s four years.  Every time I see a developer writing a property by hand, my blood pressure rises and, given my recent medical troubles, that’s not good thing.  Ah, if only I could fire people without regard to their mortgages, kids, debts and families.

    Create your own snippets for code patterns you use most.  It’ll take you no more than 10 minutes to come up to speed on how to create them.  I have, for instance, several that simplify management of classes, data types, etc.  I also modified a couple of existing ones to comply with the corporate coding standards.   

  3. Make a better environment  
    Courier New is so Windows 95.  Consolas is where it’s at and it excels at rendering on flat screens.  This font is so much easier on the eyes – mine used to be tired at the end of the day.  But not with Consolas.  It comes with Vista and higher. XP users can download it.  There are other fine new fonts as well, but after trying many of them, I keep coming back to Consolas.

    Same goes for your Visual Studio theme.  Does white background bother you? Would you like better contrast?  Would you like a change once in a while?  Hanselman has got you covered.  I use a modified version of John Lam’s Vibrant Ink.

  4. Use Add-Ins
    Some people don’t use them because they slow down Visual Studio.  It’s true enough for some add-ins (yeah, Resharper, looking at you).  However, there are 2 dimensions to this issue:  slower startup time and slower runtime.  Different approaches are required to tackle either.  

    Resharper, for instance, slows down both startup and runtime, so you better be sure that its functionality justifies the cost.  However, most simpler add-ins’ impact on either startup or runtime is negligible.  For instance,  GhostDochas no effect whatsoever.  Let’s take another example, MZ-Tools.  It does slow down the startup, so the fix is to not load it on startup.  The perf hit will then occur the first time you use one of its functions. 

    In addition, it’s pretty easy to write your own.  The wizard takes care of most of the plumbing, so you can focus on your needs.

  5. Use the External Tools menu to define your own
    This is one of those unsung features that can really speed things up for you.  For instance, I have a “Remove Read-only” and “To Explorer”.  They were really easy to write and save me a ton of time I would have otherwise wasted. 

    To make things even faster, I drag these tools onto the toolbar, so it’s a one-click affair.

What are your tricks?

author: Angry Hacker | posted @ Tuesday, February 10, 2009 10:50 PM | Feedback (2)

Is Mozilla Firefox the new Internet Explorer?


This sounds harsh.  Especially when referring to the team that helped the Internet break free of the yoke that was Internet Explorer.  These guys deserve better.

Andy Grove (András Gróf, to those of us who speak Hungarian), formerly the CEO of Intel, once wrote in his seminal work “Only the Paranoid Survive”, that in technology, established companies, organizations and standards only get overthrown when something that better by a factor of 10 arrives on the scene. 

Since Google Chrome browser arrived on the scene in 2008, it has been relentlessly getting better.  The team has been fixing little issues and pumping out performance improvements, culminating in a browser that is simply awesome and a programming Tour de Force.  At this point in time, it is 10x vs. any other browser.

chrometop

In my completely unscientific benchmark, conducted on my middle of the road laptop with Windows XP tablet edition, Chrome blew away all the competitors

Browser Cold Startup Time Warm Startup Time Feels Like
Internet Explorer 7 3 seconds Under a second Why even bother
Mozilla Firefox 3 13 seconds 1 second Sluggish
Google Chrome 1 1.5 second Instant Super snappy
Notepad Under a second Instant Me like

Unlike me, my 9 year old son, unbounded by the nostalgia, adopted Chrome immediately after the release.  For me, stuck in my ways, it took a bit longer.  I fretted about the lack of Chrome add-ons, wondering what I am going to do without all the Firefox extensions.  No matter, it turns out, I don’t really use any of them on a regular basis, except for when I need to use them, like when I am debugging web pages.  Chrome feels like a no-compromise browser, really fast, really made for one purpose and one purpose only - browsing.  It’s architecture of separating all the tabs and plug-ins into separate process jobs really works well, particularly when some Flash or Java page crashes.

So, unfair as it is, I pretty much ditched Firefox in favor of Chrome.  The only time I actually use Firefox is when I encounter a site that won’t work in Chrome.  Kind of like a few years ago, I would only use IE when a site wouldn’t work in Firefox. 

Firefox has been great to me all these years and I feel like I am cheating on it.  I feel like I am ungrateful.

author: Angry Hacker | posted @ Saturday, February 07, 2009 1:02 PM | Feedback (7)

IE8 – a train wreck heading to a PC near you


When IE8 beta appeared several months ago, I installed it to check it out.  It wasn’t  IE8 too bad: sure, some sites didn’t work properly, others flat out failed to load, but mostly everything could be worked out with the use of that “Compatibility” button.  I gave it slack for the software being beta.  On top of that, IE is not my primary browser, so I let it stay on the system for those rare times that I encounter an IE only site.

Last week, IE8 Release Candidate 1 came out and I installed it as well.  As far as I understand, in Microsoft nomenclature “Release Candidate” means it’s almost in the bag, just last couple of bugs to be worked out.

Nothing could be further from the truth with this release.  This software is a gigantic train wreck.  It crashes, lays out the UI flat out wrong, locks up temporarily while opening a new tab…you name it, it does it.  The only silver lining that I saw is that the master IE process does recover a tab if it crashes.   But really, it is a very thin silver lining.

What pissed me off the most are the massive problems at popular sites, the ones that should have been caught in the QA process.  For instance, Gmail.  This one is double whammy: it occasionally crashes and and lays out the site wrong.  Seriously, it’s Gmail.  I bet some of the MS testers have home accounts on Gmail.  You can’t release a browser that can’t handle Gmail.

I think the team needs to take a step back, figure out what went wrong, rewind the clock, restart the engines and release a great product.

author: Angry Hacker | posted @ Thursday, February 05, 2009 12:17 AM | Feedback (3)

Is our economy that bad?


Typically businesses love it when consumers use their services.  Not so with Wells Fargo bank here in US.  Apparently, things have gotten so financially bad for them with the purchase of toxic filth that is Wachovia, that they have taken to charging people for using their website.

Excess Fee

What was so excess about my usage?  I transferred money online between accounts, but I made a mistake of transferring in the wrong direction.  So I promptly fixed the error by transferring money in the right direction.  Apparently that was enough to set off this fee.

author: Angry Hacker | posted @ Wednesday, January 28, 2009 10:23 PM | Feedback (4)

Don’t piss off the trees


TreeAttack3

author: Angry Hacker | posted @ Wednesday, January 28, 2009 10:13 PM | Feedback (1)