Relevant Ruby and Rails RSS*

Posted by amy in Ruby on Rails, Blogroll

So John asked me to offer up my feeds for general consumption. It’s interesting to see that the feeds John posted about don’t coincide at all with the ones I will tell you about, even though I know we read at least some of the same ones. (For example, he emailed me the day that Ruby Inside flagged my method_missing article. Do I talk about that method_missing articleway too much, or what? I could talk about how I was the star quarterback on my high school football team instead…)

Rails blogs

Most, but not all, of these blogs are run by rails-core contributors

David Black, who wrote Ruby for Rails.
Courtenay’s blog at Caboo.se. See his Sample Rails App, too.
Err the Blog, run by PJ Hyett and Chris Wanstrath.
Rails Envy, run by Gregg Pollack and Jason Seifer
Ezra Zygmuntowicz, of Engine Yard

Rick Olson, aka Technoweenie, doesn’t blog much, but he’s very important in the rails world, so I’m throwing him in here anyway, because you should know who he is and what he does.

Dr Nic
Jamis Buck
Kevin Clark
Amy Hoy at slash7: intersection of rails and design
The thoughtbot people are local, this is their group blog.
Obie Fernandez
Stuart Eccles
Working With Rails
The Rails Way, run by Jamis Buck and Michael Koziarski (koz)
Polishing Ruby, by zenspider, aka Ryan Davis, author of, among other things, the popular zentest.

Nuby on Rails, run by Geoffrey Grosenbach (topfunky), who also runs peepcode. I think PeepCode is probably pretty good, if you like screencasts, which I actually don’t. I don’t like to learn from moving, talking things. ( If you’re looking for free rails screencasts, there’s also Ryan Davis’s railscast site, but again with the disclaimer that I don’t watch screencasts unless I have to (Hi John! LinkWizz, indeed! It did annoy me). The Ruby on Rails podcast is big, but I like listening just about as much as I like watching and listening, so I haven’t yet brought myself to listen even to the women in development podcasts, which you’d think I’d just be so totally all over. On the other hand, Jay Fields (of Thoughtworks, see below) sings that he believes the screencasts are our future, teach them well and let them lead the way, show them all the beauty that they’ve got inside…, so maybe I’ll adapt.)

Andre Lewis does some mapping/rails stuff

Riding Rails is the ‘official’ rubyonrails blog.

DHH’s blog is Loud Thinking. Of course it would be called that.

Ruby (and not much rails) blogs

_why is now blogging at hackety.org, but his defunct blog redhanded is worth perusing too.

O’Reilly’s Ruby blogs

Ruby Fleebie
Ruby Quiz, James Edward Gray II, who also wrote Textmate: Power Editing for the Mac.

The Boston Ruby Group
Ruby News at ruby-lang.org

Groups

I subscribe to the aggregated blogs of the ThoughtWorks people. Thoughtworks leans Ruby and Rails when it can; and in any case is full of smart people writing interesting things about software development, much of which is over my head, but edifying nonetheless.

PragProg people: I subscribe to most of the blogs of the people associated with the Pragmatic Programmers. They’re all good, the number of posts are not too overwhelming, and like the thoughtworks blogs, they frequently cover ruby and rails topics (many of them are ruby-core and/or rails-core; Dave Thomas was and remains instrumental in spreading the gospel of Ruby here in the States and worldwide, and in general anything that comes out of their shop is worth knowing about. I can’t wait till their TDD with Rails workshop comes to Boston). Anyway, here they are: Dave Thomas, Chad Fowler, Jim Weirich, Andy Hunt, and Mike Clark.

DevChix is a group blog for women developers. Not as active as I wish it were, but then again, I don’t contribute, do I, so who am I to complain? Some ruby stuff, some python stuff, some other stuff.

Finally, 3 General Software Development Blogs I read

Coding Horror
Joel on Software
Steve McConnell


If this is all too complicated for you (and believe me, now that I’ve written it all down like this, it seems all too complicated for me too, but in practice I don’t actually read most of these things, I just glance at them and then pick a couple of items to read), then just subscribe to PlanetRubyOnRails and call it a day. But at least look at this list, because I’ve tried to include most of the people whose names and aliases you should get to know as you’re learning ruby and rails. Oh wait, I forgot Zed Shaw, who wrote Mongrel. I am sure I have left out other important people too, but I am really, really tired of this post now.

Oh, and if you’ve got kids, or know people who do (and if you don’t know people who’ve got kids, then whoa, time to expand your circle; it takes a village, you know…), then I highly recommend Parent Hacks.

