Saturday, April 26, 2014

All In on a Mac

I thought this day would never come.  After decades of swearing I hated Macs and would never own one, I finally took the plunge and got my own Macbook Pro 15".   For the majority of my lifetime, I swore I would only use "open" and easy-to-hack on (like Windows!  ha ha) systems.   At some point along the way, the value proposition changed, and a Mac became a better choice for coding, gaming, and cost of maintenance.



It wasn't like I didn't try to look at other systems.  Of course, I went straight to Chromebooks first, but knew that I would have to wipe / dualboot it to even get Linux on it, and even then, the modest computing power wouldn't be able to handle heavier applications.  On my way to the Mac counter at Best Buy, I even stopped over at the Windows laptops.  There were dozens of them, all happily running their Windows 8 kiosk-style and not another soul in sight around them -- when I touched one to try to launch the big "weather" app from Metro mode, it then went into "edit your Metro tiles" mode.  Huh?  I just wanted the weather, and clicking on this thing makes me edit my tiles.  Nope, I'm out.

Instead, I plunked down several thousand bucks and walked out with a small, thin white box.  Giddy.

One week in, I have to admit that I'm happier than ever, and I've been extremely surprised by the experience:
  • Finding applications that run on Mac is easy.  Everything I wanted to run, including IDEs I've used before, and games I was playing on my Windows Doorstop all have Mac versions.
  • It had all the "power" of Linux already in it.  I fired up a terminal and checked the version of git.  It was all ready to go out of the box.
  • Navigating around the OS was not a problem.  I always thought "I know where to find everything on a Windows/Linux machine, but not on a Mac." -- turns out, it's just a matter of running the Finder or Launcher. 
  • I was able to easily install Hearthstone and battle.net, and they ran smoothly without even making the fan run.
Even so, there have been a couple of rough edges.  The first thing I did was to reverse the two-finger inverted scroll nonsense.  The App Store concept was weird -- do I buy apps from Apple's store thingy, or just download them from somewhere else?  The number and quality of apps is questionable.  I wanted an IDE to be there, but the closest one was like $70.  Huh?   And the "app still running until you go to Menu -> Quit" is still bizarre to me.  

Anyways, it's been a helluva purchase, and it's helped me get a couple of broken-then-fixed versions of my extension out.  I'm considering my all-in bet a pretty good one so far.

Sunday, April 6, 2014

Back in the Saddle

My next 30 day challenge hasn't gone so well.  It turns out that sometimes it's easier to commit to something larger and execute on it than commit to something smaller that's easily forgotten.  Oh well, I guess I'll just hit the reset button and try something else.

In the meantime, I found out from a friend who uses my spoofer extension that it completely stopped working with Chrome 35 (dev channel).  This usually happens when Chrome changes APIs that extensions can use to do certain things, and indeed, this is what happened.  Looking through all of the chrome.* APIs I was calling, half of them were deprecated and replaced with something else.  So much for a stable development platform.

So this pushed me a bit on releasing my half-baked 1.0.30 version, that was a significant rewrite from 1.0.26.  Thanks to some very cool and helpful G+ commenters, I isolated a couple of bugs in the 1.0.30 version and knew I needed to get back on the horse and start hacking again.

But, there were several problems:  One, all of my source code was on a 5-year-old laptop that is one power supply away from being a doorstop.  Second, none of the source code is under source control.  And last, I had no error reporting in the extension at all -- it could be failing horribly and I would never know.  I set out to change that and learn new stuff along the way.

First, I set up a bitbucket account, where I could have multiple projects for free.  Usually for open-source stuff, people pick github, but I went otherwise because of (a) all of that weird BS going on around github in general, and (b) bitbucket is free.  I also started using git, and tracking / tagging / etc. the source, so that's good.  Second, I polished off an old CodeEnvy account I had and started and connected it to my bitbucket repos and started hacking online (on my Chromebook, naturally)


CodeEnvy has been surprisingly responsive and usable.  I can deploy an app engine app right from the IDE, push and pull from bitbucket, and can edit multiple languages.  I'm impressed with it so far....I daresay it might be something I'd pay for.

Lastly, I started fixing up the bugs in 1.0.30 and implemented a weak (but workable) error reporting system.  It's anonymous, and just reports how often an error occurs.  I don't have it sending anything back yet, but it's a good start.

Also, I think I made a decision on upgrading my workstation to a Macbook Pro 15".  Now, if I can just get the guts to spend $1900 on it...