Website Development Podcasts

Headphones and Podcasting

I’m always looking for new things to inspire me in my work. Running my own company and not having anyone on staff to bounce ideas off of can seem tricky at times. Inspiration comes in may forms, and one of them for me is podcasting. I like the idea of listening to conversations even if I’m not able to participate.

Here are my fave WordPress and Web Developer podcasts:

ShopTalk Podcast – A live show about front end web design. By Chris Coyer and Dave Rupert

Your Website Engineer – Your Resource for WordPress with Dustin Hartzler


WP Late NIght is a roundtable discussion podcast about WordPress and the community surrounding it. Hosts Brad Williams, Dre Armeda, and Ryan Imel.

Aftertaste is the WPCandy show that starts when our other shows stop. Listen to casual WordPress talk with show co-hosts and interviewees.


CSS-Tricks Screencasts By Chris Coyier – CSS-Tricks Screencasts is focused on showing you tips, tricks, techniques about web design.

In Beta By 5by5 – In Beta is a talk show about the ever-changing state of web-based and open source software. Hosted by Gina Trapani & Kevin Purdy.



I’ll post my other fave podcasts at a later date. I’d love to add more to this list, if you know of any leave them in the comments below and I’ll share them here. What do you listen to?

Using Git with Dandelion for staging and production deployments.

Dandelion

I’ve been recently setting up my local development environment using a combination of a few pieces of software and web services to get this going. In upcoming blog posts I’ll be going over each of these in detail, for now here is my list:

  • DesktopServer
    Local development server that uses XAMPP and some magic. I’ve heard it described as “awesome” and “awesome in a bottle”, from the same person in the same sentence.
  • git
    The man page describes git as “the stupid content tracker”
  • Tower
    git for people that like a graphical user interface
  • github.com
    the remote repository where git will push my code to
  • Dandelion
    The secret sauce to pushing my ready for staging or ready for production code to the server(s)

Dandelion

So the part I’m going to focus on today is Dandelion which is a script that Scott Nelson on github created and describes as the “Incremental Git repository deployment”. What Dandelion does is something I don’t want to have to manage myself… anymore. You see I use to keep track of what files I changed and then only “deploy” the files I thought I changed up to production or staging if I had a staging server in place. What Dandelion does is it leverages git’s recent commit status to deploy only the changed files up to the webserver.. It’s pretty awesome.

The code is written in Ruby and is pretty simple to install and get running:

  • I followed these steps on how to get Ruby and RubyGems installed on my MacBook Pro running Mountain Lion. It requires that you install Xcode and the Command Line Tools to get it going. http://www.zlu.me/blog/2012/02/21/install-native-ruby-gem-in-mountain-lion-preview/
  • Once Ruby and RubyGems are installed you need to load up Terminal and run the following:
    $ sudo gem install dandelion
  • You’ll also need to run the following as well:
    $ sudo gem install net-sftp
  • From there we can test that dandelion is working:
    $ dandelion
    
    Invalid command: 
    Usage: dandelion [options] []
        -v, --version                    Display the current version
        -h, --help                       Display this screen
            --repo=[REPO]                Use the given repository
            --config=[CONFIG]            Use the given configuration file
    
    Available commands:
        status    deploy
    
  • Now that we have Dandelion installed we just need to configure our production server so we can deploy our local get repo and it’s committed changes to production.
  • Create a new file in the root of your website directory. Mine live here: /Users/jason/Documents/Websites/ so I go into:  /Users/jason/Documents/Websites/www.jasontucker.dev  which is the directory that I use with DesktopServer for my jasontucker.us site and create a new text file in there called dandelion.yml and input the following:
    # Required
    scheme: sftp
    host: jasontucker.us
    username: myusernamehere
    password: mysuperlongCraz7Pazsw0rDh3re!2938474
    
    # Optional
    path: jasontucker.us
    exclude:
    - .gitignore
    - dandelion.yml
  • Instead of repeating what the github readme says I’ll referrer you to here:  https://github.com/scttnlsn/dandelion#readme
  • Optionally you can create additional file for your staging server if you like. If you do name it staging.yml and this one producton.yml and I can show you how to deploy to each by adding in a switch.

Tricking Dandelion into thinking we’ve already deployed (time saver)

Lets assume that recently downloaded a copy of your whole website to your local and haven’t done any changes at all yet. One thing that fustrated me when I used dandelion for the first time was that it wanted me to deploy EVERYTHING since it hasn’t taken note as to what hasn’t been deployed yet. What it does is it uses the SHA hash from git to figure out what it has deployed to the production site. So to get around pushing all those changes to the server I cheated and got the current SHA hash and tricked dandelion into thinking that has already been deployed for the first time. Here is how:

Execute Dandelion from the terminal while your present working directory is your website root folder, mine being: /Users/jason/Documents/Websites/www.jasontucker.dev

$ dandelion status
Connecting to sftp://myusernamehere@jasontucker.us/jasontucker.us
Remote revision: ---
Local HEAD revision: 7e8116749a78890e599561b0d674311a512f839a

Notice how it’s reporting there is no remote revision, let’s trick it into thinking the current version is there (which it is for the most part). Create a new file on the remote server called .revision and put in that string of text from the output of ‘dandelion status’ we ran earlier.

7e8116749a78890e599561b0d674311a512f839a