*Someone please take away my post titling privs; I simply cannot stop abusing alliteration!

Survey says . . .

Posted by john in Logistics, Announcements 2 Comments »

I have posted a summary of the survey here:

http://e168f07.7fff.com/private/docs/

What do we know a lot about? HTML+Web apps, languages, and databases. In the chart, I put Advanced and Intermediate together and calculated their sum. The chart is ordered by that, and then the data is stacked for Advanced, Intermediate, and Beginner. There’s a second chart for what we don’t know about.

Next time I do this survey, I will be adding the following skill categories: JavaScript/Ajax/DHTML, Microsoft SQL Server, Python, J2EE/JavaEE, and XML/XSLT/XPATH.

Microsoft languages seem to be in decline. I was shocked that few students seem to do DB2 anymore (DB2 has its roots in the original SQL research by Codd). Few in the group have no experience with Java. Few have no knowledge of at least one database. Good.

Also, on the positive side, C is hanging in there, which is good because it promotes an understanding of machine organization.

Instant Messaging has significant penetration, with AOL Instant Messenger (AIM) still being the leading IM client, but not by much; Google’s GTalk is hard on its heals. About half of you are using Feed Aggregators for RSS, and Google Reader is in the lead there. I was surprised the so few people use Bloglines.

A significant majority of students have laptops, and Windows still reigns.

A majority of you think the course will be moderately difficulty; the others say it will be hard. On average, you believe that a reasonable number of hours for class preparation is 8 hours, and that the number of hours you will actually have to prepare is about the same. I also broke this average out by estimated difficulty, and the results were what I would expected: Those who think the course will be moderately difficulty think it will be about a 6 hour commitment outside of class, while those who guess it will be hard say 9 to 10 hours.

I will summarize the information about those who have expertise to share after I contact them.

If you have any additional observations, please post them here as comments. You will observe that the data doesn’t seem to add up in some cases: That’s because some people left blanks, and/or I was scoring this while my daughter was running around distracting me.

I may blog at some point about these results at my personal blog: A lot to think about!

screen14.jpg

Top Feeds

Posted by john in Uncategorized 3 Comments »

Four students have asked me what blogs/feeds I read, so I suppose I should answer the question, since there are probably more people who are curious but not inclined to arouse my vanity by asking such a question.

Here are a few notes on how I leverage feed reading personally and professionally.

First off, the beauty part of a feed in my humble opinion is that it comes to your via your reader in a uniform format; so I don’t have to be distracted by the idiosyncratic layout or ads on a random blog. I do appreciate good-looking blogs, but when I’m in my reader, I’m consuming information rapidly. Indeed, I’m frequently sifting it. I really don’t have time to read a lot of info from the web; indeed, I find it rather counter-productive. But for competitive reasons I need to stay on top of certain things. Here’s a list; first work, then personal. The links are to the blogs, you can find the feeds yourself. I’ll save Ruby/Rails and engineering feeds for a later time.

Work

1. I subscribe to all of the blogs of our direct and semi-direct competitors, and all of the blogs of the developers in those companies. I have learned some amazing things this way — I’ve known about layoffs before the employees of our competitors in some cases. I also know a lot about their software and hardware infrastructures, and about their development strategies. So I know who’s doing a great job executing technically, and who’s blowing it, which can be very helpful when we think about partnering or exposing our web services to another company. If you pursue this strategy, note that sometimes the profiles of people on social networking sites expose a feed, so if their employment status changes, you can monitor it.

2. I subscribe to the blogs of pundits in our marketplace. I won’t mention most of them by name because they don’t need to know how interested I am in what they say, but I will say that Cheezhead is great.

3. I subscribe to a key few excellent blogs regarding high tech business in general. The best for me are Xconomy (local news regarding Kendall Square and greater Boston), GigaOM, John Battelle’s blog, and Rough Type, Nicholas Carr’s blog.

4. I subscribe to a lot of alerts regarding system uptime and platform changes. For example, TextDrive has a feed about system reboots, and Facebook has a feed about their frequent and embarrassing disruptions in service. These are worth searching out if you depend on any services.

5. I subscribe to a lot of engineering feeds; more about that in a later post. As it happens, it rarely occurs that I read something technical that has immediate impact on software development in the company; usually consequential changes there build up after a lot of reading and thinking.

6. I subscribe to a few feeds regarding venture capital. A mixed bag. Because everyone wants their money, many of the VC bloggers know they have an audience and will blog about the most inane things.

