How rails has changed how I seek for a job

December 10th, 2009 by comment narwen

For nine years, I have developed for the web. Over the years I’ve programmed in C, C++, Python, Java, ASP, PHP, Perl, and most recently, Ruby.
Since my first job as a developer, I’ve never looked for a new job: all of my job transitions have come through friends or co-workers.

In mid 2007 I was happy working with Perl. One day a friend told me about a Ruby on Rails job. Back in 2007, Rails developers in Brazil were rare. Because of that, the employer was seeking someone who fit the company instead of someone with Rails experience. That was great for me!

After a pleasant summer, the new job’s charm wore off and I decided that I wanted to move on but continue to program with Rails. Finally, I left my job.

When I started to send out resumes I soon realized that Rails’ culture fundamentally changed the way that a Rails job search functioned. In addition to the traditional resume or CV, Rails jobs demanded to know about Working With Rails, LinkedIn, GitHub, Twitter, personal blogs and sites, discussion forum posts, participation in open source projects, and a multitude of other online presences. These new demands made me realize that I hadn’t been cultivating a comprehensive web presence, which is not uncommon for female programmers, in my experience.

At first, this realization was disturbing. Though it’s still possible to get a Rails job without a vast web presence, I was upset to realize that I hadn’t been adhering to this best practice. It was particularly jarring the first time I was unable to answer these questions to potential employer.
The practice of software development as a craft is constantly reinventing itself and this includes the processes around job seeking and reputation building. Despite all of the hours, projects, languages, and jobs I’ve previously invested in, I now realize that I need to adapt to this new developer reality of being social and visible with my work in order to win back my standing as a desirable developer and potential candidate for a Rails position. The details of how I’ll implement that strategy will be the subject of an upcoming post, but I look forward to the possibilities ahead.

To read in portuguese.

ˆ Back to top

PyArkansas: Small town, big tech!

November 21st, 2009 by comment gloriajw

Last weekend I flew out to to Little Rock, Arkansas, took a two hour crawl through a snarl of traffic, and arrived just in time for my Friday night pre-PyArkansas tutorial in Conway. Held on the stunning campus of Hendrix College, I wended my way around buildings, a massive fountain, inspiring structures, until I found the building where my tutorial was about to happen. Standing in the foyer with the beautiful Foucault pendulum, I could not help but to stop for a moment, exclaiming “Oooo!!!!” aloud, wishing I had gotten there thirty minutes earlier.

My tutorial was intended to encourage women in computer science by serving two purposes: discussing the source code and functionality of a particular project, and openly discussing some of the issues they faced in their current programs and surroundings. I was pleasantly surprised to discover that these women needed no technical or social encouragement. They are already enthused, technically and socially well prepared, and on their way to a very bright future in engineering or computer science. I was pleasantly surprised that they were very comfortable in the bash shell, and as comfortable in their current college curriculum. Like children at play, they picked up the moderate-levelled tutorial code quickly, made great strides in such a short time, and had a lot of fun doing it.

It was profoundly encouraging to see such a small computer science program achieve diversity as well as such a high level of skill. It made me wonder why larger colleges and universities cannot accomplish the same on bigger budgets, with larger staff, and a more diverse mix of students. It touched me to hear and see the enthusiasm, eagerness, and skill of the students in this program. Their learning experience under the Department Chair, Dr. Burch, comes as close to perfect as I have ever seen.

The next day’s events at PyArkansas were held at the also-very-nice campus of University of Central Arkansas, where an entire day’s worth of tutorials took place. Two Python 101 tracks were held: one for programmers and one for non programmers (a great concept). An all-day Django Track was given, where the advanced course was taught by Jacob himself. I held an afternoon tutorial addressing advanced Python concepts, with downloadable example code, where we compared and contrasted build and deployment tools, played with regex, and showed examples of some internal Python oddities involving static variables. I unfortunately missed the Python Blender tutorial, held at the same time as mine, and I heard it went quite well.

The campus facilities were very accomodating. Everything was well organized,and up and running for us when we arrived. This is a very welcome surprise to anyone who has travelled a bit to do tutorials. I was specifically told by Dr. Chenyi Hu, the Department Chair of UCA, that he really does care about diversity, and it is something they strive to achieve. This was truly touching, quite impressive, and a pleasant surprise from such a small town.

Kudos to Greg Lindstrom, Dr. Carl Burch of Hendrix College, Dr. Chenyi Hu of UCA, and everyone else involved. You induced a big technical “tremor” through your small town, which echoed far and wide. It is yet another example of the great people drawn to the Python community, and the amount of quality effort they are willing to give back. I feel honoured to have been part of this event, and I hope to be involved in many more to come.

