Blog

Month archive

U.F.O.

A couple of weeks ago I attended a Laura Marling concert courtesy of a friend. While I enjoyed her singing and playing, my favorite part may have been hearing her discuss some of her favorite music from the year 1969. Among other less stellar records, she mentioned Jim Sullivan’s U.F.O. I looked it up upon returning home, and it turned out to be quite a gem.

Sullivan’s career never took off as an artist, but with the help of a friend he managed to secure the excellent Wrecking Crew) as the backing band for his second album. (His first album was self-titled and is even harder to find - I can only find one reference to it online.)

The strange story of his life is certainly worth a read.

Coming Back to PHP

I’ve been on a rather lengthy PHP hiatus. With my discover of Ruby on Rails (January 2012) and my foray into iOS development (starting November 2012), I haven’t had time to think about WordPress or PHP much lately. But in searching for a lightweight solution to a soon-to-be-published magazine’s website, I realized that a Ruby-based approach wasn’t going to work well. I like Rails and Sinatra, but managed Ruby hosting is very expensive, and my client needed an cost-effective solution.

So I decided to give PHP another try. It’s cheap, and I realized that much of what I had disliked about it in the past was the inner workings of WordPress. The folder structure of WordPress is poorly organized, theming and admin customization are laborious, and then there’s The Loop™. Does web development really need to be so confusing? After a bit of searching, I cam across Slim, a lightweight framework for PHP. It’s very similar in style to Sinatra, which I appreciate. And it has a good set of extras and an active community. It turned out to be just what I needed.

I still don’t love PHP. It has some pretty ugly syntax, it can be a little sluggish at times, and I don’t like how methods are scoped. But it’s not a bad language. It gets the job done.

Sinatra

Sinatra is a wonderful lightweight web framework for Ruby developers. It has a very simple DSL syntax (an example is provided on the homepage). With it, you can write a complete web application (albeit a simple one) in a single Ruby file!

But when you expand your source into a few files and combine it with the excellent Ruby ORM library DataMapper, you can accomplish some pretty cool stuff and avoid the bloat of a large framework like Rails.

I re-wrote this website in Sinatra in May. I’ve enjoyed being free from the oppression of common web programming language that shall not be named. You can browse the source code of my site here. One resource that came in particularly handy when getting starting was ididitmyway.heroku.com. Give Sinatra a try and see what you think. If you think it’s wonderful, I’ll agree with you.

Creative Perspective

The trick to being truly creative, I’ve always maintained, is to be completely unselfconscious. To resist the urge to self-censor. To not-give-a-s**t what anybody thinks.

It is a universal truth that all artists think they are frauds and charlatans, and live in constant fear of being exposed. We believe that by working harder than anyone else we can evade detection.

-Linds Redding

The preceding excerpt is from an excellent article that addresses the question of balancing passion with deadlines, and keeping both of these in equilibrium with everything else. How much of your life is worth sacrificing to do great work?

www.thesfegotist.com/editorial/2012/march/14/short-lesson-perspective

Target Blank

I just came across this article by Jakob Nielsen on web usability which I believe was written last week. He says not to use target="_blank" on links.

If I want a new window, I will open it myself! - Jakob Nielsen

This makes sense to me, so I think I’ll stop doing it right away. I probably should have sooner, but like I said it’s a brand new article.

And wow, I just read the rest of it. It’s amazing that people are still making all the same mistakes they were back then. C'mon people, get your acts together!

ConvergeSE 2012 - Saturday

This is part two of my notes from ConvergeSE 2012 - Saturday (read notes from Friday).


(Sessions 1 & 2 I skipped)

Session 3: Keep it Simple, Stupid (Kyle Steed)

Simplicity: the quality being easy to understand or do

It takes a lot of hard work to enjoy what you do!

Value the simple things (things in life, work, faith, etc.) Jiro Dreams of Sushi - a movie about a man who works hard and produces incredible results.

