Some of my friends have heard me say, "Javascript is the cockroach of all programming languages: when all other languages are defunct, Javascript will still be around."
I just googled it and it turns out I must have heard it from someone else (so much for my sense of originality). Here's the weird part: this guy tweeted it almost 2 years ago, and I can't tell that he's connected to me in any way at all. Hmmm...
In any case, I am reminded of this after watching a security video of Douglas Crockford talking at the 2012 BayJax event at Yahoo, where he has one slide talking about what language will still be around when all other languages are dead (he wasn't TALKING about Javascript at the time, but I was thinking it right before the slide came up and confirmed exactly what I was thinking).
One of these days, I'm going to write something useful in node.js. That and be involved in a flash mob. It's just a matter of time.
Friday, June 22, 2012
Wednesday, June 20, 2012
SourceTree is TortoiseHG on MacOSX
There's some irony in the project for TortoiseHG on MacOSX. The code is up on Atlassian's BitBucket.
Yet Atlassian has a TortoiseHG on Mac killer product called SourceTree (I've connected SourceTree to both BitBucket and GitHub, and it also supports Kiln, a hosted mercurial repository from FogCreek, the makers of Trello and FogBugz).
If you love TortoiseHG, and you are at home in Mac or Linux, maybe SourceTree won't be "just right" for you.
But if you're a Windows user in a mac (like me), don't even waste your time. You want a product that installs in a snap and just works. Your love affair with TortoiseHG has to take a back seat to your tryst with developing on MacOSX.
SourceTree is free for a limited time, whatever that means.
Yet Atlassian has a TortoiseHG on Mac killer product called SourceTree (I've connected SourceTree to both BitBucket and GitHub, and it also supports Kiln, a hosted mercurial repository from FogCreek, the makers of Trello and FogBugz).
If you love TortoiseHG, and you are at home in Mac or Linux, maybe SourceTree won't be "just right" for you.
But if you're a Windows user in a mac (like me), don't even waste your time. You want a product that installs in a snap and just works. Your love affair with TortoiseHG has to take a back seat to your tryst with developing on MacOSX.
SourceTree is free for a limited time, whatever that means.
Thursday, March 29, 2012
Get your unversioned project into BitBucket and Mercurial
I love unversioned projects simply because of the pure potential they offer. But I hate working in them. I find I have to put projects into some kind of version control on my local machine just to give myself that sense that I'm being at least a little smart to balance being somewhat foolish. (I say these things to prove to myself that I am indeed human, and probably originated here on this planet despite what my friends say.)
Luckily, my partner in crime is easy to influence, and he agreed to use Mercurial (if I recall, he suggested it). We spent some time admiring Joel Spolsky's tutorial including his use of Balsamiq for the illustrations. We chose BitBucket it for two reasons: Mercurial support and free private repositories.
So, below is a log of the steps we used this morning to put our unversioned project on BitBucket.
Luckily, my partner in crime is easy to influence, and he agreed to use Mercurial (if I recall, he suggested it). We spent some time admiring Joel Spolsky's tutorial including his use of Balsamiq for the illustrations. We chose BitBucket it for two reasons: Mercurial support and free private repositories.
So, below is a log of the steps we used this morning to put our unversioned project on BitBucket.
- Create a BitBucket account
- Create a repository
- Give it a name
- It automatically defaults to "private" which is interesting
- Select "Mercurial"
- Choose the language (e.g., C#, PHP, etc)
- Create the repo!
- When you're done, BitBucket very nicely offers you the command to clone the repository. Copy it!
- e.g. hg clone https://myname@bitbucket.org/myname/myreponame
- Back on your local computer, create a temporary directory somewhere with nothing in it (like C:\junk) and navigate to it in your command window.
- Paste that nice clone command that BitBucket provided for you and execute it.
- When it's done, you'll see a new folder with your project name, and inside that folder is a new folder called ".hg"
- Copy the ".hg" folder to the root directory of your unversioned code.
- This is our "cheat" and we will never do such a thing again!
- Go back to the command window an navigate to your project folder (where you just put the ".hg" folder)
- hg status to take a look at what will get added.
- If you see any files you want to exclude, note the file extensions so you can create a pattern (e.g., *.bak)
- hg add -X *.bak (or whatever pattern you want to exclude).
- OR, you can just execute hg add if you're ready to just add everything.
- OR you can execute hg add -I *.php (or whatever pattern you want to include)
- hg commit -m "Initial commit" and wait for the command prompt. This could take a few minutes depending on the size of your project.
- hg log to make sure you see the changeset you're about to push.
- hg push to put the code on the repository (you'll have to supply your password).
- Browse to your repository on BitBucket to see if your code made it up there.
- Now clean up:
- Delete the temporary directory you created
- Immediately forget that anyone told you to copy your ".hg" folder anywhere
- Go into BitBucket and invite your collaborators to the repository (because that's why you put your code up there, right?)
You may wonder why we bothered with the temporary folder and copying the .hg folder. Really, it was pure laziness (which I consider a virtue in a developer):
- hg clone complains if the target directory exists and has content in it, and I just didn't want to be bothered with it
- I didn't want to be moving the source code around for the simple task of getting it into the repository in the first place
- moving the .hg folder has consequences, but for what we were doing here, it was harmless.
One of the things I noticed right away when exploring BitBucket is that the top trending project CodeIgniter Reactor had moved to GitHub (quite a while ago). I wonder where we will be a year from now.
Well, on to the next thing!
Wednesday, March 28, 2012
Subversion 1.7 with Bazaar might reduce frustration
After working with Mercurial for almost 2 years, I came to have a real aversion to Subversion (SVN). Then, I found this very old blog post about using Bazaar to get the benefits of a DVCS (distributed version control system) while still using SVN for the central repository.
I haven't tried the method presented in the blog post (because I have managed to get myself away from all projects with SVN), but should I find myself in that situation again, I will have a strategy to reduce wasting more cycles on my SVN frustrations.
Especially now that SVN doesn't require those stupid .svn folders sprinkled all over your code.
Now, I have to decide, should I use LaunchPad with Bazaar for my next project (probably not)? Or stick with GitHub (probably)? Possibly explore BitBucket (owned by Atlassian and integrates with Jira)?
I haven't tried the method presented in the blog post (because I have managed to get myself away from all projects with SVN), but should I find myself in that situation again, I will have a strategy to reduce wasting more cycles on my SVN frustrations.
Especially now that SVN doesn't require those stupid .svn folders sprinkled all over your code.
Now, I have to decide, should I use LaunchPad with Bazaar for my next project (probably not)? Or stick with GitHub (probably)? Possibly explore BitBucket (owned by Atlassian and integrates with Jira)?
Mac OSX Lion scrolling for trackpad and mouse
The gist: You can either have it scroll the new way, or the old way.
I love the new way (on the trackpad). But it truly sucks on my scrolling wireless mouse.
At first, I was excited when I opened my System Preferences and saw a checkbox in both the Trackpad as well as the Mouse items, but it turns out this sets the same setting for the entire system. You can't have it both ways.
My decision: keep it the way it is and just use the trackpad.
My preference: to be able to have it be intuitive for both the trackpad and the scrolling mouse, and by intuitive, I mean not have to switch behavior when I switch from the Windows machine to the Macbook.
I'm probably in the minority in that I actually don't mind the trackpad on my Macbook. For other systems, I will use my lovely Microsoft Wireless Mobile Mouse 3500 (which I love). I see no point in wasting any cycles being angry about the way the mouse behaves on my Macbook.
On to more interesting things.
I love the new way (on the trackpad). But it truly sucks on my scrolling wireless mouse.
At first, I was excited when I opened my System Preferences and saw a checkbox in both the Trackpad as well as the Mouse items, but it turns out this sets the same setting for the entire system. You can't have it both ways.
My decision: keep it the way it is and just use the trackpad.
My preference: to be able to have it be intuitive for both the trackpad and the scrolling mouse, and by intuitive, I mean not have to switch behavior when I switch from the Windows machine to the Macbook.
I'm probably in the minority in that I actually don't mind the trackpad on my Macbook. For other systems, I will use my lovely Microsoft Wireless Mobile Mouse 3500 (which I love). I see no point in wasting any cycles being angry about the way the mouse behaves on my Macbook.
On to more interesting things.
Subscribe to:
Posts (Atom)