Ever wanted to know where in the world a particular IP address was?  Here you go, WhereIP.  I completed this a few weeks ago, but didn’t get a chance to upload the source code until now.


Check it out on GitHub -> WhereIP







Young, Black, and Getting Into Tech

It’s not enough to tell a black youth to work hard and they can realize their dreams. Sure, there are some outliers. What makes the difference though, particularly in technology, is for young black boys and girls to see someone who looks like them building a big company, employing hundreds or thousands of people, or realizing a liquidity event. Without a black Mark Zuckerberg, this is hard stuff. It’s not that we don’t appreciate technology – 40% of 18-29 year old African Americans who use the internet are on Twitter. 72% of all African Americans—and 98% of those between the ages of 18 and 29—have either a broadband connection or a smartphone (1). The difference is that most young people view technology from a purely consumer perspective. The typical 14 year old isn’t wondering who’s on the other side of Snapchat actually making the buttons work. It likely never even crosses their mind that some person actually made these apps – like they just magically appear. Those outside of the tech world probably aren’t thinking about the founding team of an app they’re about to download when they’re browsing the app store. This is especially difficult though for African Americans because there aren’t a lot of Evan Spiegel’s, Jack Dorsey’s, or Kevin Systrom’s to reference when you’re trying to engage black youth in tech.

Bingo.  One of the driving factors in my decision to get into technology (and more specifically, software development), I had someone in my life, my mom, who had a job working with computers.  This meant we had a computer we home and eventually the internet (ie. AOL).  This is an area I should become more involved in.  I’m not a hotshot, rock star computer programmer who just had a billion dollar exit, but I think allowing younger black men and women to see people who look like them in this industry is huge.  Especially if those in the industry give back and/or become mentors.

I’m so happy to see initiatives like Black Girls Code and Intech Camp out there bridging the gap.

-> Will Lucas

Google Play In-App Billing Server Purchase Verification


My current project, PrēmoFM will feature In-App Billing.  I’ve successfully implemented Google Play In-App Billing v3, leaning a lot on the demo available at developer.android.com.  One major fallback of the example provided is on-device purchase verification (Google themselves recommend against on device purchase verification).  No matter how hard you try, Android apps are easily reverse engineered, allowing hackers to compromise your purchase verification logic.  They could spoof purchase interactions and gain access to IAB protected content and features for free.

I implemented my purchase verification using my Node.js-based API server.  When purchase data is returned from Google Play, I send it to my API server for immediate verification.  Once it’s been verified (or not) a response is sent back to the app, unlocking the content or feature.  Here is, more or less, how I verify purchases in Node.js.  It uses Node.js crypto library.




Screenshot from 2015-06-09 18:51:28

I can’t believe I was about to take the time to contribute another negative article to the Internet about PHP.  Instead of spending any more time on it, I’ll just leave this here.

I can’t even say what’s wrong with PHP, because— okay. Imagine you have uh, a toolbox. A set of tools. Looks okay, standard stuff in there.

You pull out a screwdriver, and you see it’s one of those weird tri-headed things. Okay, well, that’s not very useful to you, but you guess it comes in handy sometimes.

You pull out the hammer, but to your dismay, it has the claw part on both sides. Still serviceable though, I mean, you can hit nails with the middle of the head holding it sideways.

You pull out the pliers, but they don’t have those serrated surfaces; it’s flat and smooth. That’s less useful, but it still turns bolts well enough, so whatever.

And on you go. Everything in the box is kind of weird and quirky, but maybe not enough to make itcompletely worthless. And there’s no clear problem with the set as a whole; it still has all the tools.

Now imagine you meet millions of carpenters using this toolbox who tell you “well hey what’s the problem with these tools? They’re all I’ve ever used and they work fine!” And the carpenters show you the houses they’ve built, where every room is a pentagon and the roof is upside-down. And you knock on the front door and it just collapses inwards and they all yell at you for breaking their door.

That’s what’s wrong with PHP.

–> PHP: a fractal of bad design