Gloria

ˆ Back to top

From Python 2.6 to PHP 5.2: A circuitous journey

November 20th, 2008 by comment gloriajw

When I started heavily using PHP 5.2 (not by choice, I’ll admit), I was impressed, but I suffered from some incorrect assumptions about what PHP5 is and is not capable of doing. The good news is that it is more object oriented than it’s predecessor, but has some caveats to consider. Here are some things to be aware of when switching from a pure OO language to PHP5:

1: A nonexistent PHP array key generates no error or warning. When trying to iterate over a nonexistent array key, a warning occurs. In other languages, both of these conditions throw an exception.

Try this code for example:

<?
$dictionary=array('one'=>'got one','two'=>'have two','four'=>'missing three?');
foreach (array_keys($dictionary) as $key)
{
	print "Key is:".$key.", value is:".$dictionary[$key]."\n";
}
print "Try undefined key three, no warning occurs:".$dictionary['three']."\n";
foreach ($dictionary['three'] as $value)
{
	print "Now we're iterating over a nonexistent key:";
	print "Key is: three, value is:".$dictionary['three']."\n";
}
?>

Running it results in this output:

php test.php
Key is:one, value is:got one
Key is:two, value is:have two
Key is:four, value is:missing three?
Try undefined key three, no warning occurs:

Warning: Invalid argument supplied for foreach() in /root/test.php on line 8

If it is vital to me to make sure I am aware of missing keys, I only have two choices. If I need a proactive solution, I have to use the array_key_exists() function to do existence checking before use. If I want a reactive solution, I write a log scanner, to pick up on these warnings. In every other OO language I have used, an exception was thrown for this condition, and my exception handling determined if the error was vital enough to have to exit immediately or not. This seems like a more efficient way to handle this condition. I would imaging PHP5 does not do this because of it’s need to be backward compatible with PHP4, but this is a guess.

It would be wonderful to have a -OO flag for PHP, which gives you the option to run PHP and expect more standard, stricter OO behavior in these instances.

2: Warnings cannot be “caught” like exceptions. Exceptions and warnings are distinctly separate beasts, and never the twain shall meet. Fine, I thought, maybe I could detect warnings similar to how we detect errors. But it seems like warnings cannot be detected when they happen. There is no PHP code I know of which can check if a warning had occurred in runtime. I tried to detect it using array error_get_last() but to no avail. if you know how, post your trick here.

3: In PHP, ‘true’ evaluates to an integer ’1′. To get the boolean ‘true’ value from a ‘true’ statement, one needs to var_export() a true statement. Similarly, or maybe not, ‘false’ evaluates to no output. Here is an example:

<?
print "\nThe raw value of a true statement in PHP:".true;
print "\nThe raw value of a false statement in PHP:".false;
print "\nThe exported value of a true statement in PHP:".var_export(true,true);
print "\nThe exported value of a false statement in PHP:".var_export(false,true);
print "\n";
?>

And the output:

The raw value of a true statement in PHP:1
The raw value of a false statement in PHP:
The exported value of a true statement in PHP:true
The exported value of a false statement in PHP:false

This may not be noticeable to you in a standard expression. But if you’re doing funky stuff, like using the evaluated expression values as key references into the dictionary of a decision tree, for example, 1 does not equal ‘true’, and the difference matters quite a bit.

4: Long running processes with recursive circular references (such as Doctrine code) run out of memory. This is documented in many places, and the free() function works sometimes. A fix is coming in PHP 5.3. The foolproof solution for my code in production today (youch!) is to periodically restart the daemon. If you’re cringing right now, know that you’re not cringing alone.

There may be a part II to this article. Feel free to add your own PHP5 observations.

Gloria

ˆ Back to top

Finding My Inner Developer

November 1st, 2007 by comment gennipher

Hi all! My name is Gennipher, I live in Louisiana and currently work as an Oracle DBA and Linux Systems Admin. Scripting comes with the job I suppose. I’d like to get back to some programming so I’ve been playing with PHP and Java mostly as of late. I get giddy when I think about Regular Expressions (I was introduced to them a few months back and we hit it off) so I’d like to learn more about them as well, but that’s something that I will be able to integrate with my day to day job fairly easily. I really want to learn Ruby and Python. When I found devChix, it just seemed like the right online community for me to be a part of and get my feet wet again and reconnect with my inner developer :)