Don’t overthink

  • Brainstorming is ok cause it helps you get all the bad ideas out first
  • But stick with simple ideas

Design is a choice, love is a choice, simplicity is a choice

  • Even if you’re comfortable at a 9-5, it may not be fulfilling
  • Love what you do
  • Choose to live simply

Don’t fear your peers

  • Appreciate and learn from them
  • Focus on community and connection
  • Be inspired by them!

Get good “people time” to be inspired

  • Set aside quiet time in the morning
  • Then prayer time
  • THEN work

Resources

Session 4: Modernizr (Faruk Ateş)

  • It’s all about creating tailored web experiences
  • Opera, FF, IE are going to alias -webkit prefixes
  • Browser vendors screw up UserAgent strings (add MANY conflicting identifiers!)
  • Who’s to blame: developers or browser vendors? Neither

How do we work? Person + Tool = Result
If the tool’s flawed, developers need to overcompensate for the flawed tool

The purpose of tools

  1. Empower you in your needs
  2. Make it easier to do the job the right way

Origin Story

He wanted to solve the problem of progressive enhancement without forcing people to start from scratch

How Modernizr helps

  1. Empowers designers & developers to use HTML5 + CSS3
  2. Makes it easier to do feature detection, progressive enhancement

Taking it to the next level

Regressive Enhancement - Modernizr + Yepnope.js (Modernizr.load())

Modernizr.load({
  test: 'Modernizr.csstransitions',
  yep: 'filepath.css/js',
  nope: '',
  callback: ''
})

Related Tools

What’s next?

  • Responsive Web Design (“100%”) - i.e., responsive images
  • “Mobile First” as a principle is right on the money
  • Focus on features of current browsers (and upcoming features) and design for those
  • Design for the browser of the future… (?)
  • More and better tools (everyone’s responsibility)
  • More integrated tools

Session 5: Faster Design Decisions With Style Tiles (Samantha Warren)

Who:

Her, badassideas.com. She works with clients on big responsive websites.

What:

Style Tiles are a design deliverable

  • Like paint chips or fabric swatches for a room’s styling
  • Elements of a page: type, possible colors, shapes, icons, dribbbles, buttons, textures …
  • Benefits of Style Tiles:
    • Moodboards are too vague
    • Mockups are too precise
    • Style Tiles are just right!
  • They separate style from layout

Why:

Frankenstien Comp (aka Frankencomp): putting together different comps, which is a mess
Clients don’t think like designers!

How:

  1. Listen
    • Ask goal-oriented questions
      • What are the top three user goals for the site?
      • What are the top three business goals for the site?
    • Exploratory questions, like who are your users
    • Metaphor questions, like “What cookie would your website be and why?” <- (BS)
    • “Degree of” questions, like “How strongly do you think the site should be… illustrative?” (1-5)
  2. Interpret
    • Blanket adjectives (Patriotic, Authoritative, American, Readable)
    • Extract adjectives into groups
    • Break down adjectives into groups based on elements and principles of design
  3. Define a visual language
    • “newsy,” “clean,” “playful”
    • It just needs to give you a place to start
  4. Iterate
    • Iterating on a style tile is far more efficient than iterating on a comp
    • It’s human nature to combine options

For responsive designs…

References

SESSION 6: The Intersection Of Design & Development (Jeff Croft)

He’s a hybrid.
He used to use the tools he knew to do whatever he needed to do. (vbulliten, moveabletype, etc)

Off the shelf tools suck (for doing what they’re not meant for)

He started working with the original django team on www.lawrence.com
He’s a control freak - he wants to be involved at all levels, not just making it look pretty

Materials vs. Tools

  • Mastery of tools is key (but you must understand your materials too)
  • Our material is code
  • Zeldman says real designers always write code
  • Glen Murphy says the best designers are ones with a technical background

Some of the most important design decisions happen in code

  • Be proactive in development (i.e., if the designer left something out, take care of it)

You should learn to write code even if you don’t need to for your job

