10k Apart

I have spent much of my free time the last 12 days working on a project for the 10k Apart challenge. 10k Apart is a challenge to make a compelling progressively enhanced, accessible site with 10 KB or less of initial payload per page (more can be lazy-loaded). I decided to build an implementation of Conway’s Game of Life, which I had wanted to do since going to a Code Retreat a while back.
Continue reading 10k Apart

GiveCamp 2016 done

GiveCamp 2016 is over. Another successful year. The new Cleveland Garlic Festival site is live. I didn’t do much on the site the final day besides for fix some URLs and move some files to help with the launch. I did break away to help another team fix some issues with image sliders on the homepage. Not just any team, but one doing some updates to the Cleveland GiveCamp website. I don’t believe those changes are live yet though. During this, I got to work a little while with my cousin’s friend Dara for the first time.

As usual this year, I recognized a number of people from previous years. My project manager was a project manager from a couple years ago. I talked to several of the people I’ve worked with in the past and have seen multiple years. There is definitely a networking aspect to the event. Some of the people I see at meetups and other events.
Continue reading GiveCamp 2016 done

GiveCamp 2016 day 2

Day 2 of GiveCamp is complete. My team is in quite good shape. We shed one member early on. I too left to be re-purposed, but that didn’t last long. I briefly helped one team determine that, after my attempt to help them hack a plugin, it was time to jump ship to another. They didn’t need my further assistance, and the organizers couldn’t find another place for me, so I went back to my original team. Another of our members went home early. Even at a relaxed pace and searching for things to do, we were able to complete their nice-to-haves and improve some things from their quick-setup state. Tomorrow should be easy.

The event of the day more present on my mind at the moment is that my tent pole broke. When I first lay down in it, I saw the pole going at a weird angle. I got out and pulled the fly partly off to find the pole split and rather sharp. The tent was standing alright, but, not wanting the pole to poke through the fly, I attempted to fix it. I spent like an hour between working on and thinking of a field repair. In the end, nothing really got the broken pieces to stay together when the pole was arched. Now I lay in a slightly tilted, wonky tent, tired My tent is a Eureka Midori, and this is the second Eureka I’ve had the pole break on. Neither had I used very many times, maybe a handful each. Disappointing.

Givecamp 2016 day 1

First day of GiveCamp 2016. Working on the Cleveland Garlic Festival website. Seems like it’s going to be another relatively easy one, as I think the last few have been. We are rebuilding the site to run on WordPress and be responsive, plus other general improvements as we go. I’m on a team of four plus one organization representative. Things are going smoothly.

Givecamp 2014: Lake Erie Ink

Lake Erie Ink mobile home page
Slightly over a week ago, I finished my fourth Cleveland GiveCamp. GiveCamp is a weekend of developing websites and other things for area nonprofits. As usual, it was a good time. My project this year was an update to Lake Erie Ink’s site. They had actually had their site built at the GiveCamp two years prior (I was not on that project, but know someone who was). They just wanted a map added to their site that showed where kids were writing or writing about. With six developers and a developing project manager, along with a WordPress plugin, we were able to get the basic functionality working rather quickly. So quickly that we had something working Friday night and started shedding developers to other projects. By Sunday it was basically down to just me and the project manager (plus the Lake Erie Ink people, of course). We added in some extra improvements in addition to the map. We brought in a couple of designers for brief stints to help us with some design issues.

For my part, I did help some with the map, but spent most of my time making their site responsive and tweaking the home page to include a callout for the map page. The site had not been designed with responsiveness in mind at all. It had nested divs with fixed pixel widths that accommodated padding of the parents’ even when width: 100% would’ve done the same thing. In addition, id’s were used a lot, even multiple times per page, there was a lot of unnecessary redundancy and extra CSS in the styles (such as repeated blocks and things like margin: 0px 0px 0px 0px), and extra heading elements were made up to provide extra heading styles (h7, h8, and h9). The templates were confusing at times and some had different versions or nearly identical related templates.
Continue reading Givecamp 2014: Lake Erie Ink

Working with Composer ‘scripts’ and ‘extra’ from Non-Root Package

The goal of my Symfony StandardEditionBundle is to capture as much of the logic and configuration of the Symfony Standard Edition as possible to make it easy to upgrade between versions with as little modification to the in place application as possible. Among things I wanted to try to get into the bundle was as much as possible of the composer configuration file. It contains a ‘scripts’ key of scripts or functions from packages that are supposed to be run upon install / update by composer to set up the application (for instance, one script walks you through creating the ‘parameters.yml’ configuration file). There is also an ‘extra’ key used as configuration for these scripts.

Scripts

Composer only allows the ‘scripts’ to be defined in the root ‘composer.json’, ie the one in your application. The idea is that scripts will only run that the owner has explicitly given permission to, and thus trust. This prevented me from putting them directly in my bundle’s ‘composer.json’, as they would be ignored. My solution was to create functions in my bundle that run the ‘scripts’ from Symfony Standard Edition and can be placed in the root application’s ‘composer.json’. This way, the application wouldn’t have to change those scripts unless Symfony Standard added ‘scripts’ for more events (since they are specified with the composer event they are to be run for).
Continue reading Working with Composer ‘scripts’ and ‘extra’ from Non-Root Package