Glad to be a part of a wonderful community!

ˆ Back to top

Finding your articles in devChix

June 15th, 2007 by comment Carmelyne Thompson

Hi, just a quick short break from all the hot topics and comments. We do have a collection of wonderful articles that you may find helpful as Tim Bray mentioned on his post. These articles are written with passion and sometimes a result of views , ideas or solutions we implement from our individual projects in the workplace.

I feel like I am one of the gatekeepers to all these articles so I added a page so everyone can easily find the list of all the good stuff written to date: All devChix Articles. Now if anyone can tell me how to add a sort order, ie ASC by title, in the Word Press archive tag — that would be really swell. :) Thanks.

ˆ Back to top

Hi there – new to devChix

April 25th, 2007 by comment laurencooney

Hi there,

I’m new to DevChix and wanted to introduce myself. I work at IBM in the CTO Office (Information Management Group) working on lots of different things – open source community building, researching emerging technologies and languages, and looking at stuff generally cool around open source. It’s a pretty fun job, and I love that I get to geek out on a daily basis :) I’m not a coder, but I do lots of technical research and work with developers on a daily basis.

Right now I’m looking at different projects and products using/integrating Ruby/Rails into their development strategy and how different companies are using these technologies to do things better than they did in the past. I’m relatively new to the Ruby/Rails community (coming from the 5 years on the Java side of things) and always looking for new blogs or resources to follow.

I’m really excited to be a part of this group, and can’t wait to start virtually meeting some of you.

Best,

Lauren

ˆ Back to top

Knuth Award goes to Nancy Lynch

April 11th, 2007 by comment Alex

For anyone one interested in the theory of computer science, Nancy Lynch will be awarded the Knuth Award.

The press release is here and you can also visit Nancy Lynch’s Homepage

Her work is in distributed computing.

ˆ Back to top

Francis Hwang: On Ruby, NYC and the upcoming Gotham Ruby Conference

March 18th, 2007 by comment shari

Shari Halter sat down with Francis Hwang, founder of the NYC Ruby group, in February 2007, to ask about learning Ruby, the NYC Ruby community, and the upcoming Gotham Ruby Conference in NYC, April 21, 2007.

How did you get involved in computers to begin with?

My dad was always really into computers. I guess it started there. He had, I think, an Apple II at home that I played around on. I had taken a few classes when I was young, gone to computer camp, etc., but computers were just one of many interests for me. In college I studied computer science, but also art—my degree is in visual arts, actually, focusing on painting, and drawing, and comic books. I was always doing lots of different things—art, freelance writing for newspapers—but I was also always doing programming.

So why Ruby?

I came into it first really from the XP (Extreme Programming) group here in NY around 2001-2002. We were interested in the methodology –XP was very hot. At the time, I was at this company and we were doing Tcl and some Perl –it was just sort of a mish-mash, and people in the group started using Ruby on the project. For awhile I preferred Perl, but that become too chaotic. Then I preferred Java, because that was more structured. But then that was too structured, and then Ruby was then just the right thing. It was pretty flexible and quick, overall, but it also had the option of doing all this object orientation, like Java, so it was easier to test. So, yeah, because of the XP group I got involved with Ruby and then started using it very seriously.

XP and Agile –all those methodologies put a lot of emphasis on testing. And they said if you test things then you actually lock down that part, and then it makes a lot of other things easier to change and move around. You don’t have to do a lot of planning up front; you can always move all your code because you have all your tests to make sure that you aren’t breaking stuff that used to work yesterday.

I started writing tests for Java code, and then it turned out that testing is so much better than static typing, well, why not just use the test on Ruby code, instead?

And because testing is big in Ruby and Rails culture, a lot of earlier adaptations of Rails were working on smaller web sites, for smaller business, and not so much for “enterprise-y things.” But it’s starting to scale up and a lot of progressively bigger customers clients are finding out that it’s ok for them to use.

Ruby has a lot of features that came from much older languages, like LISP and Smalltalk, languages that didn’t really take off and until XP and Agile became such a big fad five years ago. Without them, Ruby and Rails wouldn’t be nearly as successful today –they seeded the ground. I think Matz’s [Yukihiro "Matz" Matsumoto, creator of the Ruby language] belief that working in a programming language should be an enjoyable experience and that it should follow the principle of least surprise, has also shaped the community of users embracing Ruby. I might not still be programming today if it were not for Ruby. I think the one thing holding Ruby back these days is a shortage of available programmers.

What about learning Ruby? What resources do you recommend?

