Dec 042012
 

An important gotcha of some HTML5 semantic web stuff:

An input of type=”number” attribute on an input and discovered that Safari 5 and IE would re-format the number the way you learned to in grade school if your number is greater than 999 (i.e., adding commas between thousands). Yes, the commas actually get submitted when you submit your form, making your back-end receive those thousand-separated numbers (which is probably not what you want).

<input type=”number”></input>

If that’s not your desired effect, stick to text and use a pattern attribute (along with required) to validate with regexp. Something like this does the trick:

<input type=”text” required= pattern=”[0-9]*”>
Dec 042012
 

What you may miss off-the-bat is that Heroku’s copy of your app is actually a git repository. It’s like github’s repository of your code, but it is used for the special purpose of deploying the app.

When you do a deploy to Heroku, you are pushing only your latest commits to the master branch of the Heroku repository for your app.

Type more .git/config at the command line of one of your apps, you will see a git remote for the heroku repository

[remote “heroku_abc_app”]
  url = git@heroku.com:abc-app.git
  fetch = +refs/heads/*:refs/remotes/heroku/*

In my case, the name of my heroku app is abc-app (made up) but I’ve attached it to a git identifier (just something I type at the command line) called heroku_abc_app

To deploy this app, I would use:

git push heroku_abc_app master:master

This is saying I want to put my local master branch (the first “master”) to the master branch of the remote repository (the second “master” after the colon) to the repository which is identified by heroku_abc_app (defined in .git/config), in my case that repository happens to be at git@heroku.com:abc-app.git

You can also push a different branch to Heroku, like this

git push heroku_abc_app some_branch:master

This is saying you want to push some_branch onto the master branch of your your app. Be careful – if you push a branch and then try to push another branch (or master) onto a non-downstream git timeline, you will get rejected. You can easily fix this with --force at the end of your command.

Although Heroku’s git repository acts just like a real git repository, most of us use github as the authoritative source for our app’s code and the Heroku git setup only for deploying.