<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DevChix</title>
	<atom:link href="http://www.devchix.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.devchix.com</link>
	<description>Boys can&#039;t have all the fun</description>
	<lastBuildDate>Tue, 26 Mar 2013 12:29:30 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>DevChix now hosted by Blue Box!</title>
		<link>http://www.devchix.com/2013/03/26/devchix-now-hosted-by-bluebox/</link>
		<comments>http://www.devchix.com/2013/03/26/devchix-now-hosted-by-bluebox/#comments</comments>
		<pubDate>Tue, 26 Mar 2013 01:33:36 +0000</pubDate>
		<dc:creator>DevChix</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.devchix.com/?p=1001</guid>
		<description><![CDATA[We are proud to announce that Blue Box is donating hosting for the Devchix blog. The support staff was helpful when answering questions and explained the solution without talking down to me. And thanks to devchix member Ivete for helping &#8230; <a href="http://www.devchix.com/2013/03/26/devchix-now-hosted-by-bluebox/">Continued</a>]]></description>
				<content:encoded><![CDATA[<p>We are proud to announce that <a href="http://www.bluebox.net">Blue Box</a> is donating hosting for the Devchix blog. </p>
<p>The support staff was helpful when answering questions and explained the solution without talking down to me. And thanks to devchix member <a href="http://ivetetecedor.com/">Ivete</a> for helping with the wordpress configuration.  </p>
<p>Established in 2003, <a href="http://www.bluebox.net">Blue Box</a> is a leading cloud hosting and managed services company. Nearly 600 companies use Blue Box&#8217;s managed cloud application hosting for infrastructure solutions. Its clients receive white-glove 24/7 support through its industry-leading technical implementation and management expertise. Blue Box leverages an assortment of open source technologies including <a href="http://www.openstack.org/">OpenStack</a>, EMC Razor and <a href="http://www.opscode.com/chef/">Opscode’s Chef</a> alongside Blue Box intellectual property and technologies. With ownership and control of the infrastructure, Blue Box delivers comprehensive, customizable hosting solutions with game-changing uptime to enterprises and applications of any size.</p>
<p>Thanks so much Blue Box!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devchix.com/2013/03/26/devchix-now-hosted-by-bluebox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problems setting up ASP.NET 4.0 web on IIS 7</title>
		<link>http://www.devchix.com/2012/09/27/problems-setting-up-asp-net-4-0-web-on-iis-7/</link>
		<comments>http://www.devchix.com/2012/09/27/problems-setting-up-asp-net-4-0-web-on-iis-7/#comments</comments>
		<pubDate>Thu, 27 Sep 2012 21:44:25 +0000</pubDate>
		<dc:creator>kris_rudin</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[Servers]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Error]]></category>
		<category><![CDATA[IIS]]></category>

		<guid isPermaLink="false">http://www.devchix.com/?p=923</guid>
		<description><![CDATA[I was attempting to set up a new ASP.NET 4.0 web on my dev machine, running Windows 7 and IIS 7. I ran into several errors, that I suspect others may encounter, and I had to search all over the &#8230; <a href="http://www.devchix.com/2012/09/27/problems-setting-up-asp-net-4-0-web-on-iis-7/">Continued</a>]]></description>
				<content:encoded><![CDATA[<p>I was attempting to set up a new ASP.NET 4.0 web on my dev machine, running Windows 7 and IIS 7. I ran into several errors, that I suspect others may encounter, and I had to search all over the web to find all the answers. So I’ve written this post in the hopes it saves some other dev the same headache I had!</p>
<p>So, first I created the new website and app pool identity, but when I hit the site for the first time, I got the following error:<br />
<strong>HTTP Error 500.19 &#8211; Internal Server Error<br />
The requested page cannot be accessed because the related configuration data for the page is invalid.</strong><br />
After searching for solutions, I found most had to do with permissions to the web.config file or actual locking of sections of the web.config file. I confirmed that the app pool identity had permissions to the file, and there were no locking attributes in the file. So something else had to be the issue. Then I found this post:<br />
<a title="http://stackoverflow.com/questions/9216158/the-requested-page-cannot-be-accessed-because-the-related-configuration-data-for" href="http://stackoverflow.com/questions/9216158/the-requested-page-cannot-be-accessed-because-the-related-configuration-data-for" target="_blank">http://stackoverflow.com/questions/9216158/the-requested-page-cannot-be-accessed-because-the-related-configuration-data-for</a><br />
It turns out that ASP.NET had not been configured fully on my machine. So, according to one of the answers on the post, the solution is to do the following steps:<br />
1. Open control panel<br />
2. Click on “Programs and Features”<br />
3. Click on ”Turn windows features on/off”<br />
4. Locate ”Internet Information services IIS” in the pop up window and expand its node<br />
5. Expand the ”World Wide Web Service” node<br />
6. Expand “Application Development Features” node<br />
7. Check the check box of”ASP.NET”<br />
8. Then click ok button<br />
9. You will need to restart your computer (go get a cup of coffee…)</p>
<p>After restarting, and hitting the site again, I got this new error:<br />
<strong>HTTP Error 500.21 &#8211; Internal Server Error</strong><br />
<strong> Handler &#8220;PageHandlerFactory-Integrated&#8221; has a bad module &#8220;ManagedPipelineHandler&#8221; in its module list</strong><br />
Another web search revealed that even though the step above enabled ASP.NET, it was not fully installed. This article shows how to finish the installation: <a title="http://stackoverflow.com/questions/9216158/the-requested-page-cannot-be-accessed-because-the-related-configuration-data-for" href="http://stackoverflow.com/questions/9216158/the-requested-page-cannot-be-accessed-because-the-related-configuration-data-for" target="_blank">http://stackoverflow.com/questions/6846544/how-to-fix-handler-pagehandlerfactory-integrated-has-a-bad-module-managedpip</a><br />
Basically, just open a command window and enter the command shown below (command is slightly different for 32-bit vs. 64-bit).<br />
64-bit:<br />
<strong>%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i</strong></p>
<p>32 bit:<br />
<strong>%windir%\Microsoft.NET\Framework\v4.0.21006\aspnet_regiis.exe -i</strong></p>
<p>If you get a permissions error, you need to run the window as an administrator. To do this, go to start |run, and type ‘cmd’, but hit Ctrl-Shift-Enter, instead of just Enter.<br />
After doing that, I hit the site again, and it worked! Hope this has helped!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devchix.com/2012/09/27/problems-setting-up-asp-net-4-0-web-on-iis-7/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Brainstorming a Conference Talk Proposal</title>
		<link>http://www.devchix.com/2012/08/28/brainstorming-a-conference-talk-proposal/</link>
		<comments>http://www.devchix.com/2012/08/28/brainstorming-a-conference-talk-proposal/#comments</comments>
		<pubDate>Tue, 28 Aug 2012 16:41:48 +0000</pubDate>
		<dc:creator>Lynn Root</dc:creator>
				<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[talk proposals]]></category>

		<guid isPermaLink="false">http://www.devchix.com/?p=778</guid>
		<description><![CDATA[Taken from Brainstorming: Writing a PyCon Proposal.  While this post is for PyCon, the US-based conference for Python developers, users, educators, and everyone with an interest in Python, this advice can apply to any language-centric conferences, even the topic suggestions &#8230; <a href="http://www.devchix.com/2012/08/28/brainstorming-a-conference-talk-proposal/">Continued</a>]]></description>
				<content:encoded><![CDATA[<p>Taken from <a title="roguelynn's Brainstorm: Writing a PyCon proposal" href="http://www.roguelynn.com/2012/08/27/brainstorm-writing-a-pycon-proposal/" target="_blank">Brainstorming: Writing a PyCon Proposal</a>.  While this post is for PyCon, the US-based conference for Python developers, users, educators, and everyone with an interest in Python, this advice can apply to<strong> any language-centric conferences</strong>, even the topic suggestions themselves.<br />
&#8212;-</p>
<p>Hey you! Ever thought about submitting a proposal?<br />
<em>What? oh no, no no no.<br />
</em>Why not?<br />
<em>What would I talk about?  I have nothing to say!</em></p>
<h4><em></em>So how about this:</h4>
<p>Tell me what talks <strong>you went to</strong> at previous years&#8217; PyCons that you found were pretty good (regardless of speaker performance)?</p>
<p>What about: what would you <strong>like to see</strong> at PyCon <em>this</em> year?</p>
<p>Ok.  You want to see those topics?</p>
<p>Why don&#8217;t <strong>you</strong> <strong>write the talk</strong> you want to see?</p>
<p>Bam, you have an idea.  (cheeky lil&#8217; blogger, aren&#8217;t I?)</p>
<p>No seriously: if you want to see a talk, write it yourself.  Or: take what it is that you do with Python (professionally, hobby-wise, side-jobs, whatevs), and write a talk on it.</p>
<p>There is <strong>significant</strong> interest in the &#8220;<strong>Python in the Wild</strong>&#8221; &#8211; such as, Python in (non-technical)<em> corporations</em> (product/services or used internally), <em>government</em>, <em>education</em> (CS degrees, high school programs, communities), and <em>science</em> (NASA, robotics).</p>
<p>There is <strong>always </strong>interest in popular topics, like deployment, big data, python packaging.  Not only do people have <strong>short memories</strong>, but every year, it will be many people&#8217;s <strong>first PyCon</strong>.</p>
<p>What tends to be <strong>popular</strong> are talks that compare frameworks/libraries/packages, critique a well-known/used tool/framework, and extreme talks (e.g. we&#8217;re getting down to the nitty gritty details of Twisted).  Topics that <strong>could do</strong> <strong>surprisingly well</strong> are security/cryptography, event-driven networking, and subjects that people should know about and probably default to industry standard, but don&#8217;t really know in depth.  <strong>Very interesting</strong> subjects include <em>alternatives to giants</em> like Django (e.g. Flask, Pyramid), or <em>where has Python failed.</em></p>
<p>There are <strong>important</strong> subject matters like <em>accessibility</em> within Python, and <em>diversity</em> &amp; <em>community</em> building.  Not all talks at PyCon are technical (my head would explode), but are needed and well-respected nonetheless.</p>
<h4>When proposing a talk:</h4>
<p><strong>Submit early.</strong>  You know how many proposals the Program Committee has to read through?  Not too many right now.  There is more time and patience to give feedback, give a second look after the speaker responds/edits.  The committee also is not that tired yet.  Submit on September 27th?  Dead tired.  Not really wanting to give feedback; just wanting this voting process over.</p>
<p><strong>Write an outline.</strong>  Yes just do it.  It can be bare bones, but it helps a lot to see where you&#8217;re going with this talk, if there is enough meat behind this talk or if it&#8217;s too ambitious for the time slot.   Don&#8217;t write out your whole talk.  <em>My n00b confession: I wrote a 2-page single-spaced essay for my proposed talk at OSCON. /facepalm</em></p>
<p>It also significantly helps the reviewer and you to <strong>associate length of time</strong> per bullet/subpoint/etc.  The reviewer has a sense of where you&#8217;re going, if it can actually be a full talk or if it&#8217;s too long.  It also helps you frame your actual talk when you come to flesh it out (because no one <em>writes </em>the damn talk before they propose it for the first time).</p>
<p>Nervous about actually speaking? <strong>Find a partner</strong>.  Either someone that shares your beginner level of speaking (both hold the burden of being nervous for your first talk) or someone that is already a seasoned speaker (you can relax a little!).</p>
<p><strong>Add links</strong> to the &#8216;about you&#8217;/bio portion, or <strong>more context</strong> in general about why you are the person to speak about this topic.  Did a project with Google Summer of Code?  Show the link.  GitHub repo?  Love to see it.  Published a paper on the topic? Well it might not be <em>read</em>, the fact that it&#8217;s there would give assurance <img src='http://www.devchix.com/devchix_wp/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> .  Remember though, provide the reviewers with more context on why you should be speaking on this topic (not just some random article you wrote about how lame PHP is (but it is lame).).  Note: it is <strong>not important</strong> that you haven&#8217;t spoke at PyCon or another conference before.  But do prove that why you should now.</p>
<p>Think <strong>posters</strong> might be a better option for your first time presenting something at PyCon?  With a talk, you have about 30 minutes.  You can plan out what you&#8217;re going to say, how your talk might lead to certain questions (pro tip: leave some unanswered/unaddressed items from your talk, and look awesome when you know the answer if they&#8217;re asked).  After the talk, for questions you don&#8217;t know, you also have the forgiveness of the audience:</p>
<blockquote><p>&#8220;Oh actually, hmm, that&#8217;s a very good question.  I&#8217;m not sure I can address that here right now, but catch me after the talk.&#8221;</p></blockquote>
<p>(and then sprint away&#8230;:D)</p>
<p>With a poster, you are defending your PhD thesis (practically), standing around for hours with some of the audience&#8217;s expectation of:</p>
<blockquote><p>&#8220;You know everything about this talk and I&#8217;m going to grill you because you&#8217;re stuck here.&#8221;</p></blockquote>
<p>It can be pretty demanding.  But it&#8217;s why posters are great for in-depth and/or unconventional topics.  There also a second shot at doing something with PyCon if you&#8217;re talk doesn&#8217;t get accepted since they are due Jan 15th.</p>
<p>I think these Google hangouts that <a title="PyCon Proposal Brainstorming via Google Hangout" href="http://www.roguelynn.com/2012/08/25/pycon-proposal-brainstorming-via-google-hangout/">PyLadies</a> did were productive; I got the feedback that they were helpful.  I also got the &#8220;zomg such a good idea but I can&#8217;t make it tonight.&#8221;  I&#8217;d like to see more, perhaps from the Program Committee itself (full disclosure, I am a part of the committee).  We have 4 weeks until talk proposals are due. <strong> Let&#8217;s help you give it your best shot. </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.devchix.com/2012/08/28/brainstorming-a-conference-talk-proposal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Panel on Women in Programming</title>
		<link>http://www.devchix.com/2012/05/26/panel-on-women-in-programming/</link>
		<comments>http://www.devchix.com/2012/05/26/panel-on-women-in-programming/#comments</comments>
		<pubDate>Sat, 26 May 2012 19:19:25 +0000</pubDate>
		<dc:creator>sarah_allen</dc:creator>
				<category><![CDATA[Events]]></category>

		<guid isPermaLink="false">http://www.devchix.com/?p=756</guid>
		<description><![CDATA[A panel discussion with Sarah Gray (@fablednet), co-founder of Mercury App Ginny Hendry (@ginnyhendry), organizer of Chicago Ruby Hack nights and RailsBridge Ruby on Rails Women Outreach Francesca Slade, engineer at Google Sue Kim, Resident Apprentice at 8th Light Stephanie &#8230; <a href="http://www.devchix.com/2012/05/26/panel-on-women-in-programming/">Continued</a>]]></description>
				<content:encoded><![CDATA[<p><iframe src="http://player.vimeo.com/video/42273238" frameborder="0" width="100%" height="400"></iframe></p>
<p>A panel discussion with</p>
<ul>
<li>Sarah Gray (<a href="https://twitter.com/#!/fablednet">@fablednet</a>), co-founder of Mercury App</li>
<li>Ginny Hendry (<a href="https://twitter.com/#!/ginnyhendry">@ginnyhendry</a>), organizer of Chicago Ruby Hack nights and RailsBridge Ruby on Rails Women Outreach</li>
<li>Francesca Slade, engineer at Google</li>
<li>Sue Kim, Resident Apprentice at 8th Light</li>
<li>Stephanie Briones, User Experience Craftsman at 8th Light</li>
</ul>
<p>Hosted by Doug Bradbury</p>
<p>Presented by <a href="http://university.8thlight.com" rel="nofollow" target="_blank">8th Light University</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.devchix.com/2012/05/26/panel-on-women-in-programming/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Awesome Speakers at Fluent 2012</title>
		<link>http://www.devchix.com/2012/05/25/awesome-speakers-at-fluent-2012/</link>
		<comments>http://www.devchix.com/2012/05/25/awesome-speakers-at-fluent-2012/#comments</comments>
		<pubDate>Fri, 25 May 2012 14:15:19 +0000</pubDate>
		<dc:creator>sarah_allen</dc:creator>
				<category><![CDATA[Events]]></category>

		<guid isPermaLink="false">http://www.devchix.com/?p=729</guid>
		<description><![CDATA[The Fluent Conference 2012 in San Francisco on May 29th-31st has an incredible line up of speakers.   The conference is generously supporting DexChix and other community projects with booth space.  Come join us! Lea Verou, will be giving a keynote &#8230; <a href="http://www.devchix.com/2012/05/25/awesome-speakers-at-fluent-2012/">Continued</a>]]></description>
				<content:encoded><![CDATA[<p>The Fluent Conference 2012 in San Francisco on May 29th-31st has an incredible line up of speakers.   The conference is generously supporting DexChix and other community projects with booth space.  <a href="http://fluentconf.com/fluent2012/public/register">Come join us</a>!</p>
<p>Lea Verou, will be giving a keynote on &#8220;Turning to the client-side&#8221; as well as another talk on &#8220;Demystifying Regular Expressions.&#8221; Sara Chipps, Javascript developer and Founder of Girl Develop It, will be giving an instructional talk on how to build your own Gmail browser extension. Sarah Mei, Pivotal engineer, Disapora contributor, and co-founder of RailsBridge will be sharing her insight on Backbone.js: Basics &amp; Beyond. Independent developer, Nicole Sullivan, also an independent developer, will be giving two talks &#8212; &#8220;Don&#8217;t feed the Trolls&#8221; on open source culture and a tech talk on CSS3 animations.</p>
<p>Here&#8217;s the schedule for the awesome women developers who will be speaking at Fluent:</p>
<p><a href="http://fluentconf.com/fluent2012/public/schedule/detail/24855">Backbone.js: Basics &amp; Beyond</a>, Sarah Mei, 1:45pm Tuesday, 05/29, Continental 5</p>
<p><a href="http://fluentconf.com/fluent2012/public/schedule/detail/24681">Build Your own GMail Browser Extension</a>, Sara Chipps, 2:35pm Thursday, 05/31, Continental 4</p>
<p><a href="http://fluentconf.com/fluent2012/public/schedule/detail/25977">Don&#8217;t Feed The Trolls</a>, Nicole Sullivan, 9:40am Wednesday, 05/30, Continental Ballroom 1-5</p>
<p><a href="http://fluentconf.com/fluent2012/public/schedule/detail/24761">Bob, Pulse, Pop, and Shake &#8211; 5 ways to replace JavaScript with CSS3 Animations</a>, Nicole Sullivan, 1:45pm Wednesday, 05/30, Continental 2-3</p>
<p><a href="http://fluentconf.com/fluent2012/public/schedule/detail/24929">/Reg(exp){2}lained/: Demystifying Regular Expressions</a>, Lea Verou, 2:35pm Wednesday, 05/30, Continental 2-3</p>
<p><a href="http://fluentconf.com/fluent2012/public/schedule/detail/24925">Turning to the Client Side</a>, Lea Verou, 9:50am Thursday, 05/31, Continental Ballroom 1-5</p>
<p><a href="http://fluentconf.com/fluent2012/public/schedule/detail/24106">You don&#8217;t need a Framework for that!</a>, Estelle Weyl, 1:45pm Thursday, 05/31, Continental 5</p>
<p>Speaker Info</p>
<ul>
<li>Sara Chipps  (<a href="http://twitter.com/sarajchipps" target="_blank">@sarajchipps</a>, Girl Develop It)</li>
<li>Sarah Mei (<a href="http://twitter.com/sarahmei" target="_blank">@sarahmei</a>, <a href="http://www.sarahmei.com/blog/">blog</a>)</li>
<li>Nicole Sullivan (<a href="http://twitter.com/stubbornella" target="_blank">@stubbornella</a>, <a href="http://www.stubbornella.org/content/">www.stubbornella.org</a>)</li>
<li>Lea Verou (<a href="http://twitter.com/leaverou" target="_blank">@leaverou</a>, <a href="http://lea.verou.me/">lea.verou.me</a>)</li>
<li>Estelle Weyl (<a href="http://twitter.com/estellevw" target="_blank">@estellevw</a>, <a href="http://www.standardista.com/">Standardista.com</a>)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.devchix.com/2012/05/25/awesome-speakers-at-fluent-2012/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Hello Meteor</title>
		<link>http://www.devchix.com/2012/05/22/hello-meteor/</link>
		<comments>http://www.devchix.com/2012/05/22/hello-meteor/#comments</comments>
		<pubDate>Tue, 22 May 2012 21:53:07 +0000</pubDate>
		<dc:creator>asynchrotron</dc:creator>
				<category><![CDATA[Javascript/AJAX]]></category>

		<guid isPermaLink="false">http://www.devchix.com/?p=724</guid>
		<description><![CDATA[(modified from http://asynchrotron.com/blog/2012/05/22/hello-meteor/) This post is for the benefit of all those who are feeling like they might be missing a step with frameworks like Backbone, Ember, (and now Meteor), et. al. Read on for recommendations on what to read &#8230; <a href="http://www.devchix.com/2012/05/22/hello-meteor/">Continued</a>]]></description>
				<content:encoded><![CDATA[<p>(modified from <a href="http://asynchrotron.com/blog/2012/05/22/hello-meteor/">http://asynchrotron.com/blog/2012/05/22/hello-meteor/</a>)</p>
<p>This post is for the benefit of all those who are feeling like they might be missing a step with frameworks like Backbone, Ember, (and now Meteor), et. al. Read on for recommendations on what to read up on to understand more about the problems they&#8217;re solving.</p>
<p><strong>First a brief note about MVC</strong></p>
<p>The Model-View-Controller application architecture (MVC) is used in most modern applications to separate an application’s data from its business rules and user interface. Briefly, Models represent an application’s data and functions to access it. Views represent information presented to the user. Controllers represent intermediary resources required to generate Views. The MVC pattern isn&#8217;t new (it can be traced back to Smalltalk), but it was popularized, along with the REST style of client-server API design by server-side web frameworks such as Rails and Django.</p>
<p><strong>So what&#8217;s all the fuss about JavaScript MVC frameworks (Backbone, Ember, et. al.)?</strong></p>
<p>If you think of the screens &#8211; or pages &#8211; in your application as different &#8220;states&#8221; in your application, server-side frameworks require a round trip back to the server when the user goes from one application state to another. This is fine for content-heavy apps or websites. Or if you&#8217;re accessing the pages via an ethernet cable or 802.11. But when you move to high latency connections and along the continuum &#8212; and I believe it really is a continuum &#8212; from a web site to a web app, you can deliver a much better user experience if you avoid the server round trip for each state change, and instead switch from state to state on the client, within a single browser page load cycle.</p>
<p>This saves you all of the overhead of destroying and recreating the DOM tree, flushing browser context (JavaScript, CSS, etc.) on each new page load. You also are transmitting less data on the wire (or ether) since HTML is generated on the client, and only JSON passed over the network. Both of these factors (page refresh time and network traffic optimization) are significant when you consider the fact that more and more internet usage is taking place via mobiles and tablets.</p>
<p>You would still need a server to authenticate users and perform other privileged operations, and to store the &#8220;official&#8221; version of the data that different clients synchronize with, but instead of sending dynamically created HTML to the client (a la aforementioned server-side frameworks) the server would send as much data as needed (typically as JSON) to the client, and the client would create all of the different application states dynamically. The problem with this approach &#8212; and I&#8217;ve been writing apps this way since 2008, without the benefit of any client side frameworks &#8212; is that they quickly turn into a mass of spaghetti code.</p>
<p>This is where the likes of Backbone, Ember, etc. come in. They are a re-imagination of the MVC application architecture for JavaScript application development in the client, where all (or nearly all) application states are handled in the client, in JavaScript. They provide a way to structure your JavaScript applications in a more organized MVC style.</p>
<p><a href="http://addyosmani.com/largescalejavascript/">Addy Osmani&#8217;s articles</a>, and especially his <a href="http://addyosmani.github.com/backbone-fundamentals/">Backbone Fundamentals book</a> are a great place to start reading more about this. Although it&#8217;s focused on one specific framework (Backbone), it has a good overview of MVC and how the pattern has moved from server side frameworks (like Rails, Django) to the client side (Backbone, et. al.).</p>
<p>I also wholeheartedly recommend his <a href="http://addyosmani.com/scalable-javascript-videos/">recent talks on providing structure to JavaScript apps</a>.</p>
<p>And this is a useful <a href="http://codebrief.com/2012/01/the-top-10-javascript-mvc-frameworks-reviewed/">comparison of various front-end frameworks</a>, although the conclusions should be taken with a grain of salt (it&#8217;s one persons&#8217;s perspective, and things are not quite as quantifiable as the article suggests):<br />
So, all of these are client side frameworks, which solve the problems of a) separating client side code into MVC, and b) optionally, allowing views to &#8220;observe&#8221; client side models, so that views get updated automatically as the data in the models is updated or as new data arrives from the server.</p>
<p>This gets you pretty far, but all of these applications have something else in common which the previously mentioned MVC frameworks don&#8217;t address: They need to send data back to the server and check in if data has changed on the server. In other words, they need to synchronize client side models with the server side models.</p>
<p><strong>Enter Meteor.</strong></p>
<p><a href="http://meteor.com">Meteor</a> is a full stack framework for end-to-end JavaScript applications. The beauty of coding it all in JavaScript is that you can easily implement the observer pattern (views watching for changes to the models) all the way to the server side. Meteor<br />
apps can subscribe to models (or subsets of models) on the server, and meteor takes care of all of the plumbing. This really is the bleeding edge of JS today.</p>
<p>For more on the problems Meteor solves, read the <a href="http://docs.meteor.com/">Meteor docs</a> from the intro section through to as many of the detailed concepts you&#8217;re interested in. Or come to <a href="http://www.meetup.com/js-chi/events/59833642">my talk at JS.Chi()</a> and we will work through it together. Here are the <a href="http://asynchrotron.com/blog/2012/05/22/hello-meteor/">slides from the talk</a>.</p>
<p>Have fun!</p>
<p><a href="http://asynchrotron.com">Pallavi</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.devchix.com/2012/05/22/hello-meteor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.NET Membership.GetUserNameByEmail Error: “The E-mail supplied is invalid.”</title>
		<link>http://www.devchix.com/2012/04/13/asp-net-membership-getusernamebyemail-error-the-e-mail-supplied-is-invalid/</link>
		<comments>http://www.devchix.com/2012/04/13/asp-net-membership-getusernamebyemail-error-the-e-mail-supplied-is-invalid/#comments</comments>
		<pubDate>Fri, 13 Apr 2012 16:46:51 +0000</pubDate>
		<dc:creator>kris_rudin</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[Tips and Tricks]]></category>

		<guid isPermaLink="false">http://www.devchix.com/?p=709</guid>
		<description><![CDATA[What the heck does this error message mean?? I had cause to find out when I was getting this error in a method that was simply updating the email address for an existing user. Mind you, I wasn’t creating a &#8230; <a href="http://www.devchix.com/2012/04/13/asp-net-membership-getusernamebyemail-error-the-e-mail-supplied-is-invalid/">Continued</a>]]></description>
				<content:encoded><![CDATA[<p>What the heck does this error message mean?? I had cause to find out when I was getting this error in a method that was simply updating the email address for an existing user. Mind you, I wasn’t creating a new user &#8211; I was just updating an existing user.  Since the error message is less than helpful, I thought I’d post this so anyone else getting this error won’t have to search as much as I did to find the solution.</p>
<p>Here’s how it came into play: I had created a secure web page to allow my client to manage some of their user accounts. They often had requests to change the email address for the account, so I created a simple form with a couple of text boxes (tbChangeEmail_Old and tbChangeEmail_New), a label to display the status of the attempt (lblChangeEmail_Status) and a Submit button.</p>
<p>Here’s the code I was using, when the user clicked the Submit button:</p>
<pre class="brush: cpp">
try
{
   string username = Membership.GetUserNameByEmail(tbChangeEmail_Old.Text);
   if (!string.IsNullOrEmpty(username))
   {
      MembershipUser user = Membership.GetUser(username, false);
      user.Email = tbChangeEmail_New.Text;
      Membership.UpdateUser(user);
      lblChangeEmail_Status.Text = &quot;Email address successfully changed.&quot;;
   }
   else
   {
      lblChangeEmail_Status.Text = &quot;Unable to find user with that email.&quot;;
   }
}
catch (Exception ex)
{
   lblChangeEmail_Status.Text = &quot;Error: &quot; + ex.Message;
}
</pre>
<p>It’s pretty straightforward – attempt to get the username using the ‘old’ email, and if the account isn’t found, display a message to the user. If we do find the username, then use it to get a MembershipUser object, set the Email property to the ‘new’ value, and update the user. Wrap that up in a try/catch block, and we’re good to go.</p>
<p>Everything worked fine, until today, when my client reported she was getting an error message for one user: “The E-Mail is invalid.” Huh. Did that mean the new email address wasn’t a valid email format? No, the new email was fine. Did it mean the old email didn’t work and the user wasn’t found? No, the test for !string.IsNullOrEmpty(username) catches that, and I verified that the account with the old email address was present. So what’s going on?</p>
<p>I did the usual trick of Googling for a solution, and found a lot of forum questions related to creating a new user, but then I finally found something about DUPLICATE emails, which, of course, are not allowed in the Membership database, based on our configuration. Aha! I did a quick SQL query of the DB, and sure enough, there was already an account with the ‘new’ email address, so it was not possible to update the ‘old’ account with the ‘new’ address!</p>
<p>So, since the existing error message is less than helpful in this case, I changed the logic in the catch block, so I could display a more helpful error on the web page:</p>
<pre class="brush: cpp">
catch (Exception ex)
{
   if (ex.Message.ToLower() == &quot;the e-mail supplied is invalid.&quot;)
      lblChangeEmail_Status.Text = &quot;There is another account with the &#039;new&#039; email address, so the &#039;old&#039; email account cannot be updated.&quot;;
   else
      lblChangeEmail_Status.Text = &quot;Error: &quot; + ex.Message;
}
</pre>
<p>Now, if we run across another case like this, my client will know exactly what’s going on. No more ambiguous error messages! J</p>
<p>So, not earth-shattering .NET stuff, but I figure what I learned might help someone else in the same situation. Happy coding!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devchix.com/2012/04/13/asp-net-membership-getusernamebyemail-error-the-e-mail-supplied-is-invalid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Displaying another app&#8217;s data using HTTParty and Kaminari</title>
		<link>http://www.devchix.com/2012/03/04/displaying-another-apps-data-using-httparty-and-kaminari/</link>
		<comments>http://www.devchix.com/2012/03/04/displaying-another-apps-data-using-httparty-and-kaminari/#comments</comments>
		<pubDate>Sun, 04 Mar 2012 22:49:27 +0000</pubDate>
		<dc:creator>Angel N. Sciortino</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.devchix.com/?p=657</guid>
		<description><![CDATA[I needed to access some data from another app and display it to users. The api side was a Rails 2.3.11 app and used will_paginate. It returned the json of a model collection and an association along with paginator information. &#8230; <a href="http://www.devchix.com/2012/03/04/displaying-another-apps-data-using-httparty-and-kaminari/">Continued</a>]]></description>
				<content:encoded><![CDATA[<p>I needed to access some data from another app and display it to users. The api side was a Rails 2.3.11 app and used will_paginate. It returned the json of a model collection and an association along with paginator information. The client side was a Rails 3.1 app using HTTParty and Kaminari.</p>
<h3>API Controller</h3>
<p>Rails 2.3.11 doesn&#8217;t include associations in the json, which is a known bug. So I returned a collection with the two models&#8217; information. I used an API key to authenticate, which I won&#8217;t describe in detail since it&#8217;s outside the scope of this post.</p>
<pre class="brush: ruby">
class Api::FoosController &lt; ApplicationController
  before_filter :authenticate_api_key!

  def foos_index
    @foos = Foo.paginate(:order =&gt; &quot;created_at desc&quot;, :per_page =&gt; 40, :page =&gt; params[:page], 
        :include =&gt; :bar)
    @records = @foos.collect { |foo| {:foo =&gt; foo, :bar =&gt; bar} }
    render :json =&gt;  {:records =&gt; @records, :total_entries =&gt; @foos.total_entries, 
        :per_page =&gt; @foo.per_page }
  end
end
</pre>
<h3>API Route</h3>
<p>The route requires the page number.</p>
<pre class="brush: ruby">
  map.connect &#039;/api/foos/foos_index/:page&#039;, :controller =&amp;gt; &quot;api/foos&quot;, :action =&amp;gt; :foos_index
</pre>
<h3>Client Model</h3>
<p>FooIndex.foos_index returns itself, along with accessors for the response, records, total_count, current_page, and limit_value. The last three are important for Kaminari. When I parsed the JSON, I symbolized the keys. Much prettier than strings.</p>
<pre class="brush: ruby">
class FooIndex
  include HTTParty
  base_uri ENV[&#039;FOO_APP_URL&#039;]
  default_params :api_key =&amp;gt; ENV[&#039;FOO_API_KEY&#039;]
  format :json
  attr_accessor :response, :records, :total_count, :current_page, :limit_value

  def initialize(response, records, total_count, current_page, limit_value)
    self.response = response
    self.records = records
    self.total_count = total_count
    self.current_page = current_page
    self.limit_value = limit_value
  end

  def self.foos_index(page)
    @current_page = page || 1
    response = get(&quot;/api/foos/foos_index/#{@current_page}&quot;)
    if response.success?
      json = JSON.parse(response.body, symbolize_names: true) 
      self.new(response, json[:records], json[:total_entries], page, json[:per_page])
    else
      raise response.response
    end
  end
end
</pre>
<h3>Client Controller</h3>
<p>I had to be creative with Kaminari using the paginate_array method. The options total_count and limit are used because the api doesn&#8217;t return the whole set of data, just the data for one page.</p>
<pre class="brush: ruby">
class FoosController &amp;lt; ApplicationController
  def index
    params[:page] ||= 1
    @foos_index = FooIndex.foos_index(params[:page])
    @paginated_array = Kaminari.paginate_array(@foos_index.records, 
        total_count: @foos_index.total_count, 
        limit: @foos_index.limit_value).page(@foos_index.current_page)
  end
end
</pre>
<h3>Client Route</h3>
<p>Page number is optional in the route. The controller defaults it to page 1.</p>
<pre class="brush: ruby">
  match &#039;/foos(/:page)&#039;, :controller =&amp;gt; :foos, :action =&amp;gt; :index
</pre>
<h3>Client View in HAML</h3>
<p> The json returned by the api doubles up the first part of the hash. I&#8217;m not sure of an elegant way to handle that.</p>
<pre class="brush: ruby">
= paginate @paginated_array

%table
  %thead
    %th Foo Name
    %th Bar Name
    - @foos_index.records.each do |record|
      %tr
        %td= record[:foo][:foo][:name]
        %td= record[:bar][:bar][:name]

= paginate @paginated_array
</pre>
<p>And that&#8217;s all it takes. Please comment with any comments or questions.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devchix.com/2012/03/04/displaying-another-apps-data-using-httparty-and-kaminari/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DevChix Speaking at Conferences 2012</title>
		<link>http://www.devchix.com/2012/03/03/devchix-speaking-at-conferences-2012/</link>
		<comments>http://www.devchix.com/2012/03/03/devchix-speaking-at-conferences-2012/#comments</comments>
		<pubDate>Sat, 03 Mar 2012 22:21:21 +0000</pubDate>
		<dc:creator>chiuki</dc:creator>
				<category><![CDATA[Events]]></category>

		<guid isPermaLink="false">http://www.devchix.com/?p=621</guid>
		<description><![CDATA[We&#8217;ve collected a list of the DevChix speaking at conferences (so far) this year. If you are at one of these conferences, be sure to say hi! January Akkana Peck &#8211; SCALE 10x &#8211; Los Angeles, CA, USA Estelle Weyl &#8230; <a href="http://www.devchix.com/2012/03/03/devchix-speaking-at-conferences-2012/">Continued</a>]]></description>
				<content:encoded><![CDATA[<p>We&#8217;ve collected a list of the DevChix speaking at conferences (so far) this year. If you are at one of these conferences, be sure to say hi!</p>
<h3>January</h3>
<ul>
<li><a class="external text" title="http://shallowsky.com" rel="nofollow" href="http://shallowsky.com">Akkana Peck</a> &#8211; <a class="external text" title="http://www.socallinuxexpo.org/scale10x" rel="nofollow" href="http://www.socallinuxexpo.org/scale10x">SCALE 10x</a> &#8211; Los Angeles, CA, USA</li>
<li><a class="external text" title="http://standardista.com/" rel="nofollow" href="http://standardista.com/">Estelle Weyl</a> &#8211; <a class="external text" title="http://www.gtugsf.com/events/47556102/" rel="nofollow" href="http://www.gtugsf.com/events/47556102/">GTUGSF Code Lab</a> &#8211; San Francisco, CA, USA</li>
</ul>
<h3>February</h3>
<ul>
<li><a class="external text" title="http://wndx.posterous.com" rel="nofollow" href="http://wndx.posterous.com">Lori Olson</a> &#8211; <a class="external text" title="http://confoo.ca" rel="nofollow" href="http://confoo.ca">ConFoo</a> &#8211; Montreal, Canada</li>
<li><a class="external text" title="http://standardista.com/" rel="nofollow" href="http://standardista.com/">Estelle Weyl</a> &#8211; <a class="external text" title="http://www.webstock.org.nz/" rel="nofollow" href="http://www.webstock.org.nz/">Webstock</a> &#8211; Wellington, New Zealand</li>
</ul>
<h3>March</h3>
<ul>
<li><a class="external text" title="http://jesstess.com" rel="nofollow" href="http://jesstess.com">Jessica McKellar</a> &#8211; <a class="external text" title="https://us.pycon.org/2012/" rel="nofollow" href="https://us.pycon.org/2012/">PyCon</a> &#8211; Santa Clara, CA, USA</li>
<li><a class="external text" title="http://sandimetz.com" rel="nofollow" href="http://sandimetz.com">Sandi Metz</a> &#8211; <a class="external text" title="http://www.rubynation.org/" rel="nofollow" href="http://www.rubynation.org/">RubyNation</a> &#8211; Washington, DC, USA</li>
<li><a class="external text" title="http://shallowsky.com" rel="nofollow" href="http://shallowsky.com">Akkana Peck</a> &#8211; <a class="external text" title="https://us.pycon.org/2012/" rel="nofollow" href="https://us.pycon.org/2012/">PyCon</a> &#8211; Santa Clara, CA, USA</li>
<li><a class="external text" title="http://standardista.com/" rel="nofollow" href="http://standardista.com/">Estelle Weyl</a> &#8211; <a class="external text" title="South by South West" rel="nofollow" href="http://www.sxsw.com">SXSW</a> &#8211; Austin, TX, USA</li>
<li><a class="external text" title="http://www.chariotsolutions.com" rel="nofollow" href="http://www.chariotsolutions.com">Andrea O. K. Wright</a> &#8211; <a class="external text" title="https://us.pycon.org" rel="nofollow" href="https://us.pycon.org">PyCon</a> &#8211; Santa Clara, CA, USA</li>
</ul>
<h3>April</h3>
<ul>
<li><a class="external text" title="http://blog.sqisland.com" rel="nofollow" href="http://blog.sqisland.com">Chiu-Ki Chan</a> &#8211; <a class="external text" title="http://windycitygo.org/" rel="nofollow" href="http://windycitygo.org/">WindyCityGo</a> &#8211; Chicago, IL, USA</li>
<li><a class="external text" title="http://blog.sqisland.com" rel="nofollow" href="http://blog.sqisland.com">Chiu-Ki Chan</a> &#8211; <a class="external text" title="http://phillyemergingtech.com/2012" rel="nofollow" href="http://phillyemergingtech.com/2012">Philly ETE</a> &#8211; Philadelphia, PA, USA</li>
<li><a class="external text" title="http://vanessahurst.com" rel="nofollow" href="http://vanessahurst.com">Vanessa Hurst</a> &#8211; <a class="external text" title="http://pgday.nycpug.org" rel="nofollow" href="http://pgday.nycpug.org">PG Day NYC</a> &#8211; New York, NY, USA</li>
<li><a class="external text" title="http://jessitron.blogspot.com" rel="nofollow" href="http://jessitron.blogspot.com">Jessica Kerr</a> &#8211; <a class="external text" title="Kansas City Developer Conference" rel="nofollow" href="http://kcdc.info">KCDC</a> &#8211; Kansas City, MO, USA</li>
<li><a class="external text" title="http://www.spellboundblog.com" rel="nofollow" href="http://www.spellboundblog.com">Jeanne Kramer-Smyth</a> &#8211; <a class="external text" title="Mid-Atlantic Regional Archives Conference " rel="nofollow" href="http://www.marac.info/">MARAC</a> &#8211; Cape May, NJ, USA</li>
<li><a class="external text" title="http://coreylatislaw.com" rel="nofollow" href="http://coreylatislaw.com">Corey Latislaw</a> &#8211; <a class="external text" title="http://phillyemergingtech.com/2012" rel="nofollow" href="http://phillyemergingtech.com/2012">Philly ETE</a> &#8211; Philadelphia, PA, USA</li>
<li><a class="external text" title="http://wndx.posterous.com" rel="nofollow" href="http://wndx.posterous.com">Lori Olson</a> &#8211; <a class="external text" title="http://railsconf2012.com" rel="nofollow" href="http://railsconf2012.com">RailsConf</a> &#8211; Austin, TX, USA</li>
<li><a class="external text" title="http://standardista.com/" rel="nofollow" href="http://standardista.com/">Estelle Weyl</a> &#8211; JS CodeLab &#8211; San Francisco, CA, USA</li>
</ul>
<h3>May</h3>
<ul>
<li><a class="external text" title="http://blog.sqisland.com" rel="nofollow" href="http://blog.sqisland.com">Chiu-Ki Chan</a> &#8211; <a class="external text" title="http://www.andevcon.com/AnDevCon_III" rel="nofollow" href="http://www.andevcon.com/AnDevCon_III">AnDevCon III</a> &#8211; Burlingame, CA, USA</li>
<li><a class="external text" title="http://elblinkin.info" rel="nofollow" href="http://elblinkin.info">LB Denker</a> &#8211; <a class="external text" title="http://tek12.phparch.com/" rel="nofollow" href="http://tek12.phparch.com/">PHP|Tek&#8217; 12</a> &#8211; Chicago, IL, USA</li>
<li><a class="external text" title="http://jessitron.blogspot.com" rel="nofollow" href="http://jessitron.blogspot.com">Jessica Kerr</a> &#8211; <a class="external text" title="http://DevTeach.com" rel="nofollow" href="http://DevTeach.com">DevTeach</a> &#8211; Vancouver, BC, Canada</li>
<li><a class="external text" title="http://standardista.com/" rel="nofollow" href="http://standardista.com/">Estelle Weyl</a> &#8211; <a class="external text" title="http://fluentconf.com/fluent2012" rel="nofollow" href="http://fluentconf.com/fluent2012">Fluent Conf</a> &#8211; San Francisco, CA, USA</li>
</ul>
<h3>June</h3>
<ul>
<li><a class="external text" title="http://blog.sqisland.com" rel="nofollow" href="http://blog.sqisland.com">Chiu-Ki Chan</a> &#8211; <a class="external text" title="http://www.mobileconference.nl" rel="nofollow" href="http://www.mobileconference.nl">Dutch Mobile Conference</a> &#8211; Amsterdam, Netherlands</li>
<li><a class="external text" title="http://standardista.com/" rel="nofollow" href="http://standardista.com/">Estelle Weyl</a> &#8211;  <a class="external text" title="http://www.mobileconference.nl" rel="nofollow" href="http://www.mobileconference.nl">Dutch Mobile Conference</a> &#8211; Amsterdam, Netherlands</li>
<li><a class="external text" title="http://standardista.com/" rel="nofollow" href="http://standardista.com/">Estelle Weyl</a> &#8211; <a class="external text" title="http://velocityconf.com/velocity2012" rel="nofollow" href="http://velocityconf.com/velocity2012">Velocity Conf</a> &#8211; Santa Clara, CA, USA</li>
</ul>
<h3>July</h3>
<ul>
<li><a class="external text" title="http://standardista.com/" rel="nofollow" href="http://standardista.com/">Estelle Weyl</a> &#8211; <a class="external text" title="http://www.oscon.com/oscon2012" rel="nofollow" href="http://www.oscon.com/oscon2012">OSCON</a> &#8211; Portland, OR, USA</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.devchix.com/2012/03/03/devchix-speaking-at-conferences-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Meet devChix member Susan Potter</title>
		<link>http://www.devchix.com/2011/07/13/meet-devchix-member-susan-potter/</link>
		<comments>http://www.devchix.com/2011/07/13/meet-devchix-member-susan-potter/#comments</comments>
		<pubDate>Wed, 13 Jul 2011 15:19:41 +0000</pubDate>
		<dc:creator>Carmelyne Thompson</dc:creator>
				<category><![CDATA[Introductions]]></category>
		<category><![CDATA[People]]></category>

		<guid isPermaLink="false">http://www.devchix.com/?p=598</guid>
		<description><![CDATA[Susan Potter is a wearer of many hats, but mostly software engineer and practicing applications architect (based in Chicago, IL). Employer: Finsignia Extras: Last month, Susan presented at WindyCityDB conference in Chicago, IL on Link-walking with Riak. She was a speaker &#8230; <a href="http://www.devchix.com/2011/07/13/meet-devchix-member-susan-potter/">Continued</a>]]></description>
				<content:encoded><![CDATA[<p><strong>Susan Potter</strong> is a wearer of many hats, but mostly <em>software engineer</em> and practicing <em>applications architect</em> (based in Chicago, IL).</p>
<p>Employer: <a href="http://finsignia.com">Finsignia</a></p>
<p>Extras: Last month, Susan presented at  WindyCityDB conference in Chicago, IL on <a href="http://windycitydb.org/sessions/#potter">Link-walking with Riak</a>. She was a speaker at Code PaLOUsa 2011 in June. Talk:  <a href="http://susanpotter.net/talks/codepalousa/2011/deployment-pipeline/">Deploying distributed software services to the cloud without breaking a sweat</a>. She is very active in the open source community with <a href="http://github.com/mbbx6spp">GitHub personal repositories</a>, <a href="http://github.com/twitter4r/twitter4r-core">Twitter4R</a> and <a href="http://gist.github.com/mbbx6spp">collection of Gists</a>.</p>
<hr />
<h3>Our short Q&amp;A with Susan Potter:</h3>
<p><strong>What is your technical background? </strong></p>
<p><strong></strong>At university I studied Mathematics, but audited Computer Science courses while writing an experimental parallel and distributed <abbr title="Partial Differential Equation">PDE</abbr> solver first in C, then in C++ and finally in Java, which didn&#8217;t have much utility other than to teach me how not to write multi-threaded or distributed software.After graduating I worked for investment banks in London before skipping off to a San Francisco startup building a B2B trading platform and have since been working as a senior software consultant for hedge funds, investment banks and technology startups all over the US.</p>
<p><strong>What industry sites or blogs do you read regularly? </strong></p>
<p><strong></strong>To be honest, I use my Twitter timeline and some private lists as a fairly reliable source of interesting, relevant and/or thought-provoking technical resources from all over the internet. However, the following links have been fonts of <em>recent </em>software engineering wisdom or great resources in the areas I currently practice within:</p>
<ul>
<li><strong>Erlang/OTP resourses:</strong><br />
<a href="http://steve.vinoski.net/blog/">Steve Vinoski&#8217;s blog</a>,<br />
<a href="http://erlang.org/pipermail/erlang-questions/">erlang-questions mailing list</a></li>
<li><strong>Haskell resources:</strong><br />
<a href="http://contemplatecode.blogspot.com/">Home of Haskell Weekly News</a>,<br />
<a href="http://donsbot.wordpress.com/">Control.Monad.Writer by Don Stewart</a></li>
<li><strong>Databases &amp; datastores:</strong><br />
<a href="http://nosql.mypopescu.com/">myNOSQL blog</a></li>
<li><strong>Scaling &amp; high-availability:</strong><br />
<a href="http://highscalability.com/">High Scalability</a></li>
<li><strong>Code:</strong><br />
<a href="http://github.com">GitHub</a> (yes there are other sites, but not as active or fast growing)</li>
</ul>
<p><strong>What are a few of your favorite development tools and why?</strong></p>
<p><strong> </strong><strong></strong>I recently wrote a blog post on the <a href="http://susanpotter.net/blogs/software/2011/05/software-engineering-tools-of-trade">(types of) tools that have made me a better software engineer</a>. In short these are: emacs, vi(m), make, gdb, UNIX commands / utilities, UNIX shells, LaTeX, Git. The blog post explains why.</p>
<p><strong>What tip or advice would you like to impart to women interested in programming? </strong></p>
<p><strong></strong><strong></strong>If you enjoy software development, always learning new things and are excited about the possibilities in this field, then do not let anyone discourage you from persuing it further. There will always be a job market for self-starters that can teach themselves even if they don&#8217;t have the right educational background. Make sure to back up what you have learned on your own. Open source projects, blog posts or screencasts that demonstrate your skills in the areas you are looking to get into help much more nowadays than simply having a CS degree with no public portfolio IMHO.</p>
<p><strong>If you were a computer part, what would you be? </strong></p>
<p><strong></strong><strong></strong>A CPU socket comes close. It provides multiple connections (mechanical and electrical) between the microprocessor and circuit board. In the technology community it seems I am always connecting people based on their interests and needs such as connecting business founders with technical founders or hiring managers with skilled developers (mechanical connections). Other times I am suggesting new architectures, software stacks, tools, etc. to solve the problems people I talk to are currently encountering (electrical connections).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devchix.com/2011/07/13/meet-devchix-member-susan-potter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
