I’ve been rounding out my developer skills, by learning some front end design. I’ll be posting more about that in the future, but here’s a piece from the New Yorker on Google’s design evolution.
Close.io API & Ruby
Last week, I signed up for close.io for my CRM. Their backend & examples are written in Python, so I wrote a web2lead app hooking in their API using Sinatra, HTTParty, and Slim. I bashed my head in for a day, until I realized I needed a trailing slash on Lead.post(‘/api/v1/lead/ - ugh. Hopefully, some of you can use this. Close.io has been a good service, and their customer...
Solving the post-sick nightly persistent cough
1. 12 Hour Mucinex 2. Down with a glass of hot tea 3. Heaping spoonful of loquat syrup (it’s mostly honey anyways). Do not dilute with water. 4. Sleep on your side (I usually sleep on my back, but that seems to make it marginally worse). This seems to do the trick for me, as the loquat gives me about 20-40 minutes to fall asleep without the throat irritation.
Debugging SCSS/SASS in Chrome
Debugging SASS/SCSS in Chrome takes a few extra steps. This tutorial took me 95% of the way, but I needed to enable the devtools experiments, first. FireSass for firebug/Firefox works fine, but if you like to do your css debugging in Chrome, here’s how you do it. 1. “Enable Developer Tools Experiments” in chrome://flags/ 2. Follow the instructions below. You should be...
Migrating from Zurb Foundation / Twitter Bootstrap...
Moving the Rails custom forms from Foundation 3 to 4 is a PITA, so in frustation, I’m taking my next project closer to the metal. I’m utilising Bourbon.io, a scss library and Neat, a grid framework for Bourbon. It’s less code (for faster downloads), allows semantic naming, and fits well within SMACSS principles. This improves the end-user experience, the developer (me)...
Top 5 Ramen Joints in the US
So who wants to go to Sacramento with me? Top 5 Ramen Joints in the US
The Monday After
Appacademy, Week 9, Day 1
We began final projects, and what a difference one week of practice makes! Last week, it took 2 days to plan models & associations for a 7 table schema, and today, it took me 1 for a 10 table! I’ll take 2x improvement any day. This week only gets about 4 days for our final projects, so I’ll take it. My final project is WTFJS a mashup of JSFiddle & Stack Overflow. This time...
AppAcademy Week 8, Day 5
AppAcademy, Week 7, Day 4
I’m realizing that I’m spending a lot of time staring at code, trying to figure out a best practice way of doing it. While I’m not quite there (I still have a couple lousy names that I need to change), I want to get these patterns to the level where it’s automatic, and when I go back to my code, it’s easy to understand.
AppAcademy Week 8, Day 1
AppAcademy, Week 7, Day 5
AppAcademy, Week 7, Day 3
AppAcademy, Week 7, Day 4
I’m programming solo today, so it’s moving along much more slowly than usual - but I get to type 2x as much as usual, and the patterns are making their way into my head. What’s great about solo development is that you can’t have a partner as a crutch, so you *have* to learn. They provided us again with more detailed instruction for implementing Asteroids. I probably...
AppAcademy, Week 7, Day 2
AppAcademy, Week 7, Day 1
Ruby 2.0pre0 and YOLO
The wonders of being the first to upgrade means I got to file my first bug! Long story short, the OpenSSL cert needed to be renamed cert.pem in the OpenSSL directory. The solution was patched same day, so how’s that for service? The next big issue is that debugger and pry-debugger are broken… I’m left with console.log until this is fixed!
After whittling my way down the Mailbox waiting list (from 230k), I finally got my copy. Mailbox supports my Gmail and Google Apps (i5labs) email addresses, so I’m in business. I started the day at over 4,000 emails in my combined inboxes, but combined with Sparrow (for OS X) I brought that down to 198. Once I get some invoicing out of the way, I can bring that down to 50, and I’ll...
App Academy, Week 6, Day 5
Ajax! We got a lecture on how to implement it, but I didn’t get quite far enough into my project to save photo coordinates and their tags into a Rails App. I’ll try to get that done this weekend.
App Academy, Week 6, Day 4
More Snake. It’s got a more than a few items to think about - growing the snake when the apple is eaten, collisions, walls, etc. A lot of what we learned in the first few weeks of building minesweeper, chess, etc can be re-applied. Rendering to the web utilizing jquery is a pretty fun exercise. Also began an exercise to re-implement Facebook’s Photo Tagging feature - just the JS...
App Academy, Week 6, Day 3
App Academy, Week 6, Day 2
Week 6, Day 1
Building a Forum in a pair! Good, structured project which allows us to help ourselves and help out others. Common use case, and good practice for figuring out how something should commonly be structured.
App Academy, Week 5, Day 5
Continued yesterday’s app. Love how some pieces of Rails are becoming more and more automatic, where before I’d have to fumble: “So it’s rails g model Users … is it type first and then name, or the other way around?” It’s only a few minutes of lookup, but man, it can bog you down. Learned a bit about Nested Form Models. Will have to get to the point...
App Academy, Week 5, Day 4
An new, ambitious app! Alarming allows you to send alerts to groups of friends at a specific time! It’s not even close to done! :-) I think I’ll use Twilio or Plivo to interface into SMS, if I get that far.
App Academy, Week 5, Day 3
Today was a continuation of Day 2. I punted on rebuilding the Auth, but build out resolutions, voters, votes and need to figure out how to display associations within forms. The other great skill we’re learning is “knowing what to Google for.” Someone’s solved a variation of every problem you’ve had, in all likelihood.
App Academy, Week 5, Day 2
Solo App! I started an app to help the San Francisco Democratic Party track the voting of their members on resolutions. Spent most of the day working on users, and testing. I need to get a better handle on *what* to test, or I’m never going to get around to making significant progress on building an app. One of those things that comes through experience.
App Academy, Week 5, Day 1
The weekend assignment was to do the Hartl Rails Tutorial. The upside of going through the book really fast allows you to use it as a quick reference for setup and beyond. Downside is that typing code from a book is… boring. I think the real value is that the process of setting up and building a rails app is slowly becoming second nature as we build more of these. Until Ned moves onto...
App Academy Week 4, Day 5
Today, we built our own authentication, TDD. In previous projects, I used the Devise gem, but it’s really good practice to understand what’s going on underneath. The has_secure_password performs a lot of magic by setting up methods to work with the BCrypt gem. From there, you build users, passwords, and session_tokens to handle session state. I feel a lot better understanding...
App Academy Week 4, Day 3
After 4 days of MySQL & ActiveRecord, we dove (lightly) into the MV side of Rails, through ActionController & ERB. The Jumpstart Labs tutorial is long, but I don’t think you really get your hands dirty until you have your own project to work on - so I wish that tutorial were a bit shorter. I’m looking forward to getting into the more challenging projects soon.
AppAcademy Week 4, Day 2
Ned’s been putting us through the ringer - Making ActiveRecord queries utilising a legacy database. I never saw this while consulting. The number of scenarios using a legacy DB are pretty rare. Maybe some sort of finance / Oracle system that needed web views. Anyways, quite a pain, that takes a lot of the pleasure out of using AR. It’s good practice for knowing the absolute worst of AR that...
App Academy Week 4, Day 1
Rather than creating a new database w/o data, we used the Sakil Demo MySQL movie database as a seed. This is the first time I adapted an existing database to ActiveRecord, which wasn’t as painful as I thought it would be. We’re diving into more complex queries, which seem to use AR to provide cleanliness, as opposed to time savings. The vast majority of the time, queries...
App Academy Week 3, Day 5
The second day of ActiveRecord explored usage more in-depth. Because much of the magic in Rails comes from knowing an ORM really well, time spent here is time well spent. That said, AR does such a good job of making things easy, there’s not a ton to learn. Michael Hartl, of RailsTutorial, came by for a Q&A, which was a nice change of pace. Most of the questions focussed around...
App Academy Week 3, Day 4
ActiveRecord has a special place in my heart. When AR was first released (I think AR preceded Rails by a year or 2) , I was building a basic form posting data to MySQL with views through Kirk Haines IOWA framework - I think he’s focussed on Seaside, now. DHH pushed out AR, and hung out in #ruby on IRC. After 20 minutes with it, I knew AR was going to change the way people did DB...
App Academy, Week 3, Day 3
A bit deeper into the SQL woods. SQLzoo is a fantastic tutorial. I’m going to recommend it to my old IT teachers. The Hacker News Client dove into object design, CSS selectors, and some hair pulling with “HOW DO I SAVE THE DAMN THING INTO MY DB USING THE SQLITE3 GEM.” I’ll continue working on that project this weekend, along with finishing up SQLZOO. Refactor,...
App Academy, Week 3, Day 2
A little bit of practice with RSpec in the morning with Reversi has gotten me a little tired of making games… but I’m getting more practice with it. The rest of the day was SQL. My partner had a ton of SQL experience and I’ve got a bit myself, so we were able to finish a little ahead of time. It’s nice being in my element.
App Academy, Week 3, Day 1
Got to spend more time today familiarizing myself with RSpec & TDD, and I’m probably 5x faster than I was the day before. 7 more weeks to familiarize ourselves with that proper “agile” workflow. I’m seeing how TDD helps with method decomposition, and enforcing single responsibility. I’m hoping that at the end of Week 9, testing becomes reflex.
App Academy, Week 2, Day 5 - RSpec & TDD!
My first real exposure to (more) good programming practices! I’ve always needed something to push TDD onto me, and I’m pretty sure that with RSpec, and writing over the next 7 weeks, it’ll quickly become a habit for me. We went over old exercises, and there wasn’t too much to talk about, but our code has gotten tighter since week 1, our methods more easily testable. ...
App Academy, Week 2, Day 4 - API's
Our first /*real*/ taste of the web. App 1: Ice Cream Finder using the Google Maps APIs. Very fun, and I can see how you could turn it into a small iPhone - RubyMotion or Android Ruboto app. Fun, real, and immediate results. Build a little, test a little. Next, we re-implemented the MicroBlogger command line client. Rather than using the Twitter gem, we went through OAuth, to get a better...
App Academy, Week 2, Day 3
Chess is a compilation of knowledge from previous lesson, along with Object Oriented Design. We used lessons from Minesweeper (using constants to track move possibilities). I’m finding that I have a decent skill in object organization, assigning object method responsibility, and refactoring. Setting up the board, and figuring out how pieces were going to move took up the greater part of a...
App Academy, Week 2, Day 2
Today was spent building a text-only version of Minesweeper. Once again, the logic came to me quickly, but syntax implementation took a while longer. We had a particularly ugly method for finding adjacent squares which took about 25 LOC(lines of code). A hint for implementing a finder using a constant brought that down to about 7 lines of code, and greatly improved readability. The CS...
Week 2, Day 1
Most of today was spent inside Git Immersion, an online 3-5 hour Git tutorial. It taught me a lot more about the git internals, and some shortcuts that I didn’t know previously, but I really wish I got more time to practice programming. Over its lifetime, though, worth it. Implemented Word Chains with Vincent Chang, and code quality on a second writing is improving immensely. Ways to think...
App Academy, Week 1, Day 5
Ugh. Frustration. Microblogger was cool - utilize the Twitter API to implement a command line client. Easy to understand, easy to put into code (since most of it was put down), and nice to see how external apis & services worked - up until the point that I hit a Twitter Rate Limit. The next program, Word Chains, was just beyond my partner & I’s ability to finish in one day. I...
Week1, Day 4
Today was Basic application design. Choosing good names, DRY, refactoring, and a lot of concepts I’d read in the Pragmatic Programmer, but never truly understood. It’s not until your code starts hitting the 100+ line mark that you see the importance of, and *how* to make your code useful to people other than yourself. Additionally, I’ve picked up Practical Object Oriented Design, and gotten a...
App Academy, Week 1, Day 3
Yeah, I’m doing a bit of catchup. Recursion is a bit of a brainf***, and I’m going to need to spend an extra day to *really* get it. I was able to unstick my partner from one of the problems we had today, which means I’m getting a much better conceptual grasp of the issues involved. I’m still forgetting the occasional ==, etc, but overall, I’m seeing some pretty...
App Academy, Week 1, Day 2
Niranjin a far more experienced developer than I am. So it’s excellent that exercises are done quickly learned a lot from him, conventions, better methods of implementation, etc, frustration level is lower, but, I need to catch up to his speed. Day 2 is easier than day 1, as I’m catching up on my basics.
App Academy, Week 1, Day 1
Fairly daunting. I’m a bit behind on my prep work, and will catch up this weekend. I’ve got a fairly good grasp of the logic, but what’s killing me is syntax. I’ll be grinding late tonight. I have a colemak / vim setup that I need to write a Ruby script for this weekend. Switching each time with my partner is kind of a PITA. Not too much I can recommend for improvements, other than...