Windows dev tools I actually use

Posted by john in Technology

Tracey wrote me and reminded me to send along the information regarding how I can right-click on a folder and get a command prompt with that folder as the default directory.

It is a Windows XP “power toy” which you can obtain here:

http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx

You can download all of the power toys, or get them separately. The one that does that bit is “Open Command Window Here” in the right sidebar.

There is a similar tool for the Mac (open source), though the last time I checked it wasn’t as easy as the Windows one — perhaps by now Apple has integrated such functionality into the Finder. No idea about Linux; maybe it’s in Gnome by now. Enlighten me. Also: If you have Cygwin (a bit on this below) you can also do “Bash prompt here” — see http://www.mindview.net/Etc/Cygwin/BashHere.

Other tools I genuinely use:

For Unix emulation: Cygwin. This is a no-brainer. I put the Cygwin bin/ directory into my Windows PATH so that I can use commands like “tail -f”. It also comes with ssh. Intrepid souls can also set up an ssh server (sshd) on their Windows machine. I can’t provide help for your install of this, but I find it very useful (just for example, there have been times when I’ve needed to commit files into source control from my office machine; I’ve ssh’d in from home, done the commit, and have then sync’d from home; not sure how I would do that otherwise). When I need X-Windows, I use the version with Cygwin (it works fine, but you have to understand X-Windows).

Also, regarding ssh: When I’m scripting ssh, I use Cygwin’s ssh. However, for routine command shell tasks, I use putty. A nice trick with putty is to install sshd on your machine, and then ssh to your own machine (127.0.0.1) to get a command shell. They you get the superior clipboard control provided by putty, even with a DOS box. I also use their other tools, such as Pageant (quite heavily), which provides for ssh-agent handling. If you’re a heavy TortoiseSVN user and have been using ssh for repository access, note that TortoiseSVN has its own version of putty’s plink, which will not bring up an empty DOS window when you sync. (If you know what I’m talking about, you are very annoyed by this). There is documentation in TortoiseSVN for using their tweaked version of plink.

VNC: TightVNC. For viewing VNC, I use RealVNC. (VNC is for remote control like Citrix. TightVNC can run over ssh. We use it in the office for usability testing [so we can watch people being tested.].)

For getting diffs between file versions: I use WinMerge. If you put a shortcut to the WinMerge .exe in your “Send To” directory, you can right click on two files and then send them both to WinMerge which will show you the differences.

For source control, I use subversion and TortoiseSVN. I have a system at home running Linux that runs the subversion server, and I pretty much save everything of value there.

Emacs: I use GNU Emacs. Others prefer XEmacs.

Vi: When I need the vi editor on Windows, I install vim via Cygwin.

Encryption: I keep all system passwords in encrypted files using SDM. I check the encrypted password files into source control. I don’t write down the passwords to the SDM files.

Database access: For MySQL, I use the MySQL Query Browser, which is actually pretty terrible and ridden with subtle inconveniences. I occasionally use Toad. When I’m doing heavy Oracle work, I tend to use Benthic’s Golden and PLEdit, but you have to pay for it. Golden is “just right” as a tool for writing raw SQL. If someone could do a perfect clone of Golden for MySQL, I would probably pay $75 for it.

For routine FTP, Filezilla. For SCP, WinSCP (or scp under Cygwin when it needs to be scripted).

Screenshots: I have started using Jing from Techsmith, though it is a memory hog and still buggy (it’s beta software). I created a couple of screencasts with Jing. For more complicated screencasts, I have a paid license for BB Flashback, which I really like quite a bit. I use ImageMagick to hack images.

Let’s see, what else? Music players: I use WinAMP, MusicMatch (I used to subscribe to their streaming service), iTunes, etc. When I need to remove DRM from an iTunes download . . . Oops, I would never do that!

PDFs: I can’t live without PDFCreator, which gives you a printer driver so you can “print to PDF.”

Firefox add-ons: Adblock Plus (crucial: I don’t really care about looking at ads, but I despise waiting around for a page because it is stuffed with Flash: Adblock Plus turns that off and really speeds things up); ColorZilla; CSSViewer; DOM Inspector; Live HTTP Headers; Operator; PasswordMaker (creates a hash based on a secret you know and a domain for which you want a password: Means that you only have to know one password); Web Developer; Broadband Meter and Diagnostics.

Web-based tools: GMail, Google Reader (I used to use Bloglines), Google Docs; del.icio.us (and my links are here); TourFilter; LinkedIn.

Review of Pro Active Record

Posted by john in Ruby on Rails, Announcements

I wrote a review for my blog of the new book Pro Active Record; the review is here: http://7fff.com/2007/11/09/pro-active-record-book-review/