There are just, like, a million things that are free online. There are great books for beginners: obviously, the Pickaxe book and Agile Web Development with Rails.

But the number one thing, especially right at the beginning, is to find a group or be on the lists. There’s a lot happening now. The global Ruby community, by which I mean the main mailing lists and IRC channels, is probably too big to be approachable by the novice programmer. I think the antidote to that is to find a local Ruby community, whether its in Miami or New York, or wherever. Use those to get a basic familiarity, so your first days aren’t so difficult –especially if it is your first time setting up a development environment. I think what’s interesting is to see that for a lot of people, Rails is the first time they are setting up a dev environment on their laptop, for example, and be able to run the whole website and deal with that. But it’s growing, so it should be easy to find a community.

Tell me about the NYC-Ruby group. When and why did you start it?

When I started the group, I was pretty active: I was putting out an open source library, and I went to RubyConf 2003, in Austin, and I really enjoyed it. It was, like, 50 people, but a bunch of people who were very intellectually ambitious, without lot of ego or competitiveness, which I really enjoyed and I had a blast! I wanted to have my own little version of that more than once a year, so I started the group.

The first meeting was very small, like four or five people. Rails, of course, is what caused it to take off and now it’s pretty big. We have meetings that go from thirty to forty people. It’s been interesting to watch the community change; it’s grown pretty quickly! There’ve been a lot of programmers that are more productive, and happier, and they’re also finding really interesting things about language design and the low-level stuff.

There was hesitancy on the part of some of the older Ruby folks, because a lot of people coming from Rails, right away, were coming from PHP, .NET, JSP and pumping out web sites really fast, which was the most exciting thing for them. And I think they didn’t want the community to turn into the world of people who are just into JavaScript and not digging into these harder issues. But I don’t think that fear has borne out. I think there have been a lot of people who come and, within a very short time, find there is so much there that is really interesting about Ruby, itself. So yeah, it’s been good. And on a basic level, it’s good to get a job in a language you like! In 2004, I think less than 10 people in the room had Ruby jobs, and now you go to RubyConf and it’s almost everybody.

How do you feel about the recent trend in “off-shoring” programming talent?

It makes things harder for some people, that’s for sure, but there are ways for U.S. programmers to try to be insulated from its effects. Off-shoring works pretty well for projects that are more heavyweight: A bunch of people hammer out a massive spec document for two months, and then ship it over to India so a room full of 50 programmers can bang it out. But when you’re working in smaller, more agile contexts, the programmers have to be constantly communicating with the clients, specs change constantly, and it’s really hard to do that long-distance.

The good thing about working in Ruby, and you could argue this is one of underlying reasons that Rails has been the right framework at the right historical moment, is that if you’re a small, highly productive team of coders, that you’ll have a better chance of holding on to your programming job in the U.S. And Ruby is a pretty great language for small, informal teams. We haven’t seen how well it holds up in larger contexts, but I think lots of us are happy with how it works in small teams, with the exact sort of programming jobs we can hold while living in an industrialized country.

What’s the state of the NYC open source community?

For its size, NY is not as strong an open source community as you’d expect. Mostly because people are busy and work pretty hard. It’s expensive to live here, and the job that you have is more demanding here than in a lot of other cities, although, we do have good projects. When Zed Shaw was living here that’s when he put up Mongrel [HTTP library and Ruby server], so even though he’s moved away we kind of claim Mongrel, anyway; Ryan Raaum put up Locomotive [a Ruby on Rails environment manager for Mac]; EastMedia (Matt Pelletier and Trotter Cashion) sarted the Heraldry project [cross-site identity manager/provider]; Luke Melia is a major contributor to Tracks, which is a Rails implementation of “Getting Things Done” methods; Greg Brown, from the New Haven Ruby group has written RuPort [a software library and toolset for reporting applications]; and we now have an NYC-RB Ruby Forge project, which is kind of a collection of a bunch of smaller things.

It’s all still pretty small, though. Some of us are very actively trying to drum up more projects and compete with the Seattle guys. We’re good friends with them, but we’d like to kick their butts –but not today. They’re far ahead of us.

Let’s talk about women in programming.

The one who sticks out in my mind right away is Amy Hoy, who is a very successful blogger and programmer and designer, and has done a lot to help explain things about Rails to other people. There’s a lot of open source scenes that don’t have that many women in them. I don’t believe in quotas, but when the numbers are that bad, there are obviously issues.