It could get you hired
Being able to code makes you a better designer (whether or not your job requires it)

Jim Coudal: “All things being equal, hire the one who can write.”

The more parts of a project you can influence, the more you can innovate (like Apple does)

Breadth == Influence

How do you get there?

  • Just dive in!
  • Find a client who will fund your education
  • Don’t stop at HTML and CSS
  • The language doesn’t matter
  • Start at the language level (not the framework)
  • Stop having “handoffs” - they kill elegance
    • Instead, work together on the entire project
    • Make decisions together
  • Stop worrying so much about tools and processes
  • Don’t blindly draw a line between front-end and back-end
  • Beware the “Valley of Badness” (thinking you know more than you do - be respectful)

Truly Innovative Products Need Custom Code

  • If you plan to build the next big thing, you better know how to code
  • Have a basic understanding of graphic/interaction design (layout, color, typography, etc)

Great people

Session 7: Mobile Usability Testing (Jennifer Downs)

Make a mobile testing rig:

  • Plug in a webcam and connect it physically to your iPhone
  • Use PhotoBooth
  • Use ScreenFlow software to record from both cameras
  • Turn down iPhone screen brightness
  • with reflectionapp.com/, you can mirror your iOS device on your Mac

What was this session about?

Session 8: Creating Excellent Customer Service (Robyn Tippins)

She’s had bad experiences with brands
Most people believe that companies want to avoid serving them
Examples:

  • Verizon is terrible and she had a very bad experience
  • Blackberry and RIM are also terrible because of their blackout in Europe

Write an emergency plan, just in case

Examples of bad PR (both good and bad ways to deal with it)

Non-Scaling Situations:

  • Assessing a customer’s needs
  • Helping a non tech-savvy customer
  • Refunding a customer’s purchase

Work with marketing, but insist on conversation being within the scope you define

Example of good PR:

  • Amazon creates “amaze-me” moments - they re-sent a guy’s order for free
  • They’re very wonderful in all ways!

Create positive assumptions

  • NQA return policy
  • answer calls/messages fast

Documentation

  • Document customer support
  • Create a wiki or something like that, and seed it with content
  • Place helps in strategic places

Empower your reps

  • Tell them to take the blame
  • Encourage creativity
  • Take away the clock
  • Encourage power listening (hearing all of it from the client)
  • Have them envision the person on the other side
  • Encourage real language
  • Emphasize follow through
  • Remind them to keep their cool

Weekly checkups

  • Call your own support line
  • Send emails to your support line

Go the extra mile

  • Amaze Me reports
  • Require follow through on

Guard your territory

  • Belong
  • Fight for your voice

Love your reps!

  • Don’t allow abuse
  • Show them a way out if they want it
  • Reward them outside of customer care

Session 9: Reinventing Interest Discovery Through Adaptive Human Behavioral Analysis (Jonathan LeBlanc)

Technology is the solution!
The Sociological backbone of identity (Us & Them - The science of identity)

The different states of knowledge

  • What a person knows
  • What a person knows they don’t know
  • What a person doesn’t know they don’t know

Identity and discovery are NOT a technology solution

He decided to make a change, which led him to stopped.at
He helped them build an identity engine

Building check-in categorizations (like a miniature Googlebot)

  • shopping
  • tech
  • books
  • posters
  • gifts

The more you use it, the more accurate it becomes
Find people you mostly overlap with, and help people learn what the other knows that they don’t
That’s how you get the “don’t know they don’t know” section

The Future of the web will not be driven by technology, it will be driven by human nature

Session 10: Getting Your CSS Under Control (Jonathan Snook)

