May 2013
1 post
Rounding out
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.
April 2013
2 posts
3 tags
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...
1 tag
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.
March 2013
13 posts
3 tags
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...
7 tags
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
2 tags
The Monday After
AppAcademy got me addicted to learning technologies, and refining my new skills. This weekend, completed the wonderful RegexOne, which introduced me to the fundamentals of Regex - a concept I’d never understood until this weekend. I also covered CodeSchool’s RSpec, Rails Best Practice classes for review.
I’ve also decided that I need to learn at least one of the MVC Javascript...
1 tag
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...
1 tag
AppAcademy Week 8, Day 5
Demo Day! For 5 days, there have been some impressive demos. What I’m realizing is that a little JavaScript goes a looong way. Yesterday, VoteCounter just took members, and counted votes.
Today, it’s got a user auth through Devise, permissions, but more importantly, it draws a frigging chart in your face as each vote is successfully registered in the application. That’s the...
1 tag
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.
1 tag
AppAcademy Week 8, Day 1
Personal Projects! 5 days of solo development. I’m excited.
I’m developing a VoteCounter, and spent the weekend studying up on my Javascript as well as Rails Best Practices.
I’m hoping to have all of my Models & Associations done by tomorrow.
1 tag
AppAcademy, Week 7, Day 5
We had some nice detailed instruction on creating a rotating carousel for our shopping cart through JavaScript and some CSS trickery. I’m not the first person to think that I’m really enjoying jquery.animate().
I’m sure you’re not the last person to groan reading that.
1 tag
AppAcademy, Week 7, Day 3
Back to Rails & Javascript with a shopping cart application! I’m starting to understand what the node/express/meteor peeps are talking about when they talk about the cost of context switching. I haven’t had enough experience, so I’m mixing casing conventions, semicolons, etc, when I move between Ruby & Javascript. Experience will fix that.
1 tag
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...
1 tag
AppAcademy, Week 7, Day 2
More work on the gist project. Every now and then, it’s great to work with someone who outmatches you, as you learn better patterns, workflows, insights etc.
The downside is that you slow down the team a bit. Sigh.
Afternoon was spent learning about HTML Canvas and using it with JavaScript, so we’re doing asteroids!
In other JS news, keyword this is mangy dog that...
2 tags
AppAcademy, Week 7, Day 1
Ah, ajax & jQuery. Worked on a clone of gist, implementing a ridiculously light Rails back end to supply data for an interactive-ish javascript front end. Ryan Bates implements Ajax utilizing more of the Rails infrastructure, while we are posting to json, and implementing all of the javascript in-page. It’s a little bit like going from simple-form to form_tag (except starker). We get...
February 2013
13 posts
1 tag
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!
1 tag
Mailboooooooooooxxxxxx!
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...
1 tag
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.
1 tag
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...
1 tag
App Academy, Week 6, Day 3
Classic Snake game.
While it’s not really practical, it’s good practice, and it makes you feel confident that you can pretty much do anything else.
I’m going slowly on this, as my mind still needs to re-wrap its head around javascript (I last touched the stuff before the course started!)
1 tag
App Academy, Week 6, Day 2
We got a refresher on basic data structures and algorithms, except in javascript! Good stuff, good practice, but I have to say that I’m not a huge fan of javascript. I want to get good at it, but wow, Ruby’s sooo much nicer.
1 tag
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.
1 tag
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.
1 tag
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.
1 tag
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.
1 tag
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...
January 2013
18 posts
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...