<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><!-- generator="wordpress/2.0.4" --><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Desi McAdam</title>
	<link>http://www.desimcadam.com</link>
	<description>Yes Obie's girlfriend</description>
	<pubDate>Thu, 16 Oct 2008 21:09:48 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.4</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/DesiMcadam" type="application/rss+xml" /><feedburner:browserFriendly></feedburner:browserFriendly><item>
		<title>Rails Summit Latin America</title>
		<link>http://www.desimcadam.com/archives/11</link>
		<comments>http://www.desimcadam.com/archives/11#comments</comments>
		<pubDate>Thu, 16 Oct 2008 21:02:35 +0000</pubDate>
		<dc:creator>desi.mcadam</dc:creator>
		
	<category>Uncategorized</category>
		<guid isPermaLink="false">http://www.desimcadam.com/archives/11</guid>
		<description><![CDATA[I am currently in Sao Paulo, Brazil at Rails Summit Latin America and the experience has been great thus far.
Ladies at the conference there is information at the end of this writeup about how to join. If you don&#8217;t feel like reading everything in this writeup that is fine but please do read about joining. [...]]]></description>
			<content:encoded><![CDATA[<p>I am currently in Sao Paulo, Brazil at <a href="http://www.locaweb.com.br/railssummit/default.asp?language=7">Rails Summit Latin America</a> and the experience has been great thus far.</p>
<p><b><i>Ladies at the conference there is information at the end of this writeup about how to join. If you don&#8217;t feel like reading everything in this writeup that is fine but please do read about joining.</i></b> </p>
<p>In contrast to many conferences I have been to recently I have been to just about every talk at this conference and I have thoroughly enjoyed them all. I say just about because there is a second track that is going on in another room but I haven&#8217;t been to those sessions. </p>
<p><b>The Organizers:</b><br />
<a href="http://www.akitaonrails.com/"> Fabio Akita and Gilberto Mautner Founder of <a href="http://www.locaweb.com.br/portal.html">locaweb </a> have done a great job with the conference and I would like to give them a special thanks. The lineup, venue and everything has been great. Obrigado!</p>
<p><b>Theme:</b><br />
I think most conferences, through the keynotes, some how seem to create a theme. The theme that I am picking up on at this conference is this: &#8220;Have No Fear&#8221; and &#8220;Just Do It&#8221;. No one actually said either of those two things but thats basically what I am taking away from most of the keynotes. They have all been especially encouraging for people to become involved. Contribute, create, and code. Give back to the community and get involved. Don&#8217;t be afraid .. put yourself out there and learn from the feedback you get.. learn from the experiences of creating.. do side projects.. basically be PASSIONATE.</p>
<p><b>The Talks:</b><br />
All the talks I have seen have been excellent. I give them an excellent rating because they have all had the qualities I look for in a talk.<br />
1. The content is good and interesting.<br />
2. The delivery of that content is entertaining or at least engaging.</p>
<p><b>Chad Fowler</b> - I really enjoyed Chad&#8217;s talk and as I sit here I am struggling to figure out a way to describe his talk and actually do it justice. He spoke about his background in music and how that has translated to his life as a developer. In addition, he spoke about being remarkable. He talked about many ways in which people are remarkable and many ways in which we ourselves can become remarkable people. He touched on many things and did so in such a way that I was able to stay engaged with him. There were pictures and video&#8217;s and graphs and fake numbers and.. anyway about the best I can say is that I personally really enjoyed his talk.</p>
<p><b>Dr. Nic Williams</b> - Dr. Nic&#8217;s presentation is a little easier to sum up but at the same time I can&#8217;t really do it justice. Dr. Nic is one of those speakers that if you ever have a chance to see him speak you should definitely take the opportunity. He is hilarious and has a good message. His talk was all about how to contribute back.. how to get involved.. how to participate. Make the future you proud of the you now.   <a href="http://drnicwilliams.com/2007/08/20/newgem-using-rubigen-for-generator-support/">Dr. Nic also talked about newgem</a></p>
<p><b>Chris Wanstrath</b> - Chris&#8217;s keynote started off being about the future of Ruby and RoR but in the end he took it back to the past and where we have come from. He went through a great deal of history on how we got here which I personally enjoyed especially when he pointed out the first ENAIC programmers were all women, unfortunately he was speaking quite fast so I think a lot of his talk was lost in translation. I think the primary thing Chris was trying to get across is to not be afraid. If you have an idea.. make time to get to it you never know where thats going to go. In the very least you gain experience and you gain knowledge. <a href="http://www.github.com">Chris has had many projects in the past but his current claim to fame is all about github.</a></p>
<p><b>Jay Fields</b> - Jay&#8217;s talk was about the immaturity of testing as a whole. While I agree with some of the things he said I also disagree with some of the things he said. I have had the luxury of getting to pair with Jay on projects before and its always interesting for me to see him speak because I have first hand experience with a lot of things he talks about. He described the problem of immaturity in testing as a whole first with the fact that we can&#8217;t even agree on common terminology. He then proceeded to talk about various tools and the pros and cons of each. He covered Selenium, Test:Unit, Rspec, Syntasis, and Expectations. The last two being the most immature of them all and bleeding edge. i.e. use at your own risk. He also answered a few questions about how to make your test suite fun faster and his response was basically that if you are willing to deal with the pain that goes along with it there are tools you can look into using such as null_db, unit_record, and ARBS. You can read about them on <a href="http://agilewebdevelopment.com/plugins/nulldb"> the null_db page on Agile Web Development site</a>. That page links out to the other plugins.  Jay also pointed out that all the things he was talking about are from his point of view. In other words its the context in which he works that causes him to have some of the testing beliefs he has.</p>
<p><b>David Chemlisky</b> - David&#8217;s first talk was about doing TDD and in my opinion he did an excellent job of demonstrating TDD. I have seen him give a talk similar in the past and of all the people I have heard try to describe TDD, David is one of the most skilled at it. He gave the talk from the point of view of a teacher which in my opinion is really the only way you can truly explain TDD. He went through the process step by step with us all to show us the way. <img src='http://www.desimcadam.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>His second talk was more about Acceptance testing and story runner and the newest version of story runner which is being called cucumber. He demonstrated how it worked and made sure to give context around all the terminology such as user stories etc. Hopefully there will be some way of seeing this talk again maybe through a screen cast or something of that nature. I&#8217;ll be sure to ask him if he would be willing to do that. Or maybe there is one with cucumber? Not sure haven&#8217;t had a chance to look yet.<br />
Couple of links to stuff he talked about.<br />
<a href="http://github.com/aslakhellesoy/cucumber/wikis/home">Cucumber</a><br />
<a href="http://github.com/brynary/webrat/tree/master">webrat on github</a> and <a href="http://movesonrails.com/articles/2008/08/19/webrat-story-steps">a blog post on it here</a></p>
<p>On that last note I am actually interested to know if these talks are being recorded and if they will be available somewhere?  Anyone know the answer to that?</p>
<p><b>Obie Fernandez</b> - I haven&#8217;t actually seen Obie give his talk yet but I have seen the talk (insider information) so I am going to go ahead and give a recap.. I asked him to plug DevChix and wanted to have this write up already done before he did so.. <img src='http://www.desimcadam.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />   So Obie&#8217;s talk will be about the &#8220;Hashrocket Way&#8221;. He is basically giving up our secrets.. Like Dr. Nic said no secrets!  His main focus will be around how we work, the fact that we follow Agile Tenants and that we value fun, collaboration, and effectiveness. We achieve those things through certain practices such as pair programming, TDD, Story Carding, launch parties etc. <a href="http://blog.obiefernandez.com">Again you should check out his blog.</a></p>
<p><b>Ninh Bui and Hongli Lai a.k.a The Phusion Guys</b> - I woke up late so I didn&#8217;t catch all of the talk from the Phusion guys but the part that I did catch was hilariously funny and explained things like caching and database sharding. Additionally, they gave a demo of <a href="http://github.com/FooBarWidget/yuumius_comments/tree/master"> yuumis_comments..</a> and <a href="http://blog.phusion.nl/">here is also a link to their blog</a> </p>
<p>I call out all of these guys because they are some of the best speakers I have ever seen and I actually saw them speak at this particular event. </p>
<p><b>Phillippe Hanrigou</b> - Phillippe is going to be giving a talk on how to effectively do acceptance testing which I am looking forward to but I won&#8217;t be able to cover that here because I haven&#8217;t seen it and since I don&#8217;t have insider info on that one I&#8217;ll just have to wait like everyone else. I do know that he will be talking about one tool I hadn&#8217;t heard of before called <a href="http://deep-test.rubyforge.org/">Deep Test</a>. <a href="http://ph7spot.com">You should check Phillippe&#8217;s blog as well</a></p>
<p><b>Luis Lavena</b> - Luis will also be giving a talk about surviving with RoR and Ruby as a windows user.. again I think the talk is going to be awesome but its in the future so I can&#8217;t really talk about that yet. <a href="http://blog.mmediasys.com/">You should check out his blog!</a></p>
<p><b>The Venue:</b><br />
The venue is quite nice. The main auditorium is very well arranged and has plenty of room despite the fact that there are a lot of people here. There is a very large screen making it easy for everyone to see the slides as well as the speakers. The lighting on the actual speakers is a little weird but other than that the actual conference room is great. The audio is fantastic and the actual hang out area is quite nice as well (other than the lack of air conditioning but thats just me being a little whiny its not really that hot). One other really important point that I want to bring up is the translators. You can get a headset at the checkin area that will translate the talks from English to Spanish and Portuguese and from what I understand the translators have been doing a kick ass job so a special thanks to all those ladies in the booths translating for us. </p>
<p><b>The Community:</b><br />
I was very encouraged by the number of people at the conference, the number of people using github (vast majority) and the number of people doing Ruby and RoR development on a day to day basis. It is always an exciting moment for me when I realize it is gaining in support because how much I love the language. In addition, everyone has been extremely helpful and friendly. We meet <a href="http://www.karmacrash.com/">Tim Case</a> the first day and he was more than willing to take us under his wing and show us around. </p>
<p>One thing that was both encouraging and discouraging is the number of women at the conference. There were women, thats the good news, the bad news is that I think from a ratio point of view the number of women at the conference is on par with what I have experienced at Ruby and RoR conferences in the US. That is to say its pretty small. Usually at conferences since there are so few women I can manage to talk to most of them and but here I have been some what intimidated by the language barrier. One other thing to point out is that there were no women speakers but hey that isn&#8217;t really that uncommon. I am hoping that when Obie does his talk and plugs DevChix for us that many of those women who were at the conference that I didn&#8217;t get to meet will come to the site and join.</p>
<p><b>Ladies Please Read</b><br />
For those women who do happen to come to the site from Brazil and other countries. I would like to say that we have members world wide who can speak a number of different languages so please don&#8217;t let that discourage you from joining and participating. We would LOVE to have you all as part of the group. Also encourage other female developers you know.</p>
<p>If you are a women, a developer, interested in joining and/or contributing to DevChix, please contact Desi McAdam at info(-at-)devchix.com with your:</p>
<p>   1. Name<br />
   2. Email<br />
   3. Do you know any one from DevChix?<br />
   4. A short 2 sentence bio describing your development background/experience (or what you hope to learn) and a link to your blog if you happen to have one.</p>
<p>Obrigado! <img src='http://www.desimcadam.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.desimcadam.com/archives/11/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>RubyEast Recap, Slides, and Other Thoughts</title>
		<link>http://www.desimcadam.com/archives/10</link>
		<comments>http://www.desimcadam.com/archives/10#comments</comments>
		<pubDate>Sun, 30 Sep 2007 22:31:16 +0000</pubDate>
		<dc:creator>desi.mcadam</dc:creator>
		
	<category>Uncategorized</category>
		<guid isPermaLink="false">http://www.desimcadam.com/archives/10</guid>
		<description><![CDATA[I spoke at RubyEast this past Friday and I think the presentation went pretty well. It was my first presentation in a speaker/audience type setting so I was very nervous. I have presented at Agile 2006 but it was a game (interactive) and was co-presented by several other people. This presentation was the first time [...]]]></description>
			<content:encoded><![CDATA[<p>I spoke at RubyEast this past Friday and I think the presentation went pretty well. It was my first presentation in a speaker/audience type setting so I was very nervous. I have presented at Agile 2006 but it was a game (interactive) and was co-presented by several other people. This presentation was the first time I stood in front of a room full of people and spoke and everything went very well. Like I said I was really nervous but as soon as I got started the nervousness went away. I think I am very lucky because I was able to present to a room full of very nice/cool people and that made the experience a great one. I want to actually thank the people who came to hear me present and who gave me great feedback and encouragement afterwards it really made my day.  If you are interested here are the slides for the presentation. <a href="http://www.devchix.com/wp-content/uploads/2007/09/atourofrailstesting-rspec.pdf">A Tour Of Rails Testing using RSpec</a></p>
<p>I didn&#8217;t get to see many of the sessions because I was busy preparing for my talk but I was able to catch <a href="http://www.jroller.com/obie/entry/obie_s_rubyeast_2007_presentations">Obie&#8217;s presentation - Advanced ActiveRecord</a> which was really good (and I am not just saying that because he is my boyfriend). I also caught the ending Keynote where Nap (I actually don&#8217;t know his real name) announced the Rails Rumble winners. There were several screencasts and it made me wish that Obie, Clay, Nick and I would have had time to get the video that was shot of us over the weekend edited and ready for prime time.  We had a blast doing the competition and while we didn&#8217;t win (we got honorable mention) we learned a lot and I think we all grew closer in those 48 hours. The teams that did win did a tremendous job on their apps and well deserved the loot. Take a look at the winners there really are some great apps. <a href="http://railsrumble.com/2007/9/28/and-the-envelope-please">Rails Rumble Winners</a></p>
<p>Friday evening a bunch of people got together after the conference and played several games of Werewolf which is a really fun game to play. I got to know a lot of people during that game and it was a great way to wind down. </p>
<p>Couple of other thoughts before I end the post. <a href="http://shesgeeky.org/">ShesGeeky (un)Conference</a> sounds like it is going to kick major ass so any of you ladies out there who can attend make sure you get registered. Additionally, ladies if you want to talk during the conference please contact the organizers. </p>
<p>GrrrlCamp seems to be getting a good footing. I was lucky enough to meet THE Gloria this past Friday and I look forward to being a part of GrrlCamp.</p>
<p>I have taken on an apprentice and she will soon be posting to the blog about her experiences. I am in the process of trying to see if creating an apprenticeship type program run by DevChix is possible because after speaking with Sonia (one of the women on DevChix) she helped me figure out that I would really like to have a program that fits the apprenticeship model rather than a mentoring program. Look for more to come on this in the future.</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.desimcadam.com/archives/10/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>will_paginate array?</title>
		<link>http://www.desimcadam.com/archives/8</link>
		<comments>http://www.desimcadam.com/archives/8#comments</comments>
		<pubDate>Tue, 24 Jul 2007 05:11:29 +0000</pubDate>
		<dc:creator>desi.mcadam</dc:creator>
		
	<category>Uncategorized</category>
		<guid isPermaLink="false">http://www.desimcadam.com/archives/8</guid>
		<description><![CDATA[Today I started putting pagination in the app that I have been working on. Based on recommendations from Obie I decided to use &#8220;will_paginate&#8221;, a rails plugin for pagination put out by the err the blog guys. It worked amazingly and the view helper was great! I really like the fact that I can apply [...]]]></description>
			<content:encoded><![CDATA[<p>Today I started putting pagination in the app that I have been working on. Based on recommendations from <a href="http://jroller.com/obie">Obie</a> I decided to use <a href="http://errtheblog.com/post/4791">&#8220;will_paginate&#8221;, a rails plugin for pagination put out by the err the blog guys.</a> It worked amazingly and the view helper was great! I really like the fact that I can apply the same look and feel to all page pagination throughout the app&#8230; well umm.. until I wanted to add pagination to a collection not generated from a finder or association. Since I really wanted everything to look the same and behave the same I did the following little trick so that you can call paginate on a plain old array.</p>
<pre>
<strong>class Array
  def paginate(page=1, per_page=15)
    pagination_array = WillPaginate::Collection.new(page, per_page, self.size)
    start_index = pagination_array.offset
    end_index = start_index + (per_page - 1)
    array_to_concat = self[start_index..end_index]
    array_to_concat.nil? ? [] : pagination_array.concat(array_to_concat)
  end
end</strong></pre>
<p>Before folks say anything about the above code.. yes I know it could be more concise if I didn&#8217;t use all the local variables but I wanted it to be really clear what I was doing here so.. leave it alone.</p>
<p>Now basically you can say </p>
<pre>
<strong>myarray.paginate(params[:page], per_page)</strong>
</pre>
<p>If you want to see it work yourself feel free to run this spec.</p>
<pre>

<strong>require File.dirname(__FILE__) + &#8216;/../spec_helper&#8217;

describe &#8216;Given we call paginate on an array&#8217; do
  it &#8217;should return an array containing the first 3 elements of the org array when page = 1 and per_page_count = 3&#8242; do
    array = [&#8221;a&#8221;,&#8221;b&#8221;,&#8221;c&#8221;,&#8221;d&#8221;,&#8221;e&#8221;]
    current_page = 1
    show_per_page = 3
    expected_array = [&#8221;a&#8221;, &#8220;b&#8221;, &#8220;c&#8221;]
    (array.paginate(current_page, show_per_page)).should == expected_array
  end

  it &#8217;should return an array containing the last 2 elements of the org array when page = 2 and per_page_count = 3&#8242; do
    array = [&#8221;a&#8221;,&#8221;b&#8221;,&#8221;c&#8221;,&#8221;d&#8221;,&#8221;e&#8221;]
    current_page = 2
    show_per_page = 3
    expected_array = [&#8221;d&#8221;, &#8220;e&#8221;]
    (array.paginate(current_page, show_per_page)).should == expected_array
  end

  it &#8217;should return an array containing all the elements of the org array when page = 1 and per_page_count = 5&#8242; do
    array = [&#8221;a&#8221;,&#8221;b&#8221;,&#8221;c&#8221;,&#8221;d&#8221;,&#8221;e&#8221;]
    current_page = 1
    show_per_page = 5
    expected_array = [&#8221;a&#8221;,&#8221;b&#8221;,&#8221;c&#8221;,&#8221;d&#8221;,&#8221;e&#8221;]
    (array.paginate(current_page, show_per_page)).should == expected_array
  end

  it &#8217;should return an array containing all the elements of the org array when page = 1 and per_page_count greater than org number of elements i.e = 6&#8242; do
    array = [&#8221;a&#8221;,&#8221;b&#8221;,&#8221;c&#8221;,&#8221;d&#8221;,&#8221;e&#8221;]
    current_page = 1
    show_per_page = 6
    expected_array = [&#8221;a&#8221;,&#8221;b&#8221;,&#8221;c&#8221;,&#8221;d&#8221;,&#8221;e&#8221;]
    (array.paginate(current_page, show_per_page)).should == expected_array
  end

  it &#8217;should return an empty array if you ask for a page that does not exist&#8217; do
    array = [&#8221;a&#8221;,&#8221;b&#8221;,&#8221;c&#8221;,&#8221;d&#8221;,&#8221;e&#8221;]
    current_page = 3
    show_per_page = 5
    expected_array = []
    (array.paginate(current_page, show_per_page)).should == expected_array
  end

  it &#8217;should return an empty array if you ask for a negative page number&#8217; do
    array = [&#8221;a&#8221;,&#8221;b&#8221;,&#8221;c&#8221;,&#8221;d&#8221;,&#8221;e&#8221;]
    current_page = -1
    show_per_page = 5
    expected_array = []
    (array.paginate(current_page, show_per_page)).should == expected_array
  end

  it &#8217;should return an empty array if you ask for a negative per_page number&#8217; do
    array = [&#8221;a&#8221;,&#8221;b&#8221;,&#8221;c&#8221;,&#8221;d&#8221;,&#8221;e&#8221;]
    current_page = 1
    show_per_page = -5
    expected_array = []
    (array.paginate(current_page, show_per_page)).should == expected_array
  end
end</strong>
</pre>
]]></content:encoded>
			<wfw:commentRSS>http://www.desimcadam.com/archives/8/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>About Kathy</title>
		<link>http://www.desimcadam.com/archives/7</link>
		<comments>http://www.desimcadam.com/archives/7#comments</comments>
		<pubDate>Wed, 28 Mar 2007 02:54:26 +0000</pubDate>
		<dc:creator>desi.mcadam</dc:creator>
		
	<category>Uncategorized</category>
		<guid isPermaLink="false">http://www.desimcadam.com/archives/7</guid>
		<description><![CDATA[Last night I read Kathy Sierra&#8217;s blog about the threats and comments that she has been receiving and I have to tell you that it infuriated me. My immediate thought was, &#8220;And people wonder why we have so few women in the industry and even less who are willing to be a part of the [...]]]></description>
			<content:encoded><![CDATA[<p>Last night I read <a href="http://headrush.typepad.com/creating_passionate_users/2007/03/as_i_type_this_.html%22">Kathy Sierra&#8217;s</a> blog about the threats and comments that she has been receiving and I have to tell you that it infuriated me. My immediate thought was, &#8220;And people wonder why we have so few women in the industry and even less who are willing to be a part of the blogsphere&#8221;. It is incidents like these that make it so difficult to choose IT and Development as a career.  These guys may live behind anonymous names while on the internet but I can almost bet that they have at least some behavior that comes out in their day to day work life that causes women around them grief.  Now I have made some assumptions here.. I am assuming these are men but I could be wrong.. I doubt it but I could be. Regardless, this sort of thing should not be tolerated. I would like to know how many men receive threats like these? I am speaking of threats against your life or comments as humiliating as the ones left on her blog?</p>
<p>I hate to make it a &#8220;women&#8221; issue but until some men come forward and say that these sort of things happen to them as well then I have no other choice than to believe these things were said because she is a woman. I was having a discussion with someone I respect a great deal about this last night and his response was that when you put yourself in such a celebrity position you have to expect this sort of thing. He also stated that you should simply ignore it because by not ignoring it we are giving them the attention they are looking for. I completely disagree. By ignoring the situation we indicate to the people who do this sort of thing that it is okay to behave this way. That is not the message that I want to send nor is it the message that I think our community should send.  As for the celebrity comment, even celebrities take death threats seriously. My friends response to that was that celebrities only concern themselves with substantiated threats.  So what then makes a substantiated threat on the internet? Does someone have to finally show up at your door with a gun to make it legit?</p>
<p>Our industry is one of the few industries that I know of where your career can be made or broken by your blogging behaviors. Blogging is one of the ways in which we share our ideas and thoughts&#8230; its part of what we do. I have always had a problem with it being okay to treat someone with disrespect regardless of the forum. Rudeness should not be tolerated but I have heard time and time again from people in this community comments such as &#8220;Oh it is just part of it&#8221; or &#8220;It is just our way&#8221;. It should not be tolerated no matter what the physical makeup of the individual being treated rudely is.</p>
<p>I know very few men who would look a women in the eye and call her a &#8220;cunt&#8221;. They know the level of insult that word carries and most don&#8217;t want to be the deliverer of it. Why should it be any less insulting when some coward does it over the internet? I also know very few men who would stand around and let that be said to women in their presence. I doubt my friend would hear that and say &#8220;Just ignore him .. he&#8217;s an asshole and if you let it bother you then you are just giving in to his need for attention&#8221;. If he did then he isn&#8217;t a very good friend.</p>
<p>I am hoping that one day women won&#8217;t have to worry about these sorts of things because I actually do love my job and I want more women to see that our industry IS a place where they can exist in peace and actually be successful through hard work.</p>
<p>One last thing that my friend said to me that really got me: &#8220;The only reason this is a big deal is because she is a woman&#8230; if it were a man no one would give a fuck.&#8221; If that is really how men (my friend is male) feel in our community then we have a lot further to go than I thought. I want to believe that people value each other a little more than that. I value PEOPLE more than that. I do and will &#8220;give a fuck&#8221; no matter who the person is.</p>
<p>I hope that this does not stop Kathy or others from continuing to post. It is like any other threat, if we let it push us down then it will never go away. Her situation may make it such that she feels she must stop posting or speaking and that is her decision but I hope that we are able to fight this sort of thing and stand up to this type of behavior. MLK once said &#8220;When you are right you cannot be too radical; when you are wrong, you cannot be too conservative.&#8221; I am starting to really get that statement.</p>
<p>This is also posted to <a href="http://www.desimcadam.com/www.devchix.com">Devchix</a>
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.desimcadam.com/archives/7/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>An Introduction to Selenium IDE</title>
		<link>http://www.desimcadam.com/archives/6</link>
		<comments>http://www.desimcadam.com/archives/6#comments</comments>
		<pubDate>Mon, 19 Feb 2007 23:51:44 +0000</pubDate>
		<dc:creator>desi.mcadam</dc:creator>
		
	<category>Agile</category>
	<category>Selenium</category>
		<guid isPermaLink="false">http://www.desimcadam.com/archives/6</guid>
		<description><![CDATA[On my current project we are building a web based application that allows the user to sign up for a service. The signup process is a series of pages for gathering a variety of information (about 8 or so pages). Now&#8230; I am a bit on the lazy side so a while back I started [...]]]></description>
			<content:encoded><![CDATA[<p>On my current project we are building a web based application that allows the user to sign up for a service. The signup process is a series of pages for gathering a variety of information (about 8 or so pages). Now&#8230; I am a bit on the lazy side so a while back I started using the Selenium IDE to record scripts for moving me to the location in the app that I was interested in. The other day one of the non-techinical folk on the team asked me how to use the Selenium IDE and so I decided to write up a blog post about it. There are a couple of posts out there already in addition to the information on <a href="http://www.openqa.org">OpenQA</a> but I figure one more post won&#8217;t hurt. It really is a very good tool for all types of people from sys admins, PM&#8217;s, Business Analysts, developers, to end users doing beta testing. I decided to break up the information based on questions I was asked when showing a couple of folks how to use the app.</p>
<p><strong>What is Selenium?</strong><br />
<a href="http://www.openqa.org/selenium/">OpenQA</a> says: Selenium is a UI test tool for web applications. Selenium tests run directly in a browser, just as real users do. Those tests can run in Internet Explorer, Mozilla and Firefox on Windows, Linux, and Macintosh. No other test tool covers such a wide array of platforms.</p>
<p><strong>What is Selenium IDE?</strong><br />
<a href="http://www.openqa.org/selenium-ide/">OpenQA</a> says: Selenium IDE is an integrated development environment (thats what IDE stands for for those who don&#8217;t know) for Selenium tests. It is implemented as a Firefox extension, and allows you to record, edit, and debug tests. Selenium IDE includes the entire Selenium Core, allowing you to easily and quickly record and play back tests in the actual environment that they will run. Selenium IDE is not only a recording tool: it is a complete IDE. You can choose to use its recording capability, or you may edit your scripts by hand. With autocomplete support and the ability to move commands around quickly, Selenium IDE is the ideal environment for creating Selenium tests no matter what style of tests you prefer.</p>
<p><strong>Installation:</strong><br />
A firefox extension is an installable enhancement to the browser&#8217;s functionality and add features to the application or allows existing features to be modified. Since Selenium IDE is a Firefox extension you get it by downloading and installing the firefox extension. Oh and installing extensions does require you to restart firefox so just keep that in mind before you go any further.<br />
1. Go to <a href="http://www.openqa.org/selenium-ide%3E%3C/a%3EOpenQA%3C/a%3E%20and%20click">OpenQA</a><br />
2. Click the firefox extensions link under the download bullet of the latest version. This will pop up a box and a button should appear briefly that says &#8220;Install Now&#8221;. Click on that.<br />
3. This will pop up a box and install the extension. Once its finished click the button on the bottom right corner that says &#8220;Restart Firefox&#8221;.</p>
<p><strong>How do I run/use the Selenium IDE?</strong><br />
The folks over at OpenQA already did a nice <a href="http://wiki.openqa.org/download/attachments/400/Selenium+IDE.swf?version=1">movie </a> so you can go watch that to get the basics.</p>
<p><strong>How do I run a script that I recorded in Firefox against Internet Explorer?</strong><br />
You would need to install Selenium Core or Selenium RC in order to be able to do this. Selenium Core has to be run on the same webserver as the application you are trying to test. So this probably won&#8217;t work for non-developer types who don&#8217;t have access to what is put on the webserver. If that is the case then you might want to look into using Selenium RC.For information on using and setting up Selenium Core take a look <a href="http://www.superexpert.com/Blog/Archive/4.aspx">Here</a> and for using Selenium RC look <a href="http://www.openqa.org/selenium-rc/tutorial.html">Here</a>.</p>
<p><strong>What is the difference between run, walk, and step?</strong><br />
The only difference between run and walk is that run is faster. They behave exactly the same way. Step on the other requires you to actually push the blue downward right angle arrow key to continue to the next step. When you use Run and Walk with breakpoints the pause button will turn into a pause/resume button. In order to keep going to the next breakpoint just hit the pause/resume button. If you hit play again from a breakpoint or from any command it will start the script over from the beginning.</p>
<p><strong>How do I use breakpoints?</strong><br />
Sometimes when you are running your scripts something breaks and you might want to see the state of the application just before that break or maybe the script exits before you get a chance to see the error on the screen in these cases breakpoints are awesome. Simply chose the line in your script where you want it to stop and put a break point. You do this by right clicking and selecting &#8220;Toggle Breakpoint&#8221;. Now when you hit the play button it will stop at that command. Additionally you can set a break point and then step through the application from that point on using the step feature.</p>
<p><strong>Can you give an example of when you would want to save the scripts in a different language.</strong><br />
Sometimes QA people or Buisness Analysts or even end users may want to submit the test they used to create the error back to the developers, in this case the developers may like to have the test in the language which they are writing the application in. It may also be the case that the developers themselves change the language based on what they were given or who they may be giving the tests to. In order to change the language the test is output in go to the Selenium IDE tool bar select Options -> Format and then select the language you want the test in.</p>
<p><strong>What is the difference between deleteCookie and deleteCookieAndWait?</strong><br />
In a nut shell don&#8217;t use the &#8220;andWait&#8221; commands. The &#8220;andWait&#8221; commands should be gone as of the latest version (they are still there but they all do the same things as their couterpart commands i.e deleteCookieAndWait does exactly what deleteCookie does) but for those still on the old version here is the explanation. Typically anytime you see the &#8220;andWait&#8221; or &#8220;withWait&#8221; piece tacked on to the end of a command it simply means that you want your script to stop executing any additional commands until it gets back a response saying the command has finished.</p>
<p><strong>How would you handle situations where you would need to change a piece of data entered each time you run the script?</strong><br />
To be honest I haven&#8217;t quite figured out how to do this. I am going to try to play around with it a bit and see if I can figure something out. As soon as I do I&#8217;ll post an answer to this.</p>
<p><strong>What does the log at the bottom tell me and how do I interpret what it is saying?</strong><br />
From the point of view of a non-technical person the log basically just tells you information about what has happened. Maybe you clicked the back button and the ide didn&#8217;t recognize that click and you then clicked some image. In this case you would get an error stating it could not find the element you told it to find. As it turns out the script isn&#8217;t on the right page so of course it wouldn&#8217;t find it. There are lots of reasons why you might get an error and usually if you step through your script you will find that you are not on the page you expect to be when the command was trying to be executed or some other trivial thing has happened. The log also has general information in the info tag that tells you which commands have been executed etc. All this maybe helpful when trying to figure out what has gone wrong.</p>
<p><strong>Gotchas?</strong><br />
The most common gotchas are around timing and caching/session issues. There are a few commands that you can insert into your scripts in order to help you get around this. For instance if you have a page which has some ajax calls then you might have an issue where your script trys to do something before the call has actually finished. In this case you can insert the command &#8220;pause&#8221; into the script.<br />
In another situation you may want to make sure that you are starting with a fresh session i.e. no cookies. The command &#8220;deleteCookie&#8221; can be used in order to make sure this happens.<br />
A full list of Selenium commands can be found <a href="http://release.openqa.org/selenium-core/nightly/reference.html">Here</a></p>
<p>So now you guys and girls go play around with it and post back your questions here. I&#8217;ll do my best to answer them or at least point you in the right direction.</p>
<p>Next post: Selenium On Rails!</p>
<p>Also check out these posts for information on Selenium IDE:</p>
<p>http://dynamitemap.com/selenium/ - very good introduction</p>
<p>http://ajaxian.com/archives/selenium-ide-07-released - some good questions and answers in the comments section
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.desimcadam.com/archives/6/feed/</wfw:commentRSS>
		</item>
	</channel>
</rss>
