Crufty Boxes

Tuesday, May 1, 2007

A Better way to get ssh+svn in eclipse under windows

In order to get ssh+svn running in eclipse, I previously did the following used cygwin with win-ssh-agent. This was dog slow, and kind of annoying.

Today I figured out that eclipse can use a built-in ssh library instead, and this makes things MUCH easier.

preferences -> team -> svn , choose SVN Interface: SVNKit

This automatically can use ssh + svn in windows and saves a lot of headache.

Tuesday, April 24, 2007

Windows Survival Tools

Here are some tools that come in handy when working in the Microsoft Windows environment:

* Pigdin (formerly GAIM) - http://www.pidgin.im/
* Notepad++ - http://notepad-plus.sourceforge.net
* VNC - http://www.realvnc.com/
* VLC - http://www.videolan.org
* CSDiff - http://www.componentsoftware.com
* Foxit Reader - http://www.foxitsoftware.com
* Cygwin - http://cygwin.com/
* Win-ssh-agent - http://www.ganaware.jp/archives/2006/04/winsshaskpass_1.html
* Jedit - http://www.jedit.org/
* 7-zip - http://www.7-zip.org/

Wednesday, March 28, 2007

RadRails Lives!

Thanks to Aptana for picking up RadRails development. The switch has inspired me to run Eclipse with plugins instead of the default RadRails distribution. There are some nice plugins available. Here are the ones I am currently using:

* Aptana - HTML, CSS, and Javascript formatting and autocompletion (http://update.aptana.com/install/)
* Radrails - For Rails support (http://update.aptana.com/update/radrails/3.2/)
* SubClipse - Subversion support (http://subclipse.tigris.org/update_1.2.x)

Of note is that you can use the <ctrl>+<space> key combination to bring up autocompletion scripts along the lines of Textmate.

Thursday, March 8, 2007

Javascript - create arbitrary events

While debugging a JavaScript error that only came up on slower connections, I came across a free proxy that allows you to simulate slower internet connections: sloppy.

This led to the source of the problem -- prototype, scriptaculous, and a large json object were dynamically being brought into the page (by creating a script tag in the head). However, varying load times could cause these three to load in various orders. This called for some way to set up arbitrary events that triggered arbitrary functions.

Here is what I came up with:
wait_around = function(test_function, next_function){
if ( eval(test_function) ) {
eval(next_function);
} else {
setTimeout(function(){travidiaTrafficDriverAdvList.wait_around(test_function,next_function);}, 100);
}
}

This allows you to create arbitrary events.

execute some_function after Prototype is loaded:
wait_around('typeof Prototype != "undefined"', “some_function()”)

execute another_function after someJsonVariable is loaded:
wait_around('typeof someJsonVariable != “undefined”’, “another_function()”)

Wednesday, March 7, 2007

Ruby - Self

The "self" method is omitted from the Ruby API documentation. I was able to dig this explanation from one of my Ruby books:

"self" is a reference to the current object instance.
here is an example:

class Leaf
def print_self
p self
end
def to_s
"I am a leaf"
end
end

l = Leaf.new
l.to_s
=> "I am a leaf"
l.print_self
=> I am a leaf

rhyme nor reason

I am jumping into this blogging thing without much of a plan. I see this mostly of a place to keep personal notes. The aim is:

* To build a searchable repository of thoughts
* To display my thought process to others
* To practice writing