Personal

Here I’m just going to list some of my all-time favorite feeds/blogs.

10. Rands in Repose. This is one of the greatest project management blogs, ever. The posts are long but fascinating. Here’s a recent one regarding job interviews. The author has compiled his bests posts into a book.

9. Scott Burns is a personal finance columnist for the Dallas Morning News who is oriented around numbers. He’s carried in the Globe. What makes him a little different is that he co-wrote an important book with an economist on how demographic changes affect debt, the value of the dollar, and inflation, the Coming Generation Storm.

8. xkcd. This is the blog with the famous “sudo make me a sandwich” cartoon.

7. A feed from the Washington Post that tells me how my congressman has been voting. This is actually quite tedious because it is loaded with reports on, e.g., “Expressing Sympathy and Support for the People and Governments of the Countries of Central America, the Caribbean, and Mexico Which Have Suffered From Hurricanes Felix, Dean, and Henriette and Whose Complete Economic and Fatality Toll Are Still Unknown” (I don’t mean to diminish this gesture, but it seems to be on a different level from a vote regarding policy). Frankly I should stop subscribing to this because I always know how he’s going to vote; but if you have a rep who needs monitoring, this is useful.

6. Steve Yegge’s blog. Always interesting. Long posts. You have to control for his spin. Like Rands, a matter of recent interest for him is strategizing the job market. Wonder what’s going on with these guys? Anyway, I read him for the tech commentary, not for the biz.

5. Collision Detection, the blog of Clive Thompson, who writes frequently for Wired and the New York Times. His speciality is reporting on unusual or provocative recent scientific findings. He also writes on computer games; his best stuff in this regard are his pieces on so-called “casual” games.

4. The Cambridge Chronicle. I think they must cherry-pick articles for their feed, because a lot of the posts are about people getting shot in the butt, loud parrots, and stuff from the police blotter, an alarming amount of which happens within a three block radius of where I live. My town.

3. Bug Bash. Cartoons about, um, product development? Teamwork? I don’t know, but it’s all too true. Maybe this should be in the “work” category.

2. Crud Crud. I subscribe to a lot of music feeds, most of them awful. I need to unsubscribe to most. But a good one is the Crud Crud blog of Steve Soriano, who reports on oddities in his expansive collection of dusty singles (7″ vinyl records). He also rips from the vinyl, so the MP3s he puts up are really quite rare and hard to come by. Caution: Edgy.

1. Google Sightseeing. People report on strange things they’ve identified in Google Maps; or things of historical or engineering note, such as this recent one. This may well be my favorite feed of them all, and it’s first on my list in my reader.

Clarifications for Assignment 2, Question 12

Posted by john in Assignments, Logistics, Announcements 5 Comments »

Assignment 2, Question 12 is about the growth of the population of organisms in petri dishes. There was an error in one of the generation calculations for the example scenario. I replaced that bit with a somewhat longer description of the problem, with tables that show how the dishes array is calculated at each generation. I think this should be clarifying. So if you’re working on Question 12, make sure to get the newest version of the PDF.

Also, a student asked: May I alter the values in the dishes Array? The answer is: Yes. I think it can be done without overwriting the dishes Array — you would do it by duplicating the prior generation (dishes.dup) or by creating a new Array based on the old one (Array.new(dishes)). However, this might make the solution look a lot messier.

Struggling over inject()? Here are two links to help

Posted by amy in Ruby 1 Comment »

First, Gregory Brown talks about inject and functional programming. Really, if you’re having issues with Assignment #2, do yourself a favor and head on over.

Second: can’t get your head around the name inject()? I don’t think it’s a particularly clearly-named method, and I found this discussion very helpful when I was trying to understand it.

Monday sections on Oct. 8 (Columbus Day) and Nov. 12 (Veteran’s Day)

Posted by john in Logistics 1 Comment »

Oct. 8 and Nov. 12 are both Extension School holidays. And they’re both Mondays. And we have a section on Monday. Harvard buildings will be closed.

My tentative plan is to have on-line sections on Monday and Tuesday (i.e., Oct. 8, 9, Nov. 12, 13) at 7:35 PM. We would likely do this in instant messenger. I would also answer section questions by e-mail.

More on this later.

_why on blocks

Posted by amy in Ruby 7 Comments »

The below is all him, from Chapter 3 of his poignant guide to ruby. It may help you to grok blocks, if you’ve got a ‘huh?!’ going like I did when I first learned about them. And in any case, you should know about _why, because everyone does, and Ruby people are always talking about chunky bacon and cartoon foxes, and _why is why.


