Setting placeholder text for Django TextField

05 December 2019

Recently I struggled with a Django form. The requirement was to specify a placeholder html data attribute. This task is very standard but the search terms involved made it tricky to find a solution online. I provide it here to help others.

Troubleshooting React Native projects and AndroidX

25 October 2019

I recently worked on a legacy React Native app that had issues running on Android. Like many software projects there is never enough time nor enough engineers so the project was not tested for Android. When they finally got around to running the app on Android it was too painful. I was asked to fix it.

Django import data from 3rd party api with pagination

10 September 2019

API to Database Async tasks are an intermediate backend engineering problem. Most public facing apis need to return an answer under 1 second for a good user experience. However many real world tasks require more than 1 second to complete or need to be scheduled to repeat. The solution is usually to create a task that can run asynchronously. In Django one way to accomplish this is by writing a management command.

Using expo release channels in your project

05 July 2019

Phone app testing How do you manage your expo phone app’s configuration between testing and production? Expo has a feature called release channels that allow you to distribute different versions of your app. In this post I’ll go over my approach to configuration management of a react native app using release channels.

Overriding Django Rest Framework Viewsets

12 June 2019

Django Rest Framework ViewSet Here’s a small tip on how to write some endpoints in Django Rest Framework. DRF is a very powerful framework for building APIs. It provides the typical actions (Create, Read, Update, Destroy) for your models. But what if you want to change the default behavior?

Solidity workshop

15 March 2019

Ethereuem In early January I was reached out to by the nyc blockchain group asking if I could teach whatever I know about Solidity. I said yes. The audience was undergrads completeing coursework in project management and computer science. Not all of them knew what bitcoin was so I covered a lot of ground in a short amount of time.

How to deploy Tensorflow models on Sagemaker

13 February 2019

tensorflow There are lots of materials on how to train neural networks but not as many showing how to deploy them to power real services. In this post I’ll share a minimal example of how I train tensorflow models and deploy them on Sagemaker. I’ll cover items that I found intimidating so hopefully they become less intimidating to you.

Top Reasons to Include Mobile App Localization

04 January 2019

iphone in hand An app that’s tailored exclusively to English-speaking users won’t compete in the overall market. You could make 10x the revenue you currently make by adding global localization to your app. You limit your own chances of reaching a larger customer base if you don’t localize your business for users who speak different languages and live in different regions.

Running a full bitcoin node on OSX

29 November 2018

blah Running a full bitcoin node on osx is a good way to familiarize yourself with blockchain administration. You can explore the ledger locally and you don’t suffer any of the risks Simple Payment Verification nodes suffer from. You can “Be your own Bank” or so they say. If you have ~300 GB of free disk space you should try it out.

Gradient Boosting Decision trees: XGBoost vs LightGBM

15 October 2018

AWS Redshift vs Google Big Query Gradient boosting decision trees is the state of the art for structured data problems. Two modern algorithms that make gradient boosted tree models are XGBoost and LightGBM. In this article I’ll summarize each introductory paper.