then upload it to the webroot of the remote webserver, in my case it was ‘jasontucker.us’  Now run dandelion status and you should see Remote revision and Local HEAD the same SHA hash. Now you can run dandelion deploy and it will deploy all of your changed files in that commit. We fancy now huh?

How to deploy to Production and Staging.

Dandelion has a great switch called “config” that allows you to specify which .yml  (in our case production.yml and staging.yml) that you want to deploy, it’s syntax is simple, just change the name of the yml you want to deploy to.

$ dandelion –config=staging.yml deploy

$ dandelion –config=production.yml deploy

Let me know how things go in the comments below.

OC WordPress General Meeting 2/28/12

Last night I attended my OC WordPress meeting at Zeek Interactive in Huntington Beach. I hitched a ride with my friend Cindy Ronzoni, and talked it up doing our drive out from Whittier. Cindy is a treat to talk to, she’s a PR person that doesn’t mind me getting a bit geeky from time to time. She’s a curling fan, love TV and Movies and has a knack for talking to people. She knows her craft well which is something I admire and has worked with the most interesting clients. If you ever need a PR person give Cindy a ring, and tell her I set ya. </cheerleading>

Once we arrived at OCWP I had to setup my live stream setup. Last night I was debating on trying to get Camtwist setup but I ran out of time so I wasn’t about to record locally AND stream out to uStream. The video below is the downloaded .flv file that uStream.tv provides me. It’s a same that it looks kinda crappy due to the awful compression that occurs but I hope next meeting I can get Camtwist or some other solution to share the camera between apps. I’d imagine my i7 processor on my MacBook Pro with its multi cores can handle doing those 2 tasks at once. If you have any suggestions about this setup I’m crafting I’d love to hear them.

Current components:

  • MacBook Pro
  • Logitech HD Pro Webcam C910
    I use this to record the video on a tripod, lately I’ve been using the onboard mic with much success.
  • Soundmatters foxLv2 Bluetooth Loudspeaker System (Black)
    I’ve tried using this paired to my macbook pro as a sound input. It works but picks up the echo quite a bit from the vaulted ceilings in the room we meetup in. Aside from using this as a bluetooth mic it’s AWESOME as a speaker, the little guy bumps.
  • uStream.TV
    website in safari using their built in flash object to do the streaming.
  • CamTwist
    free software for doing all sorts of ninja like moves. They say it works with ustream and as a flash

Things I know I’m doing wrong:

  • Not having a paid starter account with uStream is limiting me to only doing SD content. It’s $99 a month for this but I dont see it being all that worth it if I can record the source video locally.
  • Downloading the streamed and recorded video from ustream, and uploading it to youtube. This file is of crap quality video with lackluster audio.
How am I going to fix it?
  • It really all boils down to the fact that I’m not recording locally. I want to end up splitting the output of my video feed to both ustream and a local video recording software.
  • I plan on working on this workflow before the next meeting and see about just using ustream as a streaming service and then taking my locally recorded file and uploading it to youtube in it’s 1080 native state.

OC WordPress Meetup 7/25/2011

20110726-090650.jpg

Last night we had our OC WordPress Meetup at Zeek Interactive in Huntington Beach. I streamed the event live using uStream and then posted the files to YouTube. As like with my previous recordings this one had some faults too… the main one was Auto Focus.

The recording went very well and I’m impressed it looks as good as it does using what I was using. Someday I’ll end up “recording to tape” instead of just grabbing the highly compressed version from uStream the day after. I posted about some of the changes I want to do in a previous post, feel free to go there and check that out.

OC WordPress June Meetup Video Stream

global_12419089

This is a playlist of videos recorded from the OC WordPress Meetup in Huntington Beach California on 6/27/2011.

Links to OCWP related pages:

Here are a few things I’d like to do a bit different next time:

  1. Install CamTwist on the presentation computer to screen grab and and have it stream the screen to uStream as a secondary camera
  2. Use a tripod instead of a shreader and a tupperware container (I didn’t bring mine from home since I left straight from work to the meeting)
  3. Have reliable 4G service or be able to use the bandwidth from the office (we didn’t want to interrupt the remote webinar demo session that was going on, CLEAR Wireless signal was faint 4G in the building)
  4. Have a mic at the podium feeding into my computer
  5. Not end up with 3 or 4 files as an end result from youtube / ustream. The stream kept dieing due to lack of bandwidth.
  6. Optimize the page that we’re streaming from, TweetChat as an embed worked great and kept everyone talking over twitter instead of in 2 separate places (uStream Chat and Twitter)
  7. Use Flash Media Encoder instead of the in browser flash encoder
  8. Use a Mac instead of my work Windows PC
  9. As a fun project I’m working on using iTitle to capture and use the tweets during the meetup as closed captioning on the Youtube videos in this playlist. I captured these tweets in a google spreadsheet that can be used as the source in iTitle but I’m having some problems doing so. If you can figure it out let me know :)  Transcript of OCWP-2011-06-27 - Google Doc
  10. Turn off Twitter app on Facebook so I dont piss off my friends on Facebook with me rambling on and on about “some video stream he’s doing at some geeky meetup.. you know Jason and his geeky stuff”
  11. Grab a beer after at House of Brews (and give better instructions to the gentleman that asked me how to get there)


View Larger Map

Did you benefit from the stream? Do you have any suggestions for my next attempt? Let me know in the comments below please!