Why does every company have their own ad-hoc, rolled together development workflow? I’m talking about the infrastructure around source control, testing, continuous integration if it exists, and the process of releasing to production. Every company has their own approach. Often it’s something that is added in later, after pain has been felt and lessons have been learned. The only companies who seem to have this standardized are consulting companies who work on many projects for many clients, and this is because they get to continually start over and refine their process with each new project.
Isn’t this something that should be productized? Lots of companies have built products around the individual pieces of the puzzle: Github, Atlassian, Pivotal Tracker. That’s not a bad thing, having the ability to swap out various components of the system as needed.
You can’t dictate a full end to end process for a company or a team. Thats part of what (currently) makes a company unique. But you could at least have a template (or multiple?) – maybe its open source or maybe its a product, but instead of rolling your own when you started a new company or project, you run a command (a la “rails new blah”) and you get a running app, checked into git, running in continuous integration, deployed online, wired up to project communication tools etc.
Comments Off on Standardizing Dev Workflow
One of my goals for the remainder of 2012 is to get a few modest “products” out the door. In August, my personal challenge is to build and launch a video screencast tutorial site that I’ve had sitting on the back burner for years now. The goal is to get the site and the first few videos up and available by the end of the month.
Comments Off on August
When I was younger living in suburban Florida, I dreamed of moving to a big city, where there’s always something to do, 24 hours a day.
About five years ago I came to Portland, and decided to move there. It had both a bigger, urban vibe to it, while retaining a small town feel. Another cool thing is it’s proximity to beautiful country. Portland isn’t that big and it’s the biggest city in the state. Most of the rest of the state is country.
Every time I go to the country I feel refreshed. The wide open space, the quiet, and the nature. I can see myself living in the country, for atleast part of the year. Some of my favorite memories of childhood were the two weeks I spent on a lake in the woods of central Maine every summer.
I think it’s all part of the progression towards simplifying life. Less is more!
I continued to work on the minimal theme a bit last night after the post. I decided to experiment with web fonts, and found a serif font that is quite a bit nicer to my eyes than Times New Roman – Merriweather by Eben Sorkin. So the template now looks like this. I’ve got it to the point now where I’m happy with the way it looks. It looks good on mobile devices too.
Next up is converting this sucker to WordPress. I helped my girlfriend do the same thing a few months ago, but it’s been a while so I needed to dig up the resources again. I remember we used this tutorial last time, so I’m just using it again.
Next I exported all the content from my existing site. On the local version, I installed and ran the importer plugin, and bam, all of my content was loaded. WordPress is great in that so much of this infrastructure is already built. So far, this is easy.
Now it’s on to creating the theme “structure”. First step is about the structure of the main HTML file itself. Not much to do there. I already have an HTML file the way I want it. Moving to the next step, theme template and directory structure. I’m starting as minimal as possible, and the static template is already built, so I just have one HTML file, some CSS, and Twitter Bootstrap assets. I just copied index.html to index.php, and moved on from there tweaking it.
It’s nearly good enough to go live, but it still needs some tweaks. In the meantime, thanks to being hacked, I may just move to a static site generator. EDIT: It’s live!
Comments Off on Converting HTML to WordPress Themes
So I’ve attended a few local tech meetups over the last couple weeks, and watched a handful of talks. Some of them are brilliant. Much respect to anyone who takes the time to prepare, practice, and get up in front of a group to talk about anything.
If you’ve never given a talk, and you’re watching one, you might not be cognizant of the speaker’s presentation style. At least beyond whether you’re paying attention, being entertained and enjoying it. You also become acutely aware if you’re bored and your brain has checked out and moved onto other things.
I’ve given a handful of tech talks. Once you’ve done this, and practiced your talk, you become much more aware of style, pacing, and flow, when watching others. I’m not as good as I’d like to be, but I’m at least aware of the gap between my taste and my work. Just like writing or music or anything else, the only way to get better at it is to do a LOT of it. Ten thousand hours. Go ahead, I’ll wait. In the meantime, I’ve taken some notes to myself on how to improve. This mostly applies to tech talks.
Use color on slides. Generic black and white slides are generic. Built in themes are boring. Don’t use them.
Use big text. I can’t read your tiny text and I don’t want to squint. Make it bigger.
Use less text. Make one point per slide. No extraneous stuff. Just the point.
Use non typical examples. In the web development world, typical examples are blogs and todo lists. Don’t use those. My brain and those around me will check out and think about beer and bikes instead. Use beer lists, bike map trackers, something, anything but blogs and todo lists.
Use the firehose. Be fast paced. Use complex terminology and reference deep math concepts. Or some other field of endeavor that we don’t already know about. Assume your audience is smart and keep up. We probably sped read your slides before you started speaking. Get to the point and be quick about it.
Explain individual lines in a vast sea of monochromatic code. Don’t throw up a full screen of black and white code and walk through what each line does. Show me a slide with only that line of code. In huge text. Syntax highlight the part you’re talking about.
Explain the history of the Internet. Unless that’s the main subject of your talk. Again, know your audience. And by now, everyone knows the history of the internet. Never speak of it again!
Explain the history and progression of Web apps. Same as above. Then AJAX came along. Yep. Move along.
Again, this is a note to me, not a knock on anyone else, as I’ve been guilty of these myself, and I’ve seen others make the same mistakes, and it’s hard to watch. But it’s also very easy to arm chair quarterback, so I’ll shut up. Speaking is hard!
Gun Control is back in the collective mind after this week’s tragedy. A friend’s facebook post stating 100 round drum magazines shouldn’t be legal for citizens turned into a heated discussion with good points from both sides. As for my own personal opinion on this matter, I’m in favor of more regulation of semi-automatic assault-rifle style weapons. I do not think all guns should be outlawed or that the average person’s right to own a hunting rifle or a handgun in order to defend themselves should be taken away. Just that these more-efficient, high-round, long-range weapons ought to be harder to get. Perhaps only by oh, well regulated militias. Aka, trained military personel.
Here’s a link to Jason Alexander’s rant on the topic, expressed more clearly and at length.
Comments Off on Gun Control
Leo Babauta of Zen Habits consistently has inspiring things to say, contrarian to the modern world of productivity focused culture we live in today. I feel more relaxed after reading his blog, and that’s reason enough to keep reading it.
Sacha Chua always writes interesting stuff, about starting her own business, learning new skills, and reviewing books with sketch notes.
James Altucher’s writing is like candy. The sentences are short. The titles get your attention. He’s not afraid to bleed. I read one of his ebooks. “How to Be The Luckiest Person Alive.” It was highly entertaining.
Ryan Bates started RailsCasts in 2007. RailsCasts isn’t really a blog. It’s a video tutorial site. Rails originally got popular in part because of short screencast demos. Ryan took this and ran with it, producing at least one new episode a week, teaching how to do some short focused thing in Rails. It started out all free. Now he has a pro-series and charges $9 a month for the more in depth episodes. I signed up immediately, because I already knew it would be quality stuff. I’ve watched many of them. But not all because Ryan produces them faster than I can watch them. I hope he’s making good money because he deserves it.
A friend of mine was thinking about the loss of his father recently. His father was a great guy who supported my friends and I during our teenagers-with-rock-star-dreams years. He shared a nice anecdote about him. “I will share that his last big proclamation about life was “don’t waste a minute”. We all have goals and plans, but it’s the actual journey that’s life. If you live each day living up to your own personal potential, especially in the way we impact others by being our best selves, no matter what the events of the day bring you can feel good about it.”
Comments Off on Being Our Best Selves
I’m releasing a series of screencast tutorials on D3 at deveo.tv
. Check it out and let me know what you think!
In Learning D3 Part 4, I briefly introduced SVG, the differences between SVG and Canvas, and drew a chart grid to illustrate how SVG’s canvas goes from top/left to bottom/right.
D3 has a nice axis component for drawing reference lines, tick marks, and labels, which cleans up some of the code from the previous example. Here’s another good tutorial on it. Here’s the previous example, now drawn using d3.axis.
This example also contains tick marks as part of the axis lines. Might be unnecessary chart-junk depending on the situation, but they’re easily removed if you don’t need them.
// Define identity (1:1) scales
var x = d3.scale.identity().domain([0,450]);
var y = d3.scale.identity().domain([0,300]);
// Define container
var chart = d3.select("body")
// move 0,0 slightly down and right to accomodate axes
// Draw X-axis grid lines
// Draw Y-axis grid lines
// Define stock x and y axis
var xAxis = d3.svg.axis().scale(x).orient('top');
var yAxis = d3.svg.axis().scale(y).orient('left');
Here is the complete working example, with css that cleans up the tick marks.
Still not much to see yet, but I’m establishing the foundation on which to build. 🙂
Continue with the D3 Series:
Slow down. It’s friday night. Get off the computer. Shut it down. Meditate. Go outside. Scream. Breathe. Jump around. Think about how awesome life is. Feel grateful.
Comments Off on How to Relax