There’s a lot of things to unwind. The reasons people get into software in the first place are very particular. Guys are more likely to get into software engineering when they are kids –writing code and stuff. Boys are socialized to follow hobbies that might not have much to do with people –girls are socialized to care about their friends and family. Guys, a lot of times, are allowed to go away and type away at a computer all weekend long, and come up with weird shit. In the long term, you can say that every generation of computing becomes more humane and more related to socialization.

For every generation, it gets less problematic to write code where the levels at which you have to solve problems involve more humane characteristics. Ruby and Rails make programming more accessible to others who don’t exactly fit that mold because it is a more humanistic language.

But its something that definitely needs to be addressed and its not going to solved overnight.

You have recently initiated the first NY region Ruby conference, GoRuCo. Tell me about it.

The New York City group, in conjunction with volunteers from the NYC and New Haven groups, have been planning the Gotham Ruby Conference (GoRuCo). Its going to be a one day conference on April 21st. We’re just excited to have a bigger regional thing that’s halfway between something super-big and super-official like RubyConf, but also a little more laid back and smaller. It’s more intimate. It going to be up to 120 people. I’m really excited to see NYC keep growing as a community of technology. We also like the idea of having some of our friends whom we’ve met in the community, nationally and internationally, giving them an occasion to come to NYC and visit. We’ve opened registration; we sold over 80 tickets, so we’re almost sold out. [Editor’s note: Since this interview, the conference has sold out and there is currently a wait list.] I think it’ll be really fun. There is a lot of interest in it, and I think it’ll be just a fun day.

Is there a focus to the content?

No, it’s a Ruby conference, so we are going to try to pick a really interesting mix of topics. As the only one who has seen the proposals so far, I will say that we have a pretty good mix already, but it would be great if we got another 20-30 more.

I like RubyConf as a model in the sense that every time you go there are some talks that are really basic and down-and-dirty, like how to use this tool, or how to use this technique in code, something that you can go back to work the next week and actually just use it right away. And there are other talks that are totally obscure, as strange, theoretic ideas. These alternative implementation talks tend to be really tough and weird and cool, even though I don’t understand all of it. And then, from time to time, you get –like one year, there was a guy who talked about controlling underwater robots –which was cool! Not that I’ll ever do underwater robots, but it was cool. Hopefully we’ll be able to present that sort of mix.

I’m excited about the idea of hosting outsiders; the thought of being able to give someone, who might otherwise be intimidated by NYC, a more gentle introduction. GoRuCo is going to be the biggest gathering of Ruby on Rails programmers in ever NYC –actually, it may actually be the biggest on the eastern seaboard. There was a RubyConf in Virginia in 2004, but that was pre-Rails, and it was a fairly small crowd.

So the point of it is to provide a place for people to keep meeting, to keep finding common interests, to make it easier to hire each other, start companies together, work on OS projects, blog to each other –just to make it easier –to make it, like, less work for people to be working on these things together. And I’ll be excited to see that.

Francis Hwang is an artist, writer, and software engineer. An active member of the Ruby community, he founded Ruby-NYC in 2003

ˆ Back to top

Fran Allen wins the Turing

February 21st, 2007 by comment SarahMei

The ACM has just announced that Fran Allen has won this year’s Turing Award. The Turing is computing’s Nobel Prize, and Allen is the first woman to win it. In the 1970s she did pioneering work in compiler optimization and parallel execution that made supercomputing possible. The availability of supercomputing, in turn, led to scientific breakthroughs in many other fields. Here’s a fluffier piece with a nice picture.

I don’t know why this made me so happy this morning. I usually roll my eyes when I see “The first woman to X! Omigod!!” news releases, but this one I forwarded to my mom and said “this is the award I’m going to win someday.” I never even thought about the Turing before, but now I feel strangely empowered.

I guess I better get working on that PhD. ;-)

ˆ Back to top

Life is short; do everything you can!

September 28th, 2006 by comment Victoria

Hey, I’m Victoria Wang from Naperville, IL. In the last couple years I’ve been doing web development, mostly front-end, at a non-profit Christian organization nearby where I’ve also been learning Ruby/Rails. I’m in my second year at college studing computer science, currently learning Java. Still figuring out my life, so who knows what will happen. I do know that I’m REALLY excited to have found myself in this bunch of female developers and I hope to learn a lot from you guys!

My other interests include digital illustration, comics/manga, playing viola, jogging, nature, vegetarianism. Two projects I hope to start on as soon as I have more time are a web comic and a rails app idea I have. I’ll be asking for feedback on the latter at some point ^__^.

ˆ Back to top