He’s worked for himself, Yahoo, Shopify
Misconception: CSS is easy
CSS renders in reverse - each element in the page tests against each selector from right to left until a non-match is encountered

  1. Categorization
    1. Base (body, input, links)
    2. necolas.github.com/normalize.css (he didn’t actually mention this one)
    3. . meyerweb.com/eric/thoughts/2011/01/03/reset-revisited
    4. . html5boilerplate.com
    5. Layout (columns, main/sidebar)
      1. 960.gs
      2. elasticss.com
    6. Module
      1. form, search, sidebar “About”
      2. Sub-modules (like types of button)
    7. State (like active, current, etc) use “is” (i.e. “.is-active”) to designate
    8. Theme
      1. colors, borders, text, fonts/font-sizes
      2. only override what needs to be overridden, don’t rewrite everything
  2. Naming Convention
    1. They clarify intent
    2. Use classes over IDs (specificity is dangerous - leave room for multiples in the future)
    3. Specify what node you’re styling (use “.btn.btn-large” instead of “.btn.large”)
  3. Decouple HTML/CSS
    1. use child selectors because they limit scope, and they render faster
    2. use them inside a class-based module
  4. Increase Semantics
    1. use only one selector in a string if possible!
    2. add the same class to different types of tag, if they’re performing the same role

What does it mean?

  • Shift away from a page mentality
  • Don’t code CSS for the page, code it for the system

State-based design

  • A layout or module style
  • Sub-modules
  • JavaScript-driven states
  • Pseudo-class states
  • Media query states

References

Session 11: Beyond The Click: A Quick Start To Designing With Gestures (Wren Lanier)

  1. Gestures are good
  2. Make them intuitive

Session 12: Design Everything (Steve Smith)

Design: Deliberately making something awesome

Our design focus is too narrow
We spend all our time on headers, logos, etc
We ought to design support, team, workflows, analytics, community, etc

Team Workflow

  1. idea
  2. discussion
  3. visuals & development
  4. deployment
  5. monitoring
  6. iteration

This process can be used for everything

We need to design our (design) process

Every step needs thought, design, …, documentation

Tools for Team Interaction

  • They have their own app for ideas & discussion - team.githubapp.com
  • They have their own app for video presentation - it’s all automated (amazing!) - talks.githubapp.com
  • Script/Bootstrap (sets up everything automatically)
  • Branches (every feature is a new branch, some get merged back into master, some don’t)
  • Pull Requests (way to manage and comment on branches and merges)
  • Campfire (auto-notifies them about what goes on)
  • Play - sense of community because they can all listen to the same music even though some of them are remote - play.githubapp.com

Tools for Deployment

  • Hu-bot (office robot) for instance… “hubot deploy github to production” or “hubot deploy github/branch-name to production” - hubot.github.com
  • After commits to master, code is automatically deployed

Tools for Monitoring

Things we must design

  • Design for mobile devices
  • Design for customer support
  • Design for the first-time user
  • Design external notifications
  • Design APIs
  • Design for speed

We should design everything!!

ConvergeSE 2012 - Friday

I attended this year’s ConvergeSE in Columbia, South Carolina. It’s a great web conference geared toward developers, designers, and businesspeople. I took copious notes on the sessions I attended. Here are my notes from Friday (read notes from Saturday).


Session 1: Node.js (Tom Wilson)

What is it?

  • nodejs.org
  • JS on the server
  • Single threaded - event I/O (non-locking - can run other things while reading file/db)

Three Conventions

  • Callbacks (function as param)
    • every synch call takes a callback - first param is error, second is result, third is body?
  • EventEmitter
    • require events, and emit events (.emit())
    • can create loosely couple
    • emitter.on( , )
    • emitter.emit()
  • Streams (maxogden.com/node-streams)
    • what’s passed in a stream is a buffer
    • piping between tcp, file, db, etc
    • can chain pipes (web form -> code that modifies -> db)
    • one-line http server

Use Case 1: Twitter Stream API

  • Code: gist.github.com/2503844
  • package.json is like Gemfile
  • The –save shell param adds it to package.json
  • index.js is the starting file
  • Has native DB drivers, so there’s no blocking anywhere in the process