Blocks

Any code surrounded by curly braces is a block.

2.times { print Yes, I’ve used chunky bacon in my examples, but never again! } is an example.

With blocks, you can group a set of instructions together so that they can be passed around your program. The curly braces give the appearance of crab pincers that have snatched the code and are holding it together. When you see these two pincers, remember that the code inside has been pressed into a single unit.

It’s like one of those little Hello Kitty boxes they sell at the mall that’s stuffed with tiny pencils and microscopic paper, all crammed into a glittery transparent case that can be concealed in your palm for covert stationary operations. Except that blocks don’t require so much squinting.

The curly braces can also be traded for the words do and end, which is nice if your block is longer than one line.

 loop do
   print Much better.
   print Ah.  More space!
   print My back was killin’ me in those crab pincers.
 end

Block arguments

Block arguments are a set of variables surrounded by pipe characters and separated by commas.

|x|, |x,y|, and |up, down, all_around| are examples.

Block arguments are used at the beginning of a block.

{ |x,y| x + y }

In the above example, |x,y| are the arguments. After the arguments, we have a bit of code. The expression x + y adds the two arguments together.

I like to think of the pipe characters as representing a tunnel. They give the appearance of a chute that the variables are sliding down. (An x goes down spread eagle, while the y neatly crosses her legs.) This chute acts as a passageway between blocks and the world around them.

Variables are passed through this chute (or tunnel) into the block.

Implementing Array.each or Enumerable.inject in Ruby

Posted by john in Ruby

I promised an e-mail or blog post on how one might implement Array.each or Enumerable.inject in Ruby (rather than relying on the built-in versions).

Instead, I will touch on this in the next lecture, because it will give me an opportunity to talk about how to pass a block as a parameter (i.e., converting a block into a proc object).

Embedded Ruby in slides: Resetting

Posted by john in Logistics 1 Comment »

Folks,

I’m getting some reports that when you click “run” in the slides the embedded Ruby doesn’t work on some systems.

This feedback is very helpful. Thank you. For those of you who are having problems, I may hijack your laptop if you have it with you to observe what is happening.

At the very end of this post, a word or two on why you shouldn’t worry too much if the embedded Ruby isn’t working for you…

You may have noticed that some code fails when the irb checkbox is checked. This is because irb-style evaluation proceeds line-by-line, and if there is a statement or expression that works over multiple lines (example: do/end) then you don’t get any intermediate output, and the embedded irb gets confused. But I’ve added some code so that in most cases the checkbox will initially be set correctly.

How to reset JRuby if embedded scripts aren’t running:

1. First off, remember: for now, Firefox only.

2. At times, JRuby has to be re-loaded. To do this, go to the URL and delete the pound sign and everything following. In other words, if your URL says:

http://e168f07.7fff.com/private/lectures/E168-02.html#(36)

Change it to:

http://e168f07.7fff.com/private/lectures/E168-02.html

2. Press return

4. Then re-load by pressing control-R or by clicking the re-load button.

5. Then wait a bit before clicking for the next slide; JRuby is loading. Maybe 10 seconds. In theory, you shouldn’t have to wait, but there may be some subtle timing issues: I’m loading JRuby in a separate thread (or at least using JavaScript’s setTimeout feature).

6. Now click to the next slide. When you get to the first code example, trying clicking run.

7. If THAT isn’t working, let me know.

Two more things:

1. If you click “run” or click inside the textarea that holds the Ruby, you will have to click outside the Ruby code (i.e., on the slide) so that clicks go to the slide, rather than to the textarea. HTML Slidy (the framework I’m using to write the slides) has a yucky event structure and I have to intercept the events. It’s not worth going into, but you may find that advancing the slides is not working the way you want because the Ruby textarea is “owning” the vents.

2. And, finally, remember: You can always cut-and-paste examples right into irb! The examples are supposed to be illustrative. My hope in putting all of these together was that it would be illustrative in the pedagogical setting of the lectures and section: Having the Ruby run in your browser is a bonus: Great if it works, but there’s a clear work-around, and possibly one that will provide more learning: Try code in irb.

Staff e-mail addresses

Posted by john in Uncategorized

There have been a number of inquiries about this: So far e-mail addresses have only been in lecture materials, etc.

For the record, staff e-mail addresses are: john at 7fff dot com and amy dot newell at gmail dot com.

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Login