I can recommend it to students who have done lots of relational and/or another ORM framework, but it might be tough-going for beginners, and, as I say in the review, it has gaps.

Meanwhile, the other day I skimmed Beginning Rails by Hardy, et al., also on APress, and it’s surprisingly good, at least in the bits I focused on. I haven’t looked closely at the sections on ActiveRecord, but if anyone is reading it, I’d be curious to know what you think.

If you are reading other books on Ruby, Rails, etc., . . .

Posted by john in Ruby on Rails, Ruby, Announcements

If you’re reading other books, articles, blogs, on Ruby, Rails, etc., by all means post a review or comment in our books section. If you find a resource that is truly outstanding, I’ll get it and add my own review to our annotated list of resources.

Also, I notice that I hadn’t actually published that “John’s To-dos” page. It’s there now.

John’s Todos

Posted by john in Uncategorized

Oops. Reproduced the “todo” list in a post: Go over here if you want to make comments: resources/johns-to-dos/

Your one-liners?

Posted by john in Ruby

Now that we are past the one-liner era in our progress along the Ruby Way, I’d like to invite you to propose some one liners of your own.

Just to kick it off:

Given a dictionary d with bad words:

d = [ ‘Yankees’, ‘Rockies’, ‘Indians’ ]

write a one-liner that replaces any usage of such bad words in a sentence with the first letter of the bad word followed by stars, one star for each of the remaining letters.

Input:

“As much as I can’t stand the Yankees and relish beating them, I’m glad we faced the Indians.”

Output:

“As much as I can’t stand the Y****** and relish beating them, I’m glad we faced the I******.”

P.S. I haven’t implemented this one. Seems like a one-liner . . .

Overview of Assignments 4, 5, and 6 posted

Posted by john in Assignments, Announcements

I’ve added a page with an overview of Assignments 4, 5, and 6 (also in the sidebar under “Assignments”). Comments most welcome on the general project / product; questions for Assignment 4 and ActiveRecord specifically will be more appropriate for the page on Assignment 4, which will be appearing shortly…

Perlisms in Ruby

Posted by john in Ruby

Here’s a link for some Perlisms in Ruby. There are of course many more that those the author lists here:

http://blog.nicksieger.com/articles/2007/10/06/obscure-and-ugly-perlisms-in-ruby

The whole discussion is very interesting. I think the author is being awfully harsh on the defined? method, because it is easy to imagine scenarios where you’re having a little trouble determining if Ruby is understanding something as a method or constant.

Widened theme for course site

Posted by john in Announcements

While working on the page that will display Ruby style suggestions, I discovered that the 800 width was really not too hot for code snippets.

So I have hacked the theme to assume that the screen is 1024 pixels wide or larger. Even if you are in that 14% (probably less now) of users with an 800-pixel wide screen, the main page area still fits within that width.

There are still a couple of widths that are funky (e.g., for comments) and I had to lose (for now) the banner image and the background behind the sidebar, but those will come back in some form.

Amazon referral earnings

Posted by john in Announcements

As you will recall, I set up this site so that books ordered on Amazon through it (and I also put some links on my personal blog) would generate referral earnings.

Well, we’ve now earned $144.53, which we will be spent on ourselves [i.e., people in the course] toward the end of the semester . . . for food and drink at some kind of post-meeting event.

Key topics for ActiveRecord

Posted by john in Ruby on Rails

I have to pick and choose a bit for ActiveRecord topics; we actually have two weeks for this, and I got rdoc and Test::Unit out of the way, so, really, you should get your key knowledge earlier (which will help for the assignment). The first lecture will begin with the briefest relational/SQL refresher.

Basically I am trying to identify the core aspects of the relational model so that I can show how each one is dealt with in ActiveRecord.

Below are the topics that I think are most important.

Requests for you:

  • If you feel like you need more than the briefest relational/SQL refresher, speak up. I can provide, for example, a PDF of some pages to help you re-activate that knowledge.
  • If there are other things (besides what’s below) you want to hear about based on your experience with relational databases and SQL, make comments.

ActiveRecord Menu

  1. Migrations
  2. Creating a class that leverages ActiveRecord
  3. Key datatypes
  4. Basic Create / Read / Update / Delete operations
  5. Validations
  6. How ActiveRecord manages 1:Many and Many:Many relationships; and how ActiveRecord manages data related to the Many:Many relationship (e.g., join tables)
  7. How ActiveRecord models relational “group by”
  8. How ActiveRecord manages aggregate functions
  9. How ActiveRecord manages what would be suitable for left join
  10. How ActiveRecord provides single-table inheritance

—–

Things that I will mention but will not detail:

  • ActiveRecord and transactions
  • Polymorphic associations
WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Login