Design, Development & Productivity Notes

Hello, I'm Patrick!
These are my public notes. Please, let me know if you have any questions. (pictured: Lucas the greyhound.)

Revisiting Buyer's Agent app using React.js

In a past post I showed a Mobile Real Estate App that was built with Polymer. This time around I will revisit the app but instead use React.js. The Mobile Buyer's Agent application is a simple web based application used to demonstrate a basic React.js mobile web app. The goal is to allows a real estate buyer's agent to deliver a personalized mobile app experience to their clients by adding data to a Google spreadsheet. The agent updates a Google spreadsheet, and the web app loads its data from the spreadsheet.

[Read More]

Photo Caption Challenge

Using Facebook Login, S3, and DynamoDb in browser app One of the challenges of building small mobile web apps without a traditional back-end server is storing global state in a secure way. In my exploration of ways to store state I decided to build a very simple multi-player social app that allows players to participate in a simple photo challenge game. The game author specifies a photo caption and then invites friends to add photo responses that most creatively match the caption. [Read More]

Mobile Real Estate App - Version 1

I promised a few examples of spreadsheet driven apps. You may remember the Hipster List was the first example. These are simple web apps that are initialized using data from a Google Spreadsheet once the user loads them in a browser. Using spreadsheets to keep app information current is easy for anyone. There is even a way for users to point the app at their own Google Spreadsheet if the app developer wants to turn feature that on.

[Read More]

d3 charts - wrapping 'NVD3 Charts' in a web component

In my continued experiments with Polymer, I created a web component that wraps NVD3 - a reusable chart library for d3.js. As part of the activity I ported all of the NVD3 example charts to a web component I am calling <goddip-charts>. The component is contained in a pogg on poggr, as this is where I do my experimenting and it allows me to code and serve the project documents in the one place. [Read More]

Spreadsheet Driven Web Apps


Using Google spreadsheets is a great way for a team to collaborate on a data set but it leaves a bit to be desired on presentation of the data. To that end I will be creating a series of fun examples showing how to build small interactive apps that utilize Google Docs and Polymer web components to quickly bring data to life. In this series I will be using a Google spreadsheet as the data source, but other data sources are possible, and I will get to those as well in future posts.'

[Read More]

Fun with Literate CoffeeScript

I have always been fascinated with the potential of literate programming; combining inline code in my notes. I have many org-mode documents that interactively execute code for various tasks and procedures. These tasks includes certain maintenance activities, or destructive operations I don't want to get wrong. I have an entire org document devoted to db maintenance, filled with Ruby code to execute complicated db queries and operations. It is nice to see the example code inline in my notes, and be able to modify the code and execute it directly in my notes. [Read More]

CoreData.SQLDebug for RubyMotion

It is sometimes handy to turn on CoreData.SQLDebug in the simulator when debugging a Core Data issue. I have found the output to be very useful in finding the hard to find little bugs that pop-up between restkit and core data. It can also help find performance issues with the database. Unfortunately there isn't any documentation for how to do this in RubyMotion. I found one solution that works to a degree. [Read More]

Getting RKLogConfigureByName working in RubyMotion

Just a quick note, I was getting an undefined constant error for RKLogConfigureByName, the standard way of setting up logging in RestKit. It seems that the #define statements in the /vendor/Pods/RestKit/Code/Support/RKLog.h/ file are not getting picked up. I am using the pod and loading with RubyMotion pod support, so I am not sure what the issue is. I will need to investigate further but this quick workaround works, just call the lower-level method mapped via the #define. [Read More]