Friday, August 31, 2012

Pull Requests, and You Can Too!

Today, I'd like to deviate slightly from my standard "Android harping," and delve briefly into the topic of distributed version control (DVCS), specifically, pull requests.

Pull-What-Now?

Since their initial appearance on GitHub, pull requests have become increasingly popular with developers as a means to both further optimize workflows, and to facilitate communication between the leaders of a project and its contributors. Though at first glance confusing to unfamiliar inductees (myself included), Git-savy-gurus have praised pull requests for making code review simpler, faster, and more thorough (among many other things). Intrigued? You should be.

A Better Mousetrap

A pull request is, in a nutshell, a way to look in detail at code contributions, review them, discuss them, and then instantly incorporate them into your existing code base (or not). In other words, “Here’s my commits, and here’s why you want them,” or “Please sir, I’d like some merge.”

While similar in nature to a pre-commit review (or “hook”) in centralized version control, pull requests offer two tremendous advantages: they can (and should) be created before a single line of code has been written, and once it has, that code is already available for peer-review. Think project tracking in Jiraor Trac, but with code commits automatically attached, and accessible by developers in a more intuitive context. Simple as that.

For project leaders, this means the ability to provide contributors with issue-specific guidance and oversight throughout the development process, instead of just at completion. For developers, this means useful feedback, a clearer understanding of requirements, and avoiding the ever-frustrating “Sorry, those all-night coding sessions were in vain" moment.

Win-freaking-win.

So: what does this imply for teams, open-source and Enterprise alike?

Improved Collaboration Within De-Centralized Groups

While distance is a given in open-source, community teams, Enterprise development is also increasingly distributed. By providing constant progress updates and an outlet for their discussion, pull requests help promote communication and cohesion between developers, regardless of proximity. So, the server guys on the east coast are always up-to-date with the client engineers on the west coast, as are the overseas web and graphic designers. Booyah.

Intelligent Distribution of Code Review Process

Forgoing review until code completion means two things: more time spent understanding the nature of what’s being submitted, and less time spent evaluating its implications. Using pull requests, review becomes an ongoing component throughout the development the cycle, accessible by all relevant parties. This means more “eyes on the ball” to catch illusive issues, and also increased development agility as feedback and discussion help guide development. Oh, and not being forced to review a 12-commit submission all at once is nice too.

Less Redundant Work

Duplication of development effort isn’t just wasteful; it’s also incredibly frustrating for developers and project leaders alike. No one appreciates having his or her hard work turn out to be unusable. Whether it’s two engineers slogging through the same lines of code unnecessarily, or a feature implementation that fails to meet its intended requirements, these setbacks cost time, money, and most importantly moral. By keeping everyone involved up-to-date and on the same page, pull requests make for a smoother release.

A Better End Result

What do improved communication, code review, and workflow have in common? A better product. Delivered quicker, and at a lower cost. While pull requests are no magic bullet for fixing an out-of-whack development cycle, they further capitalize on the greatest success of distributed version control: cooperative coding. The more a team can support each other and work in unison, the more likely they are to produce an outstanding end-result, and pull requests are an excellent to tool for achieving this. Just remember to practice proper etiquette.

Friday, May 18, 2012

Warning: shameless gloating ahead!

Dear World,

I have reached Mecca; achieved Nirvana; in a manner of speaking, this blog post comes to you from inside the lobby at Google's headquarters. That is all. :-D

Friday, February 17, 2012

John's Nexus Saga (post 1)

I was checking eBay and the galaxynexusforum.com a few weeks ago looking for cool accessories and I found a  nice little LED dock for under $10 for my bedside. When it arrived, it didn't fit, and although it charged the phone, it was painfully slow compared to straight cable charging. I might tear it apart this weekend and see if I can get it to actually work, but in the mean time, I decided to go the do-it-yourself route and make my own.

The material is laminated amber bamboo, and it assembles in seconds. My home made version looks more stylish than it's plastic counterpart, it uses my existing cable, and when I get a new phone in 2 years, it's 100% recyclable, all for about the same price I paid for the cheap eBay knockoff, which, needless to say, is about 25% what any peripheral through Verizon would have cost.

If you have a Verizon Galaxy Nexus, just click the image above to go to the Ponoko making page. Otherwise, I'm open to doing custom one-off's for other phones if anyone is interested. Post in the comments if you want one of your own. With shipping it's about $20 bucks.

Wednesday, February 15, 2012

Power to the people!

Hello imaginary readers whom I post for to drown out the voices in my head! Today I'm serving up a hot slice of battery/charging related linkage:

1) Android battery breakdown

Brian Klug of Anandtech has posted a side-by-side comparison of battery specs between the current Android front-runners. While the article targets the Razr Maxx, the original Droid Razr, HTC Rezound, Samsung Galaxy Nexus, and even the iPhone 4S are all are included for comparison.

If you don't care about all the Maxx "hoo-hah," scroll down a couple paragraphs to find the breakdown.

Meet my friend Maxx

I haven't been quite as....active on Droid Smith as I originally intended, but that stops now! Mostly because I want to brag about my new Droid.

When my OG Droid kicked the bucket last week after years of faithful service, I wasn't sure I could ever love another Android device the same way. That may just change, after receiving my new Droid Razr Maxx in the mail today. Full breakdown to come (it's only been in my sweaty hands for about an hour), but here's what I care about most:

The Nitty Gritty....

3300 mAh Li-Ion battery (rated @ 21.5 hours talk time...we'll see)

TI OMAP 4430 SoC:
 - ARM Cortex-A9 dual-core CPU @ 1.2 GHz (Arm v7 instruction set)
 - PowerVR SGX540 GPU @ 304 MHz
 - Dual-channel memory controller
Storage:
 - 16 GB Flash EEPROM (internal)
 - 11 GB Storage (internal)
 - 16 GB Micro SDHC (accommodates up to 32 GB Micro SDHC)

Memory:
1 GB LPDDR2 SDRAM (will post clock speed later)

Saturday, February 11, 2012

Root Droid Razr OTA update without rootkeeper

Mobile security consultant Dan Rosenberg of Vulnfactory.org has developed a direct root method for the new 6.12.173 OTA update to the Droid Razr platform (credit to mattlgroff of DroidRazr.com for posting about this On XDA) Please note that this method is applicable only to Razr CDMA variants.

I haven't tried this exploit yet as I'm holding off on flashing the OTA update until we know more about it, so try it at your own discretion. If you have a more "leap before looking" attitude towards flashing, then make sure you check out his site for more details, or view the thread at XDA-Developers for user feedback.

Thursday, February 9, 2012

All-in-one Droid Razr/Maxx root tool

Rejoice children! Credit for the work goes to mattlgroff of DroidRzr.com.
View the thread HERE.
Note the discrete XT910 and XT912 versions (each with 'lite' and 'full' builds. Read thread for more info)