I’ve been taking on a bitmorefreelancing work lately. It’s been really fun (and really not-so-fun, Wordpress database migration, anyone?) working with a friend/really talented designer. I’m learning tons along the way and not just on the technical side of things but also in the world of business and relationships.
I’m trying to learn as much as I can about the freelancing. I’m sacrificing other parts of life to do work outside of work but I think it’s time well spent.
I was checking my usual news sites and stumbled across a really insightful post from Alan Hollis, ”My first year freelancing”. It has some great tips and gave me a lot to think about.
Just as important as the article though is the discussion following it. I don’t know how to digest it all right now, but I like what I’m reading. I’ll close this post with the following from user damoncali:
You need to get out of the mindset of charging for your time. You are charging for the value you create - and time is just a crude approximation of that at best.
For starters, you’ll want to make sure you’ve udpated your package.json with the right dependencies. I’m not sure that livereload works with the baked in “watch” task and I’ve been using grunt-regarde of late. My package.json usually looks like this:
You obviously want grunt, livereload, connect seems to help with mounting folders, and regarde is like grunt-watch, it just seems to work better (I forget why exactly).
You could make your package.json even better by specifying livereload in its own “devDependencies” object if you’re so inclined. Now, run your good old fasioned npm install to get the goodies in your project.
Let’s talk gruntfiles:
As you probably know, the gruntfile is what makes the magic happen. Somewhere towards the bottom of your gruntfile, you’ll want to specify
At the top of your gruntfile, we’ll want to add some utils for livereload. Under /*global module:false*/, go ahead and add var lrSnippet = require('grunt-contrib-livereload/lib/utils').livereloadSnippet;.
After that, you don’t really need to learn connect, you just gotta use it. Check it out:
Now we want to watch for changes on the files. I like to set up a few different tasks since I don’t want my whole grunt process running every time I save a CSS file. Here’s what I work with (again, add to module.exports):
You can see that I only want livereload to fire when there are changes to my compiled css (*.css) or to my compiled html. If I edit a SCSS file, I want to fire off just compass. If I edit a jade template, I want to only fire the jade to HTML compiler. I think you can see what’s going on. You can toy with this, just be smart about it because you could get caught in an infinite loop.
Lastly, you need to fire off these processes. I like tying them all to my main grunt task because my gruntfile is just that sweet.
Sometime this year I started a Gmail label called “tickets” so I could better track the shows I go to. I’ve gone to a lot. There are eighteen emails with this label and I imagine I’ve gone to at least a handful more of impromptu shows. So this comes to somewhere around two dozen shows I’ve gone to, many with openers and co-headliners. Even without having gone to a festival, this year I’ll probably have seen upwards of fifty different bands, artists, and performers.
So where’s this leave me? Probably with a bit of hearing damage but also with several unforgettable (and some very forgettable) experiences. I’ve been willing to see just about any kind of show this year ranging from hardcore shows to dancey DJ sets to Brooklyn-based folk music in a room of about ten people. I’ve seen the greatest concert of my life and walked out of a show after three minutes.
These performances have been across the board. I saw The Ghost Inside, Thrice and Refused and found myself in the pit each time. These shows aren’t about the musical experience so much as they are about being fully present and letting the music, the crowd, and the venue take their toll on your body.
One of the more memorable shows this year was when I saw Snow Patrol at the 9:30 club. I went into the show almost entirely unaware of their catalog. I went because it was live music (and I had a crush). I didn’t expect much since all I knew of them was their song “Open Your Eyes.” Going with no expectations allowed me to focus entirely on the concert experience. I didn’t have any songs I wanted to hear, I didn’t know how well they performed in another venue, I just knew I got the treat of seeing live music. They commanded the stage at the 9:30 club with their energy and musicianship in ways I haven’t seen from other bands.
These shows have taken me all over Washington DC and connected me with people who I probably wouldn’t have connected with otherwise. I’ve seen beautiful concert venues and I’ve stood in a room of five people while a guy and girl sing about being in love with each other. In the coming weeks I’ll be seeing a band from my middle school years, a hip-hop producer, and a South African dreamy electronic synth-pop band. I have no need to take every concert seriously, shows should be fun. At the same time, I find something magical in watching people pour out their heart and souls through music. I hope you get to experience that magic soon.
Lately, I’ve been working on a project with a few other developers and, as you can imagine, github has been our go-to for version control and management of changes. We’re each working locally but the time came where we needed to give the client access to the CMS (ExpressionEngine) and allow her to start entering content. Ok, easy right? Well, kind of.
For local dev, I’m still using MAMP just for the sake of simplicity so all my paths are relative to /Applications/MAMP/htdocs. This is all well and good but my MediaTemple shared GS doesn’t have MAMP. I had to get at MySQL in a different location.
During development, we’ve been running a few scripts to manage the transporation of EE’s database and the paths were working based on the path to MAMP. It wasn’t the cleanest way of accomplishing things but it worked for what we needed. As soon as we weren’t using MAMP, we needed to change paths. Since the server and our local environments were pulling from the same repo, we had a few options; we could either use environment variables (probably a good idea) or each person and the server could maintain an independent database configuration (not quite as good). Since my knowledge of the command line is a bit limited and MediaTemple has some restrictions in place on their shared servers, we went with the second solution. We now needed to maintain independent copies of our configuration files with different settings based on the environment but git was already tracking the files and pushing/pulling them.
As usual, stackoverflow came to the rescue. To untrack files that have already been initialized but NOT delete it from the system, use the following:
git rm --cached filename
Then, go ahead and commit your project changes. You should see the file drop out of the git repo but stay on your system. This proved to be a little problematic because when another developer pulled, he lost the file entirely and had to recreate it. This wasn’t a huge deal because it was in the history but this should somehow be avoided, I’m just not sure how. Any tips?
All of my grandparents are dead. In fact, they’re long dead. I lost my last grandparent (my mom’s mom) when I was in elementary school. Prior to her death, she suffered from Multiple Sclerosis and lung cancer. Smoking will do that to you, I suppose.
This said, my family is unique in that it was tragically affected by death on a biannual basis. Cancer, MS and heart attacks took my grandparents from us. I’m not sure how this shaped me other than I didn’t have trips to see my grandparents like so many of my friends had and dreaded (wanna trade?) through middle and high school years.
I watched The Graduate a few days ago and was impressed by the soundtrack that features Simon & Garfunkel almost exclusively. I have faint memories of each of my grandparents and while nothing especially stands out about my dad’s father, I remember being in his house. After my grandmother, his wife, died (I was around five years old) he kind of closed up. From what I know and have heard, he wasn’t an exceptionally welcoming person but the loss of my grandmother was especially hard on him. He was successful in business so he had a lot of money but he seemed to be pretty lonely. He bought an RV, he had a boat, I remember flying with him in his plane; but I don’t know how happy he really was.
One very specific memory I have is spending time in his house after he died. I think my dad and his siblings were trying to move things out and I happened to be around. I was in the sunroom fiddling with a boom box (probably the first one I had ever seen) and it had a CD player. I remember some of the CDs that were in the CD box very well (probably because my mom took them away from me). The ones I remember specifically were:
The Top Gun Official Sound Track
Boyz II Men - II
Yanni Live At the Acropolis
Simon & Garfunkel’s Greatest Hits
There were probably more that I don’t remember but those are the ones that stood out so well. Up to that point, the music I had access to was what my parents played in the car or what I heard at church (often the same thing). When I played Boyz II Men, I had no idea what these smooth, harmonious sounds were on Thank You or what the hard snares were on Playing with the Boys. The album that stuck out the most though was Simon & Garfunkel’s greatest hits.
I remember the sound and scratch of the cd player queueing up and reading 00 on the track listing. Suddenly as the laser in the CD player found it’s mark on the disc, the number would jump to 01 and the most unbelievable sound of acoustic guitar came through. This was followed by men singing nonsense words “dee dee dee” and “doo doo do do do doo” then came a bold chorus talking about Mrs. Robinson, Jesus, and Heaven. The lyrics were crisp and clear. I knew I had stumbled on something great, but I had no idea why or what it was.
I held onto that CD and listened to it over and over. Every time I played it in that same boombox. Even though it was a greatest hits compilation, the songs seemed like they were written to flow in and out of each other.
So as I was watching The Graduate and singing along with every word, I couldn’t help but find myself sitting in that sunroom of my grandfather’s house. It’s my first memory of music having a meaning outside of what the lyrics said. It became something for the soul, something that conveyed the feelings of not only the artists but the feelings of a generation. I was undoubtedly too young to understand all this at the time but I remember the feeling of wonder.
It’s the same feeling I get as I sit here listening to America. I can’t say I know what it means but it feels careless yet hopeful.
[Music] exists as and for appearance. There is no actuality underlying it… Musical coherence is abstracted from actuality, not based upon it… [Music’s] appearance and its actuality are one and the same.
Geoffrey Payzant, Glenn Gould: Music and Mind
Clearly, it’s possible to create believable, effective, amazing recorded works independent of the quality of the music on which the recording is based. Even when a recording’s musical content is lackluster or unremarkable, vibrant elements (a great vocal performance, a hook, or clever stylistic choices, etc) can work to make the recording itself into a potent creation, such that the so-called “deeper” content doesn’t matter.
This seems obvious enough. Is anyone really going to be troubled by the suggestion that the sounds within a recording are of comparable importance to the so-called content (i.e.,the musical ideas, words, melody) that we ordinarily perceive to underlie it? I doubt it.
Now, some critics might say that this sort of music makes silk purses from sows’ ears, and common sense would probably agree. Anyone who has ever noticed a vapid lyric or a tired chord progression underpinning a beloved popular song has had that view, if only for a minute. Silk purses from sows’ ears.
But when we look more closely at a recording, we get into some trouble, because (to state the obvious) the true contents of a recording consist only of the actual recorded sounds themselves, and nothing more. The recorded sounds are not just of comparable importance, they are all there is.
Music is, as Payzant says, “entirely phenomenal… [it] actually appears, and its appearance is the kind of actuality is has.” In other words, that “coherence” that we recognize as a song is something that we abstract from the actual music.
This is both obviously true, and also more than a little unsettling, since most of what I hear when I listen to music, and most of what I am seeking when I listen, has to do with the sense of a song that is behind the one I can hear. I am hearing content that is implied by the recordings contents; or, to use Payzant’s terminology, I am interested in what I can abstract from the sounds I am hearing.
It is usually the excellence of those perceived deeper implications, and the quality of the communication transmitted through the music from another human soul who somehow found and adapted their experience into art, that matters to me, much more, apparently, than what I am actually hearing.
[originally] Posted by Michael Zapruder at February 19, 2008 11:59 AM at blog.pandora.com
I’ve wanted to start a blog for a while. I’m not sure how far I’ll go with it or what will become of it. I’ve gone through iteration after iteration in several content management systems and blogging platforms (Expression Engine, Wordpress, Jekyll) and even tried to write my own with PHP/MySQL.
I’ve had some successes along the way and learned a good bit but I found myself stuck either on design or I’d be frustrated with something technical. Whether it was my date sorting mechanism failing in my homegrown PHP-based CMS or I was unsatisfied with the visual design of what I came up with1, I could never seem to get something off the ground.
It has literally been years in the making and finally after doing a bit of reading I realized I need to just do this thing. I realized that my end-goal was blogging, not really having a home-grown solution. I wanted to learn in the process and I certainly had. It’s that I don’t want to build a content management system. I managed to dive in with a bit of PHP, Node, and server configuration along the way. I’d say it’s a successful lesson learned. So with that in mind, I started on Jekyll then quickly moved to Octopress at the recommendation of Andrew Theroux (@theroux).
I’ve used Ruby Gems in the past but only to the extent of using $ gem install foo. Not exactly groundbreaking stuff. Octopress was similar but it had a few extra steps that I needed to dive into. I had to upgrade Ruby since my MacBook had 1.8.3 and Octopress required 1.9.2. Luckily Octopress is very clearly documented and before long, I was headed in the direction of RVM. This made upgrading a breeze and made me thankful that there are a lot of people in the web community who know a lot more than I do.
I’m hosting this badboy on Heroku and using github as a backup. In the future, I hope to write about what I’m learning in my new-ish job at nclud. I also want to customize the look and feel of this thing since right now it’s just the default skin, and I can hopefully dive into the source of this thing a bit to customize it to my needs.
We’ll see where this goes!
1. I like designing in code but I have high standards and my ability for visual design is lacking. I’m actively working on it and always trying to push myself to not settle.