Use Case 2: Request - cURL in Node (http://github.com/mikeal/request)

Use Case 3: Express (expressjs.com)

  • MVC for Node
  • Template langs: Jade, Moustache, Hogan, EJS
  • Super lightweight!

Middleware

Other interesting js libs:

  1. http://socket.io/
  2. http://meteor.com/
  3. http://derbyjs.com/
  4. http://visionmedia.github.com/mocha/
  5. https://github.com/caolan/async
  6. http://usebam.com
  7. http://browserquest.mozilla.org

Session 2: Could Asking Questions be the Answer? (Nicole Cendrowski)

Like the card trick where you come up with the right one automagically - it’s all about asking about the right questions.

  • Don’t let them push you, make sure you click up front
  • Think about how much they want and need what they’re coming to you for

Ask open-ended questions!

  • Needs vs. pain
  • What kind of pain are you experiencing? (pain funnel)
  • Dig down to see if people really are willing to work with you
    • Surface Issues (example)
    • Business Issues (lost income)
    • Personal Impact (feelings)
  • Make sure to talk to people who can actually say “Yes,” and not just “No”!
  • They’ll come to you with a problem, or an opportunity. Either way the process applies.
  • If they contact you but you’re not sure why, ask why they have asked you there
  • If they say “What can you do for us?” Give them three examples of why people might come to me, and then let them talk about it.

Session 3: CSS/SASS/Frameworks (Robert Pearce)

Other CSS Frameworks

  1. http://www.getskeleton.com/
  2. http://twitter.github.com/bootstrap/
  3. http://bootswatch.com/ (themes for bootstrap)
  4. http://960.gs/
  5. http://learnboost.github.com/stylus/
  6. http://compass-style.org/ (like jQuery for SCSS)

Session 4a: CPS Foundations (Jason Dew)

Turing Machine, by Alan Turing, British mathmetician (Turing test)

David Hilbert - proposed problems, made a list of ten famous problems. Turing built a machine to solve Hilbert’s “entscheidungsproblem”

Definitions…

Alphabet: any set of characters
String: sequence of symbols from the alphabet
Formal Language: any set of strings over an alphabet
Deterministic Finite Automatons (DFAs/State Machines)

  • an alphabet
  • a set of states
    • one denoted as a “starting state”
    • one or more denoted as a “accepting states”
  • a transition function (takes a symbol and a state)

DFA accepting binary strings that are multiples of 3 (i.e. “101101”): Deterministic Finite Automaton

Nondeterministic Finite Automatons (NFAs)

  • an alphabet
  • a set of states
    • one denoted as a “starting state”
    • one or more denoted as a “accepting states”
  • a transition function
    • takes a symbol and a state and returns zero or more states

NDFA accepting the binary string “1” Nondeterministic Finite Automaton

Regular Language: A formal language that can be expressed using a regular expression.
Theorem: A language is regular if and only if some regular expression describes it.

Turing Machine

Formal Definition:

  • Two alphabets
    • one for reading, the input alphabet
    • one for writing, the output (tape) alphabet
  • A set of states
    • starting
    • accepting
    • rejecting
  • A transition function
    • takes a symbol and a state and returns a state, a symbol to write, and a direction to move

Why do we care about Turing Machines?

  • They’re the foundation of computer science!
  • They define the word “algorithm” (Church-Turing Thesis)

References

Session 4b: Polyglot Rejected - internal DSLs are really what we want (Mark Gunnels)

“Simplify essential complexity; diminish accidental complexity.” - Neal Ford

Polyglot: knowing or using several languages
DSL: a computer language to solve a particular type of problem
Internal DSL: Like Rails - it’s a framework composed of DSLs

Using several languages on the same project causes more accidental complexity

  • Context switching slows people down
  • But we do want DSLs! They’re better than different languages.
  • The argument for DSLs is often confused with the argument for Polyglot programming
  • Even using the same exact language inside a project can be helpful, he says… (i.e. in your views, routes, AND JS! etc.) - you can do this with Clojure (https://github.com/weavejester/compojure, https://github.com/clojure/clojurescript)

Resources

Trip To California

This past month I visited the west coast for the first time. It was really beautiful! I spent most of my time there in the San Diego area. My favorite parts of the trip were as follows:

  • Visiting the Griffith Observatory in Los Angeles
  • Wading in the Pacific Ocean
  • Walking miles through downtown San Diego and the Balboa Park area
  • Riding a Surrey on Coronado Island

There’s still much of the country that I haven’t seen, but I highly recommend California. This is the beginning of a lot of travel for me, if all goes as planned.

Next stop: Europe.

Install and configure Homebrew on OS X

Hello friends. Here is an overview of how to set up Homebrew on Mac OS X. Homebrew is one of the best things ever. It allows you to easily install many software packages with simple terminal commands.

Homebrew already has a useful installation guide. It will get you up and running, but it’s lacking some important details.

By default, Homebrew uses the directory /usr/local/Cellar to install your packages, and it creates symlinks to the executable files in /usr/local/bin. However, in order to run Homebrew-installed packages with ease, you’ll need to add the latter directory to your $PATH variable. On OS X, this variable is located in the file at /Users/yourname/.bash_profile. (If the file does not exist, create it.) Add the following line to the beginning of the file:

export PATH=/usr/local/bin:$PATH

Now the terminal will look in your Homebrew directory when searching for executables to run, and your life will change for the better. Happy brewing!

Font-Face, Text-Shadow, and Chrome

Anybody else come across a nasty bug in Chrome when using @font-face with text-shadow? Your text gets all thin and scrawny as soon as you drop the shadow on.

It seems that this only occurs when viewing Google Web Fonts in Google Chrome. And unfortunately, this hasn’t been fixed even in the canary release of Chrome (v16).

However, there is a solution. Some guy has figured out a clean hack to get around the problem. Obviously you’ll want to declare a hex color first for older browsers, then your rgba color. Only new browsers pick up on the second declaration, and the color difference is negligible.

text-shadow: 2px 2px 2px #000;
color: #FFF;
color: rgba(255, 255, 255, 0.99);

I hope this helps mitigate some of the frustration the good CSS developers of the world are experiencing!

UPDATE: This bug was fixed in Chrome version 18.

Trip Time

Hello all. I’m going to be taking a trip to Boston very soon. I wouldn’t even mention it, except that I really feel like I ought to make this information somewhat public. For instance, what if somebody were to look for me in my usual hangout spots? I wouldn’t be there! I think you see what I mean. I’m leaving Tuesday and returning Sunday. I’ll be working remotely a little, but mostly just visiting someone, which should be great. I hope all of your weeks are equally great.

At the MED

I’m working at Mediasation again. After a college semester and a half, an awesome summer involving an internship with Squared Eye, a vacation in Indiana working at an excavating company, and a trip to visit an amazing girl, they decided to have me back for a bit. No one knows how long this stint will last, but everyone knows that I’ll sure enjoy it while it does. It’s a blessing in the skies.

Thanks for reading,
Stephen “Chuck” Davis

Old Music Is Better

That’s what they tell me on YouTube. “They sure as !@#$ don’t write &#*$ like this anymore!” Or some such statement. Is it true? They also say that fairly new stuff like Oasis’s Don’t look back in Anger is genius. I know that’s not true – Noel Gallagher said so himself. So what gives? My conclusion here would be that YouTube users in general have no idea what makes music great. I’m a YouTube user too, so that sucks! Of course, since the advent of the internets, more and more artists are getting publicity (sweet!), which means the truly good artists stand out less (lame!). However, the whole concept of “popular” music is still relatively new, which gives me hope. Perhaps over time, people will feel the same about this decade as they do about the 60’s and 70’s. (The 80’s are not helping my theory.)

So to my modern musician friends: Write with soul. Sometimes exploring new territory can mean the loss of a solid melody. Not good! Be transparent, but look outside of yourself for inspiration, not inside.

I’m Back At School

And stuff. So far it’s been ok, but it looks like I may not be learning a lot in my computer classes! What a shame. At least I get to chill with wannabe nerds. That in itself is worth the time, methinks. Getting started with Java took me like ten minutes… bleh. I was hoping to get a better OOP foundation, but I guess I’ll just have to learn the same stuff over again, or something like that.

New Album Out!

If Music be the Food of Love It’s finally here! After lots of work, etc., I have finished my first album, If Music be the Food of Love. It will be on iTunes September 15, but you can download it right now at www.imbtfol.com, or on NoiseTrade. I’d like to thank Michael Golus, Joshua Mayfield, Caleb Sherer, and Joshua Davis for their help with everything from playing the piano to doing cartwheels, etc. Enjoy!

Stephen

A Release Date Has Been Thought Of

I’m coming down to the home stretch with my new album, If Music be the Food of Love. Something tells me that this could be exciting! I’m shooting for August 15, which is less than two weeks away. There’s a certain satisfaction to doing everything by yourself, but I definitely want to try a different approach next time. It just isn’t time-effective to write every single note of every instrument by hand. I hereby vow to reach out in a non-hermit-like manner, and join with other fabulous musicians to make a more beautiful sound! I have one more food song left to finish, so I should be good with my deadline. Oh wait, I’m releasing my album in India a week sooner… YIKES.

This is a Professional Music Analysis

One of the hardest things about music is actually feeling it. It’s too easy to just write what sounds decent, and not really put my heart into it. So when a song can really make me feel deep down, I’m intrigued. In my experience, the emotional quality of a song has to do with escaping the mundane, both lyrically and musically, and presenting to the listener a vast spectrum of sensations. Two of the main ways to do this are through long distances and long periods of time.

That’s why I love Enya - she does an excellent job of spanning an incredible range of feelings. Her ethereal sound includes stark elements from the past and the present - fleshing out orchestral arrangements with electronic sounds. And her lyrics bring together years of circumstances, shrouding modern life in the expansive mystery of the past. Trains and Winter Rains I think shows her strengths the best of any of her songs.

Navigation Methods, Etcetera

I’ve recently begun to favor slightly different ways of layout out a main navigation div in CSS. I had been using padding on my a tags, and padding on a span tag inside them. However, line-height seems to be a viable method of achieving the same effect with less code. It generally seems IE-safe too, although you have to be a bit verbose for the poor thing.

If you do use a span inside your a (for additional background images and such), you’ll need to either re-declare the same line-height on it, or display it as a block-level element, either one of which is easier than trying to divide up your padding correctly around your text. But in some cases, using the block-level option may cause IE’s box model to freak out, rendering your a/li elements block-level as well. If so, float the span. This, however, may hide the background of the span, in which case either height or zoom must be added to the parent a/li tags. :P

After writing this out, it sure doesn’t look easier, but at least my code is pretty… thanks to Nate Hanna for (non-monetary) tips!

Marketing Fail?

Derek Webb I followed Derek Webb’s little scavenger hunt all the way to Nashville last night with my buddy Christopher Plemmons, and I was severely disappointed. Sure his new songs were great, but I already knew that. I wanted him to do something! Like… play some music?? He didn’t even stick around for me to meet him. It rather seemed like a waste of 12 hours of driving, but maybe it wasn’t. Nashville was still a pretty cool place to visit, and I pulled my first all-nighter to boot. Amazing.

Love Songs Are The Bomb

I’m trying to write an upbeat love song. It’s not going so well! I think the idea I had for it was good, but I always seem to end up with a cynical undercurrent. That’s not the worst thing ever, but it kind of ruins the mood if you pick up on it. So I’m trying to make the lyrics just cheesy enough that some people will understand what I’m really saying, but most people will still be able to enjoy it as a lighthearted love song. The EP I release this fall will probably include it, so you can judge how well I did when you hear it. It’s called Mary Kate.

A Weezer Summer

Weezer So far this summer, which has been about a month and a half, Weezer has been my main musical input. The first time I heard them was on the Buddy Holly music video included with Windows 95. Obviously I was confused - what a great idea for a music video though! Spike Jonze is cool, yo. I think what really sets Weezer apart from similar bands is the clean, almost timid vocals (and the lyrics that correspond with them) set against the gritty guitars. Pinkerton was especially revealing, almost awkwardly so. Rivers' attitude towards being a rockstar is often disarming - what is there to dislike? That’s why I was a little disappointed with the Red Album - they lyrics had mostly lost their distinctive honesty and self-deprecation, and seemed more pop-ish. I’ve really been inspired by Weezer though, and I’ve been trying to integrate more honesty into my own lyrics, with mixed results. It’s hard to tell people what’s really in your heart! I sometimes hope they’ll think I’m joking… :)

A New Website!

And this is why it’s thrilling: I get to write about all the stuff I think about all the time! That is good news indeed. The other thrill-type aspect is that this site has had the fastest development time of any I have worked on up to this point. Of course, I didn’t have a picky client to deal with, just cool, calm, collected me. More importantly though, I’m using WordPress. I’ve just become a huge fan! After trying many free cms’s (Joomla is GROSS, Textpattern is overly complicated, ExpressionEngine has a lame core version…), WordPress was the clear winner. I plan on using it for many of my illustrious clients. I made my own theme for this site, which I fondly named Grayson. I’ll be expanding on it as the occasion arises.

So that’s it! I’m going to be a blogger. Every cool person needs to blog.

But God

Some things aren’t fun to talk about. But sometimes the darkest secrets are the ones that bring the most joy when they are uncovered and undone. Today I heard a man testify to his release from a six year pornography addiction. I wanted to scream when I heard him say it! So God’s power really is incredible. It’s good to be reminded of that again. There’s a lot going on, and I usually do pretty well about getting past temptations - at least in my view. But God… He takes freedom to an entirely different level! I think I’m almost ready to experience it.

Freedom Lives

Fall away
Lead the way
Only just begun to see
Lonely now from
What she cowered
Before, she wouldn’t be

Freedom lives
Freedom lives

Time’s to go
This she knows
Far away from near
Truth be told
Time is sold
Her wine is wasted here

Freedom lives
Rapture gives
And lovingly restrains
Time will wait
Set the rate
It’s not conserving pains

Requirement

Sometime within the next lifetime, things will change. I know it. Someday, an epiphany will strike you, and you will no longer be a follower - even as I rather am in this writing.

So many things are given to you to depend on. Advertised as support to your health, or exceptionally decisive peers as support to your life choices; if you know how to rely on something else you’re pretty much all set. Nobody will ever require anything more.

But that non-essential is not a limit.

In plain sight, others have gone beyond the borders of mere consciousness, and the rewards were sweet. Even still, if you have the courage to overcome, you can become the one to admire. It’s hard to see someone else you know take the journey and leave you behind, but it’s also an inspiration.

Sometime it will be you.

Young

A pseudo-limerick that I wrote today while I was reading my psychology book. Multitasking baby.


Go on, young sailor, and fend off the blow
Remember your life, and grow
Your freedom is gained
Through the love you’ve profaned
Would wisdom enrich what you know?

Concentric commitment - relive and repent
(Except from the time that was spent)
And nobody cared
If the truth made you scared
It’s painful to straighten what’s bent

For now you can linger with all that you blamed
Forget if it makes you ashamed
In time, what you know
Will change as you grow
Your future’s in what you were named

Prologue

Just a heads-up here folks: most of what you see on this blog will probably not make much sense. I think I’m a little bad in the head. Anyway, I hope all you fans enjoy reading my sincere, yet completely irrational thoughts!

Stephen

Recent Posts

What I'm listening to

Loading...