I can haz opinion?

nkpart at gmail dot com
Apr 08
Permalink

I think when you’re deciding what language to use for “real” work, you want to choose as follows:

1. Only consider popular languages. Veeeeeery important. Critical, even.

2. Pick the right language category for your problem. For systems up to a certain size, you probably want a good dynamic/scripting language, and beyond that point, use C++, Java or maybe C#.

3. Once you’ve decided the category, always use the highest-level language in the list. Use the one that’s the most modern, expressive, and the least prone to errors when placed in the hands of busy/stressed programmers. If there’s a tie, pick the one that’s easiest to learn.

Mar 26
Permalink
Our Scala plugin is developed independently, and most likely it won’t be ready for bundling into IntelliJ IDEA by the time version 8 ships.
Mar 11
Permalink
Mar 05
Permalink

Getting a list of build targets from an ant build

$ ant -projecthelp | grep -e '^\ .*'

Mar 03
Permalink
I’ve been modifying a Scala bundle for TextMate. At the moment it’s mainly style changes relating to comments/brace position in the snippets, however I did add some prettiness to the build output (⌘B).
You can get it up on github. 

I’ve been modifying a Scala bundle for TextMate. At the moment it’s mainly style changes relating to comments/brace position in the snippets, however I did add some prettiness to the build output (⌘B).

You can get it up on github

Mar 02
Permalink
Autosaving with Textmate 
Enabling the check box at the bottom of the image will provide basic auto-save functionality. 
If you use ⌘R/B to build or run anything, it’ll have saved the current window before the command runs - so you can be confident you’ll never need to hit ⌘S again. :) 

Autosaving with Textmate 

Enabling the check box at the bottom of the image will provide basic auto-save functionality. 

If you use ⌘R/B to build or run anything, it’ll have saved the current window before the command runs - so you can be confident you’ll never need to hit ⌘S again. :) 

Feb 29
Permalink

Finding when a path was deleted from SVN

$ ruby ../svn_find_deletion.rb
Usage: ruby ../svn_find_deletion.rb DELETED_FILE_PATH
Find the revision when a certain path was deleted.

$  ruby ../svn_find_deletion.rb a_file
/stuff/a_file deleted in revision 6
To recover it: svn copy -r5 file:///home/dev/repos/stuff/a_file a_file

 http://enkp.bingodisk.com/public/svn_find_deletion.rb

Feb 28
Permalink

More SSH goodness - piping data

$ echo hello | ssh remote.server "cat > file"

$ ssh remote.server "cat file"

hello

Cool, non? Our practical use for this was using 7zip to compress a large data file (several gigs of csv basically) locally and have it be streamed up to a server on EC2, rather than compressing the entire file then scp’ing the result up.

$ 7z a dummy -so -tgzip big_huge_data.csv | ssh remote.server "cat > big_huge_data.csv.7z"

The only problem is that you *must* specify gzip compression (or at least not use 7zips default compression algorithm). 

Permalink
Feb 27
Permalink

Using SSH to access internal subversion repositories

The scenario: there are services (such as subversion) at your office/university that you can access from its internal network, but you can’t access remotely. But you do have external SSH access to an internal machine.

If you were internal, you might check out a project like this:

$ svn co http://internal.svn.host/my_project/trunk  

Using ssh, it’s possible to tunnel connections, to ports on your local machine, through to servers on the other end of your ssh connection. For example: 

$ ssh -L 1234:internal.svn.host:80 external.ssh.server 

This will route connections to port 1234 on the local machine, to port 80 on ‘internal.svn.host’ as seen by ‘external.ssh.server’. As long as that ssh connection is maintained, you can check out and work on a project:

$ svn co http://localhost:1234/my_project/trunk my_project