I’m John C Bland II

Husband, Father, Tech Author, Deacon.
Founder of Katapult Media, and full-stack polyglot developer.
Political Free Agents Podcast Host.

I create. I launch.

YouTube Channel

I post regular fun on YouTube like me playing the bass and anything else I find fun. 

Get Something Built

All project work goes through Katapult Media. Business is open. Let’s chat.

React-Native Pin Entry View with the Native Keyboard

So last night I posted the same view with a custom keyboard layout. Right after that I adjusted it for what I’m going to really use – of course after making the design actually fit the spec. This is an approach I used in Objective-C to right a native pin view with individual boxes for pin display.

What you see here is the view of the pin entry with the entered pin below it just for debugging purposes and the native numeric keyboard. I also added basic value validation to ignore the non-numeric values.The pin dots are not a text field. It is a View with static Text in it when the entered pin length is less than or equal to the index of that specific “box”.So where is the field we’re typing into? I’m glad you asked!

Take a look at the style for the `TextInput`.  It is positioned to the right -99. A larger number could be provided if you’re concerned about it showing on the content.

Change that value from -99 to 0 or just comment out that line and you’ll see an input with a red background show at the top of the View. So technically this input is “hidden” from the user yet still capable of being typed into.

This is not a complete solution. On Android, you can hide the keyboard with no discernible way to get back to open it. You can easily add a touchable on the pin boxes to focus the TextInput when touched. The goal is to provide a basic solution to build upon.

To those code junkies, do NOT judge the code. I spent a small amount of time tweaking inline styles, etc and did not build this for production value.

React-Native Pin Entry View with a Custom Keyboard

I was planning out a view for a mobile app and noticed there wasn’t a really good option for this so thought I’d spec one to see the feasibility. There are issues with this from a reusability standpoint: specific padding values, widths, the keyboard is vaporware (doesn’t click; just there for visuals), etc. It does look pretty on my Pixel, though. 😉

To those code junkies, do NOT judge the code. I spent a small amount of time tweaking inline styles, etc and did not build this for production value. You could add a pinValue to the PinBoxList component and you’d see the dots show up. Here’s the snack. Enjoy.

Warning: Open the Snack on your phone to get the full view.


In the light of Justice Scalia passing, a friend passed a site with a lot of quotes from him and this one stood out.


Why we are building the Ionic Platform | The Official Ionic Blog

I realized that the vast majority of the mobile dev space had a huge blind spot and was in utter disbelief that anyone would want to build a serious mobile app with browser technologies, so they weren’t catering to the needs of hybrid devs at all. I thought Paul Graham’s What You Can’t Say post was quite fitting here: Hybrid app dev was taboo, and in many circles was not at all “cool,” so a lot of startups were ignoring it at best and fighting it at worst. And that drew me to it.

Well said. I recall when hybrid was a horrible idea (Thoughts on Flash anyone?) and many snubbed their noses at hybrid devs because they were native devs, as if learning Objective-C or Java was a badge of honor making you a superior dev. Having done mobile development for years before Apple changed our lives in 2007, I can honestly say Ionic is by far the best experience I have had as a developer. Hybrid, specifically Ionic, is becoming the solution I reach for before Xcode or Android Studio, although still not the best solution for every app.

Read on and hear it directly from Ionic why they built the platform, where it is going, and maybehow it can help you.

Source: Why we are building the Ionic Platform | The Official Ionic Blog

The Heresy of Racial Superiority — Confronting the Past, and Confronting the Truth

I am certain that I do not know all that this will require of us. I intend to keep those names on our buildings and to stand without apology with the founders and their affirmation of Baptist orthodoxy. But those names on our buildings and college and professorial chairs and endowed scholarships do not represent unmixed pride. They also represent the burden of history and the urgency of repentance. We the living cannot repent on behalf of those who are dead, but we can repent for the legacy that we would otherwise perpetuate and extend by silence.

I will not remove those names from the buildings, but I bear the burden of telling the whole story and acknowledging the totality of the legacy. I bear responsibility to set things right in so far as I have the opportunity to set them right. I am so thankful that the racist ideologies of the past would rightly horrify the faculty and students of the present. Are we yet horrified enough?

What an amazingly well-written article. It is worth your time and I truly wish we could get the message to everyone in this country who believes racism is dead or that we should ignore our history; especially those in control of our educational system providing only half-truths on our historical figures.

