Do you get the song “Push It” by Salt-n-Pepa in your head every time you push code to Git? I do. Here’s how to push code and automatically begin a 4 minute and 29 second celebration with one command. This works on Mac OSX with Spotify.
Save the following short script in a file. I called mine “pushit”. Make sure it’s executable and put it in a directory that is in your $PATH.
git push origin
Alternatively, you can put the following line in your ~/.profile:
alias pushit="git push origin; open spotify:track:0GugYsbXWlfLOgsmtsdxzg;"
And remember to:
Then, you can push your code to Git and automatically start playing “Push It” in Spotify by typing “pushit” on the command line.
If, for some reason, you’d like to play another song such as Push It by Garbage when you push to git, just find that song in Spotify, right click on it, and copy the Spotify URI. Replace “spotify:track:0GugYsbXWlfLOgsmtsdxzg” in the script above with the URI for your preferred song.
Note that this uses the push.default setting in Git. In order to suppress a warning message, you may want to do:
git config --global push.default simple
on the command line. This setting means that the script will only push your current branch to its matching branch on the origin.
Push it Real Good!
I had clicked on a link to an interesting Harvard Business Review article on Facebook only to find a big overlay telling me to log in. These things have become standard these days, but this one didn’t have any link to close the overlay. The only option was to sign up (not actually pay in this case). I didn’t like this, so I used Chrome developer tools to hide the overlay. Just right click on a part the overlay and look for a high z-index in the CSS. Change it to a negative value, and voila! This video shows you how:
Google officially defines the bounce rate as “the percentage of visits that go only one page before exiting a site”. A bounce rate of about 80% is typical for a blog. 40-60% is reasonable for other content sites and apps. 10-40% is excellent. If your bounce rate is under 10%, this is probably due to an error in your configuration.
The most common reason that your Google Analytics may be reporting a crazy low bounce rate is because you have accidentally included your Google Analytics code twice. This means that when someone loads a page from your site, the code on your page sends two page views back to Google Analytics. The other side effect of this mistake is that your page views and page views per visit will be doubled.
Here’s how to tell if you have such an error:
- Go to your site, make sure you are not logged in as the admin (some Google Analytics plugins are smart enough to not add the code if you are logged in as the site owner) and view the page source. (In chrome, this option is in the right click menu.)
- Search for “trackPageview”. If this appears twice, your site is tracking twice the page views it should.
Events affect the bounce rate when they are counted as interactions with your page. When someone visits only one page, and their visit triggers an event that counts as an interaction, Google Analytics doesn’t consider that a bounce. Yes, that means the definition of bounce rate on Google’s own help center page is misleading!
To see the real percentage of people who visit only one page, go to “Audience” -> “Behavior” -> “Engagement” and click on “Page Depth”. You’ll see a bar chart that shows visitors versus number of pages. Divide the number of 1-page visits by the number of total visits.
One of the biggest downsides and distractions in being a first-time entrepreneur is that far too many people are quick to give you unsolicited asshat startup advice. When you’re at a party or networking event and someone says “you know what you should do” and proceeds to go down a rabbit-hole, you feel stuck feigning interest while looking for a way out of the conversation. It’s painful. And a waste of time. Meanwhile, according to some, there’s a dearth of true mentorship in the DC startup ecosystem. Clearly, there is widespread confusion on who needs to STFU and who should share their pearls of startup wisdom. To correct this issue, I’ve created the following handy flowchart.
UPDATE: Here is a printable version. And a mug.
If you’ve been using Google Analytics for some time, you may have noticed that the fraction of search results from keywords that are “not provided” has been increasing over time. This is mostly because anyone logged into a Google product using Google search now has their search keywords hidden from site owners. So what are site owners to do? How do you know which keywords are driving traffic to your site?
Some suggestions involve decoding query strings, but this is a complicated solution that doesn’t yield that much useful information. Here’s one simple tip that will give you some insights into what those mysterious “not provided” keywords are.
From your organic search results page, click on “(not provided)”. Then find the “Primary Dimension” setting right above the table of results. Changing this changes what is represented in the first column in the table.
Click on the tiny triangle next to “Other” to find a pull down menu with other values you can change this to. Change it to “Landing Page”, which is under “Traffic Sources”.
Voila. You can now see which pages are bringing in traffic via “not provided” keywords. While you still can’t see the exact keywords, you can see which pages are most successful in search and most likely, the keywords are related to the titles of these pages.
A web clipper is a bookmarklet, app, or browser extension that copies some or all of the content of a webpage into a new webpage or app. Clippers appear to be exploding in number. Pinterest, Evernote, SpringPad, Clipboard, JustAPinch, and KeyIngredient are just a few examples of web and mobile apps that offer clippers. If the amount of content clipped is significant and is made publicly available as a copy on a new website, it might constitute copyright infringement. But regardless of the legality, “clipping” is essentially programmatic access of a website much like web spidering. It may not exactly be automated and recursive as in the case of a bot, but it is access by a non-human, usually for the purpose of copying content.
Site owners need to be able to control which clippers can access their sites and which cannot via some standard, much in the same way that they can control well-behaved bots via robots.txt and meta codes. If a clipping site has benevolent intentions, its clipper should obey the same conventions that well-behaved bots obey in order to be transparent about its actions and to respect a site owner’s wishes. These conventions include:
- Identifying itself. Set a custom user agent that identifies the clipper with a link to an information page. Clippers such as the KeyIngredient and JustAPinch bookmarklets currently identify themselves based on their underlying web access frameworks. Not only does this give away the structure of the code used, but it doesn’t provide a site owner with any useful information in the server log files on who is accessing their site programmatically and why.
- Explaining itself. Provide a page about your clipper’s user agent explaining why you are accessing web pages programmatically and what the benefit to a site owner might be. Major search engines like Google do this. So should every site with a web clipper.
- Providing instructions for how to block itself. Provide instructions on how to block your clipper via robots.txt or other means such as the BadBehavior plugin, .htaccess file, or a meta code. Again, all major search engines do this. Clippers need to give site owners a way to opt out.
- Obeying robots.txt and meta codes. If a site owner has taken steps to block your clipper, respect their wishes and do not access their site programmatically. The NOINDEX and NOARCHIVE meta codes should imply that the site should not be clipped either. Pinterest invented their own NOPIN meta tag. For sites owners that wish to allow their pages to be indexed or archived but not clipped, I propose that we adopt a NOCLIP meta tag and set the expectation that clipping apps obey it.
After having a bad experience with a paid WordPress theme, I realized that there are some inherently bad features to the general concept of paid themes. Here’s my list of reasons why, besides the price, you should never pay for a pre-built WordPress theme.
- You can’t try it on. When I’m browsing free WordPress themes, when I find one that I like, I install it and quickly try it on using the “live preview” feature of WordPress. Sometimes, a theme that looked great in a demo looks totally busted on my blog and I immediately uninstall it. Perhaps the bustedness could be fixed with configuration, but I don’t want to do the work. With a paid theme, you can’t try before you buy. So if it’s busted in some way, you won’t know until after you’ve paid. If you find a deal breaker, you’ll have to try to get your money back from the developer.
- They often require more configuration. For theme developers to justify the price, they often add in tons of bells and whistles. Sounds cool right? Actually, it is often confusing to figure out how they all work and it means more work for you if the defaults aren’t what you want. If you like something highly configurable via checkboxes and menus, go for it. But if you want something that works out of the box, free themes are a better bet.
- They’re bloated. All those bells and whistles mean more code and more database queries. Depending on how the theme works with your caching solution, this can slow down your site. If you want to keep your site code lean and mean, free themes are where it’s at.
- There are so many good free themes. There are thousands of themes available and many pages that rank them. Some of them use standard frameworks like Bootstrap or Skeleton for responsive design. With a little digging, you can find many beautiful and functional free WordPress themes to choose from.
- You can customize a free theme with features built-in to WordPress. You don’t need the bells and whistles of a paid theme to add your own branding and personal touches to your WordPress site. Most free themes have built-in features that allow you to customize. Set a logo, header, and background image using the built-in configuration tools. With the ‘Edit CSS’ feature that comes with some free themes, you can accomplish a lot of customization with just a few lines of css.
Incidentally, this site runs Codium Extend which is simple, responsive, and free. I customized it by adding a background from Subtle Patterns and tweaked the css to change some margins and background colors.
Update: I’m now running WP Foundation (also simple, responsive, and free) with minimal customizations.
Getting a demo video for your startup’s product made by a pro can cost several thousand dollars per minute — out of the budget of your typical startup. But making something really good yourself is much easier than you think. I made my own video myself following the Grumo video course and Justin McLeod’s method of iPad drawing and Keynote animating. (Here’s a blog post from Grumo on how I made my video.)
Here are the resources that you need:
- Grumo course. ($150)
- Basic writing software. I used Google Docs.
- A tablet with drawing software. I used InkPad. ($5)
- A good microphone. Try to borrow one or use the iPhone and a blanked method.
- Screenflow. ($99)
- Audacity. (Free)
- Pond5. ($25)
The basic steps are:
- Write a script. A good script has a story that illustrates the problem, what’s wrong with the current solution (this isn’t talked about explicitly in the Grumo course, but it’s very powerful to put things in terms of the status quo), why your product is a better solution, and includes some fun and cute elements that keep the viewer engaged. After you take the Grumo course, this should come naturally. I downloaded some of the example scripts for Grumo videos and analyzed them according to the Grumo method. Once I did that, spitting out a script was easy. Your script will include not only what the voiceover will say, but an overview of the visuals that tell the story (try to re-use as many assets as you can).
- Draw. This part is fun, but it was also the most time consuming for me. (I chose to skip the storyboard step and just dive into drawing the assets for the animation.) If you think you can’t draw, take a little time to familiarize yourself with InkPad. Read the instructions (they are short). Then start by just drawing some circles and basic shapes and fool around with the handles. On a tablet, you can take almost any crappy shape and adjust it to look good once you get the hang of it. Also, make heavy use of bold outlines, bright colors, and shadows to make it look like a cartoon. Don’t forget that you can import an image, trace it using layers, and then delete the image in the background. This is how I drew the map of the United States. Another tip: don’t neglect the background. Spend a minute creating a gradient that goes from white or very light gray in the center to slightly darker gray on the edges. It will really make the characters and props in your animation stand out.
- Animate. This was the next most time consuming step for me. Keynote has a pretty limited set of animations and moving different objects in sync with one another can be time consuming. I made heavy use of the plain old “move” animation, as well as “scale”, and the “pop” object build in. Don’t forget to use transitions in between the slides. “Object push” and “Magic Move” are easy ways to keep things moving on the screen. When you’re done, convert the Keynote to a video using Screenflow.
- Record the Voiceover. If you don’t think you make a good voice actor, find someone with a good voice and ask him or her. In my case, I asked someone I know and just sent him the script and he sent back the audio file. I don’t know what he recorded it with but I’m told a good microphone makes a huge difference. There’s also a tutorial from Grumo on how to record your audio with a blanket. If you have any noise, you can remove it automatically using Audacity (which is free).
- Find music and sound effects. This part is also fun. I used Pond5 for both the music and the sound effects. It’s tempting to neglect the sound effects, but I think they go a long way towards making the video look polished. I just used a typing sound, a mouse click, a whoosh, a pop, and a few others. I used many of them multiple times. It took about 15 minutes to find them all and just layer on that third track.
- Putting it all together. You can also do this in Screenflow and it’s pretty self explanatory. Once you’ve created your video file, you’ll layer on three audio tracks: voice, music, and effects. Do the voice first. You can clip audio files in Screenflow and drag them around to line them up with what’s happening on the video track. Once that’s in place, drag and drop your audio file in and adjust the level. Finally, drag and drop your sound effects in, line them up with the animation, and adjust the levels. This step is surprisingly easy and satisfying.
And that’s it! In total, I spent under $300. People ask me which agency made my video and they are shocked when I tell them I drew it on an iPad with my finger and animated it with Keynote. You’ll be surprised at how good of a video you can create with this method.
If you’re an alum of a particular top-tier, non Ivy college that shall remain nameless (it rhymes with Bons Mopkins), you may be accustomed to getting a weekly phone call from a very pushy undergrad asking for money. Since you graduated with a degree from this excellent institution, you must have a bunch of money that you just don’t know what to do with, right? ROFL!
I have this problem, and I tried saving the phone number in my contacts and setting the ringtone to silent. Then they called from a slightly different number, so I added that to the contact record. When they called from a third number, I realized I needed a better solution. I used an app called Tasker that lets you automate things on your Android. It’s a little tricky to figure out, and there are a lot of steps involved. So here’s step by step instructions for blocking an entire exchange on an Android phone:
- First, you’ll need to install the Tasker app. It’s not free, but it’s worth it. (You can do a lot of other things with it.)
- Once that is installed, open the app and press the ‘+’ at the bottom to create what they call, in the Tasker lingo, a “profile”. Name it whatever you want and tap the check mark.
- You’ll see a menu that says “First Context”. Tap “State”.
- At the menu that says “Select State Category”, choose “Phone”.
- The next screen says “Select Phone Action”. Choose “Incoming Call”.
- Here’s where the magic happens. Where it says “Caller” put in the first six digits of the phone number (the area code and the exchange) followed by an asterisk. So if you’re getting calls from numbers like 410-555-1234 and 410-555-1235 put in “410555*”. Tap the green check mark.
- The next screen will say “Task Selection”. Choose “New Task”, name it whatever you want, and tap the green check mark.
- Then you’ll see a screen that says “Task Edit / [your task name]“. Press the ‘+’.
- On the screen that says “Select Action Category”, choose “Phone”.
- On the screen that says “Select Phone Action”, choose “End Call”. This will reject all calls from the exchange.
- On the screen that says “End Call”, press the green check mark.
- Finally, on the screen that says “Task Edit / [your task name]“, press the green check mark.
You’re done! The next time you get a call from this exchange, your phone will ring only very briefly before the call is rejected and you’ll get a “missed call” notification.
Enjoy pushy-undergrad-fundraiser-free bliss!
Online social sharing tools have been around since del.icio.us launched in 2003. Now, after almost a decade of social bookmarking and sharing online, it’s clear that link sharing tools come and go. I don’t know about you, but when Yahoo! threatened to shut down delicious, I exported my bookmarks and never looked back. And how many of your friends are still using Digg? Meanwhile, Google+ just joined the party this year and Pinterest is starting to hockey stick.
So if you haven’t updated the sharing tools on your blog for a few years, it may be time to ditch some of the old buttons in favor of some new ones. Take a look at your Google Analytics and consider which sites drive traffic and which do not. If a sharing site hasn’t driven any traffic in the last six months, ditch the button. You don’t need the clutter. Plus, if it’s a widget that loads within an iframe, it can really slow down the loading time of your page.
Next consider which new buttons you should add. Do your analytics show referrals from link sharing sites that you are missing? Add them. Then consider the newcomers like Google+ and Pinterest. It’s still too soon to tell whether Google+ will really take off, but considering how it can boost your results in Google search, you should add the +1 button for now. If you have a blog related to fashion, home decor, crafts, art, or food, the Pin It button is essential. I’ve found that at Feastie, Pinterest drives more traffic than any other social sharing tool besides Facebook. I attribute this to the close match between the Pinterest demographic and the Feastie audience as well as the relatively high signal to noise ratio compared to other sites like twitter. Finally, consider adding the Linked In share button. The links people share on Linked In are mostly work related. That’s why I included the Linked In share button here but not at Feastie.
What social sharing widgets have you included on your blog?