Source: The Heresy of Racial Superiority — Confronting the Past, and Confronting the Truth

Cord cutting savings

Cord cutting savings

We saved $167 by dropping down to just Internet with Comcast. If I get an 8% return on $167 for 10 straight years, I’ll save $31,353.56 vs spending $20,040 for channels I don’t want.

Why didn’t y’all tell me to do this earlier!! 😀 (now to find that 8% return)

Screenshot 2015-06-20 18.37.52

Hitting our stride with Android by Dan Kim of Basecamp

We’re rigorous about shipping.Even though our self-imposed two week deadlines are arbitrary, we respect them. We close our to-dos, write release notes, and bring in QA. If we’re going to ship, we’re going to ship like we mean it.

Source: Hitting our stride with Android by Dan Kim of Basecamp

I love that: we’re going to ship like we mean it. Shipping software can be arduous but when you respect your small milestones just as much as your large one’s it becomes natural to ship.

A “shipping stride” feels just like a running stride. When both are done right it’s like smooth poetry. As I always tell clients: “Ship early and often.”

Great read.


Hi. I’m John and I’m an addict. No, seriously. I have an addiction to buying new devices and this one has me jonesing. I had the G3 and LOVED it. I changed to the Nexus 6 and now to the S6 Edge, purely for the camera. They say the G4 can best the S6 camera and that has me highly interested.

I don’t know if I’ll get this one just yet. Well, I know I won’t but in a couple months…maybe. 🙂

Source: LG G4 hands-on: Where vegetable tanning, ceramics and Quantum Display come to play with Android | Android Central

Size, Isolation, and Focus

Another great post by Justin Weiss; who, if you’re learning Rails or just trying to stay sharp, is a must follow.

Testing efficiently is all about getting the most benefit for the least amount of work. Sounds great, doesn’t it?

But there’s a lot that goes into testing more efficiently. So it helps to think about three things in particular: size, isolation, and focus.

Source: How much testing is too much? – Weissblog

Rails Girls Summer of Code

Rails Girls Summer of Code

We live in a digital world, as cliché as that sounds. Guess who makes it possible? Programmers. We make things work but there is a disparity in diversity both in gender and race. I love seeing progress to rid such disparities but I finally decided to get involved last year.

In December, for the first time, I won the Mastering Modern Payments contest and requested the $50 donation, part of the winnings, go to Girls Who Code. Today I saw a mention of a campaign for a Rails Girls Summer of Code and didn’t think twice about helping.

I could care less about accolades or recognition for this, which is why I almost didn’t write this post, but I know my intentions aren’t for such petty things. My only goal is to encourage you, dear reader, to do the same. A bunch of people donating $75 goes a long way. Get involved! Money isn’t the only donation either as there are many ways to give to this cause, as noted on their site.

You can support Rails Girls Summer of Code as a coach, a mentor or as an organizer helping in various areas such as fundraising, editing, working on our sites or helping the students find Open Source projects.

Help a young lady enjoy a fun summer of code and, potentially, spark the next great idea. Young ladies wanting to join, let it be known!

“Those who believe in telekinetics, raise my hand.”
– Kurt Vonnegut

Read more

“When I’m working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong.”
– R. Buckminster Fuller

Read more

Dev Jobs Available

Hey folks, any of you know of some quality to top notch devs in the following areas looking for a career change [list is an OR, not AND]:

  • HTML/CSS/SASS [heavy on the latter]
  • Javascript [Angular a plus but can be taught to proficient JSers]
  • Python [App Engine experience a major plus]
  • Native Android [Cordova knowledge a plus]*
  • Native iOS [Cordova knowledge a plus]*

Rockstars desired but very quality, teachable devs could fit the bill as well. Again, all 5 skills are not expected in the same person.

* We are building our iOS and Android apps simultaneously and there is a Cordova component as well. More blogging on this experience will follow when I can come up for air. 😀

People think focus means saying yes to the thing you’ve got to focus on. But that’s not what it means at all. It means saying no to the hundred other good ideas that there are. You have to pick carefully. I’m actually as proud of the things we haven’t done as the things I have done. Innovation is saying no to 1,000 things.

—Steve Jobs @ WWDC 1997

Read more