<?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>Noemi Millman &#124; Triopter &#187; freelancing</title>
	<atom:link href="http://triopter.com/archive/category/freelancing/feed/" rel="self" type="application/rss+xml" />
	<link>http://triopter.com</link>
	<description>Hello.  My name is Noemi Millman, and Triopter is my web development agency.  We handcraft beautiful, dynamic websites.</description>
	<lastBuildDate>Fri, 06 Aug 2010 16:32:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>On the Pitfalls of Overseas Outsourcing</title>
		<link>http://triopter.com/archive/on-the-pitfalls-of-overseas-outsourcing/</link>
		<comments>http://triopter.com/archive/on-the-pitfalls-of-overseas-outsourcing/#comments</comments>
		<pubDate>Fri, 06 Aug 2010 16:32:23 +0000</pubDate>
		<dc:creator>Noemi Millman</dc:creator>
				<category><![CDATA[freelancing]]></category>
		<category><![CDATA[outsourcing]]></category>
		<category><![CDATA[web dev]]></category>

		<guid isPermaLink="false">http://triopter.com/?p=193</guid>
		<description><![CDATA[Outsourcing overseas can be tempting, and there are times when it is an appropriate approach to a web project.  But it can be dangerous if you do not have the technical expertise to properly evaluate the quality of the work.  Let me tell you a little story:
Recently a client came to me with [...]]]></description>
			<content:encoded><![CDATA[<p>Outsourcing overseas can be tempting, and there are times when it is an appropriate approach to a web project.  But it can be dangerous if you do not have the technical expertise to properly evaluate the quality of the work.  Let me tell you a little story:</p>
<p>Recently a client came to me with a small project: a single new page on her site, password protected to keep out casual browsers and search engines, but not requiring a high degree of security.</p>
<p>When I&#8217;m very busy, as I am now, I occasionally subcontract to other American-based freelancers with whom I&#8217;ve worked closely and whom I trust to produce excellent work.  Because this project was in a language I rarely work in, I decided the most efficient use of the client&#8217;s money would be to subcontract to someone with more experience in that language.  I reached out to some contacts and was put in touch with someone who received enthusiastic recommendations.</p>
<p>Not realizing that this individual (who will remain nameless) actually ran an outsourcing firm, I sent him some instructions; the page was presented to me the next morning.</p>
<p>To someone not closely familiar with web technology, it might have looked perfect.  You input the password.  If it was incorrect, you received a warning and nothing happened.  If it was correct, you were redirected to the actual page.</p>
<p>However, there were two <strong>major</strong> flaws in the implementation that suggested that the requirements &#8212; or the reasoning behind them &#8212; had not been understood:</p>
<h3>1. Use of Javascript</h3>
<p>The password verification was implemented entirely in Javascript &#8212; I recognized this immediately from the alert box that appeared when an incorrect password was input.  The problem with this is that it is entirely client-side: i.e. performed in the user&#8217;s browser.  A user could simply &#8220;view source&#8221; for the page to retrieve both the password and the URL of the destination page.</p>
<h3>2. The destination page was not password protected</h3>
<p>That is, if you visited the URL of the destination page without first going through the password page, there was no validation performed &#8212; it could be accessed without a password.  This defeated both of the purposes of the password protection: the URL could be shared among users, and if a user were to put a link from another website to the page, it could be picked up by search engines.</p>
<p>I sent the project back to the subcontractor, explaining my disappointment with the use of client-side authentication.  He agreed to have the flaws corrected, and  it was at this point that I learned that he was outsourcing overseas.  </p>
<p>When the &#8220;corrected&#8221; page was returned to me the next morning, the password authentication had indeed been moved server-side (meaning that a casual user could not retrieve the password or destination URL); but the two-page structure that permitted unauthenticated access to the destination page had not been corrected (the correct behavior would have been to use a &#8220;cookie&#8221; to create a &#8220;session&#8221; identifying the user, and to refuse to present the destination page if the session did not indicate that the user had entered the password).</p>
<p>Finally, disappointed, I decided to implement the page myself, and will not charge the client for the time spent by the subcontractor.  Lesson learned: be certain in advance whether the subcontractor I&#8217;m hiring outsources.  I could have saved myself some time and money if I had known this &#8212; I might have hired someone else, or at the very least would have been much more specific in my instructions (overseas developers will typically implement whatever takes the least thought to meet the instructions given, so you must give them very explicit instructions.)</p>
<p>The same caveats apply to anyone hiring for web development.  If you are considering hiring an outsourcing company rather than an American-based agency or freelancer, be certain that you have someone in house with the technical savvy to both a) communicate very detailed instructions to the outsourcer, and b) evaluate the resulting product for technical flaws and adherence to specifications.</p>
<p>In the end, please consider hiring your friendly neighborhood freelancer, who will make the effort to understand the problem you are trying to solve; will be able to offer suggestions as to alternate and possibly more efficient solutions; and will consider it a point of pride to solve it <em>correctly</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://triopter.com/archive/on-the-pitfalls-of-overseas-outsourcing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project Launch: Ad Council / Small Step Kids / Where the Wild Things Are</title>
		<link>http://triopter.com/archive/project-launch-ad-council-small-step-kids-where-the-wild-things-are/</link>
		<comments>http://triopter.com/archive/project-launch-ad-council-small-step-kids-where-the-wild-things-are/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 19:31:00 +0000</pubDate>
		<dc:creator>Noemi Millman</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[freelancing]]></category>
		<category><![CDATA[web dev]]></category>

		<guid isPermaLink="false">http://triopter.com/?p=76</guid>
		<description><![CDATA[I recently launched a new campaign on the Ad Council&#8217;s Small Step Kids website &#8212; a joint campaign with the new Where the Wild Things Are movie.  This project was my second with the Ad Council, and involved incorporating new elements into an existing design as well as some really fun custom design work, [...]]]></description>
			<content:encoded><![CDATA[<p>I recently launched a new campaign on the Ad Council&#8217;s Small Step Kids website &#8212; a joint campaign with the new Where the Wild Things Are movie.  This project was my second with the Ad Council, and involved incorporating new elements into an existing design as well as some really fun custom design work, and I was pleased to see it go live.  See some <a href="http://triopter.com/portfolio/ad-council-small-step-kids-where-the-wild-things-are/">project details</a> in my portfolio, or <a target="_blank" href="http://smallstep.gov/kids/flash/index.html">the live site</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://triopter.com/archive/project-launch-ad-council-small-step-kids-where-the-wild-things-are/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Freelancer&#8217;s Web Host</title>
		<link>http://triopter.com/archive/a-freelancers-web-host/</link>
		<comments>http://triopter.com/archive/a-freelancers-web-host/#comments</comments>
		<pubDate>Thu, 15 Nov 2007 18:48:02 +0000</pubDate>
		<dc:creator>Noemi Millman</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Web Hosting]]></category>
		<category><![CDATA[freelancing]]></category>

		<guid isPermaLink="false">http://triopter.com/archive/a-freelancers-web-host/</guid>
		<description><![CDATA[One thing every freelance web developer needs is a good web host.  But there are two sides to this requirement: one needs a reliable and speedy host for one&#8217;s own web presence, and at the same time one needs a great deal of space and flexibility in order to set up staging environments for [...]]]></description>
			<content:encoded><![CDATA[<p>One thing every freelance web developer needs is a good web host.  But there are two sides to this requirement: one needs a reliable and speedy host for one&#8217;s own web presence, and at the same time one needs a great deal of space and flexibility in order to set up staging environments for clients to review in-progress projects.  I&#8217;d additionally like my development host to provide a centralized location for version control, as well as a few other functions.  Since it&#8217;s not easy to find an inexpensive host that covers all of these bases, I&#8217;ve decided to separate these two functions out.</p>
<p><span id="more-22"></span></p>
<h3>Development Host</h3>
<p>For the client projects and a whole bunch of other useful functions, I&#8217;ll be using <a href="http://www.dreamhost.com">Dreamhost</a>.  Dreamhost provides what for most people&#8217;s purposes works out to unlimited space and data transfer for a very low monthly cost.  Lots of space is extremely useful to have when staging multiple sites, but it&#8217;s not generally a good formula for reliability (and indeed, in my experience, Dreamhost&#8217;s servers are very slow for dynamic sites, with comparatively poor uptime), which is why I&#8217;ll be keeping my public web presence elsewhere, as I&#8217;ll describe below.</p>
<p>Dreamhost is by no means the only host out there offering absurd amounts of space and bandwidth for an absurdly low price, but they have other advantages over the rest of the &#8220;massively overselling&#8221; hosts, which made this a very easy choice.</p>
<p>For one thing, they&#8217;re reputable.  They&#8217;ve been around for 10 years, and I&#8217;m pretty darn confident that they&#8217;ll neither take my money and run, nor collapse into bankruptcy tomorrow.</p>
<p>For another, they offer a whole lot of features besides the space and bandwidth.  The most important to me as a developer are:</p>
<ul>
<li>Shell access</li>
<li>A Subversion (SVN) repository for version control (this makes it extremely easy to synchronize one&#8217;s work across multiple computers &#8212; e.g. host, laptop, desktop &#8212; and to roll back changes if one makes a mistake)</li>
<li>Support for Ruby on Rails and Django</li>
<li>Sandboxed hosts and FTP accounts (i.e. I can create staging sites with completely independent user logins and root directories, and separate FTP drop-boxes for each client)</li>
<li>The ability to remap directories between the filesystem and web server</li>
<li>The ability to choose PHP 4 or 5 on a per-domain basis </li>
<li>Unlimited domains and subdomains</li>
<li>Direct access to update DNS</li>
<li>Database access from outside the network</li>
<li>Cron jobs</li>
<li>A very powerful control panel</li>
</ul>
<h3>My Web Presence</h3>
<p>I need my own public-facing site to load quickly and be up as close to &#8220;always&#8221; as possible.  As I&#8217;ve mentioned, Dreamhost&#8217;s servers aren&#8217;t the world&#8217;s snappiest or most reliable, especially for dynamic sites.  Worse, their support is not particularly responsive.  So the plan is to host my main site elsewhere.</p>
<p>I&#8217;ve had experience with a number of pretty decent hosts over the past few years.  While my inclination is to lean towards the slightly more expensive hosts, with somewhat better uptime and support (there are exceptions, but in hosting you often do get what you pay for), I&#8217;m on a pretty strict budget.  </p>
<p>My hosting requirements are pretty simple, and very straightforward: around 500MB of space and 10GB bandwidth; PHP/MySQL (preferably PHP 5); email; cron jobs; at least two domains (preferably more); good support; great uptime and performance.  More features would be great, but aren&#8217;t necessary.</p>
<p>I&#8217;ve narrowed down the field to three candidates for the moment <a href="http://www.vervehosting.com">Verve Hosting</a>, <a href="http://www.fluidhosting.com">Fluid Hosting</a>, and <a href="http://www.asmallorange.com">A Small Orange</a>.  Each of these has a pretty inexpensive hosting package that meets my needs.  I currently have personal domains hosted with Verve and Fluid, and I&#8217;m very happy with both.  I&#8217;ve also used ASO for a client site in the past.  Here&#8217;s my take on the pros and cons of each:</p>
<h4>Verve Hosting</h4>
<p>I am very fond of Verve, and have hosted with them for around 5 years now.  They&#8217;re my first personal host, and have hosted friends&#8217; sites and an online community that I&#8217;m active in.  As far as I can tell, they&#8217;re a very small operation, possibly even a one-woman show (and although I would never choose a host based solely on such a criterion, I do feel a sort of solidarity with any woman involved in a technical, male-dominated field).  Support is very personal and very responsive, and they&#8217;ve saved my butt on a couple of occasions when I&#8217;ve done supremely stupid things like asking them to delete my account because the domain the invoice mentioned an old domain.  They are, however, a basic cPanel host, with no additional services as far as I can tell.</p>
<h5>Pro:</h5>
<p>Good support; fast-enough servers; 5 domains, with unlimited subdomains and parked domains; already have one of my domains there, which helps minimize setup effort</p>
<h5>Con:</h5>
<p>CPanel control panel (user-friendly for less technical types, but I find it a bit limiting); no shell access; no information on site about software versions; uptime has occasionally been spotty (although generally good)</p>
<h4>Fluid Hosting</h4>
<p>Fluid is a very professional outfit with a long history in the industry and a great reputation, with a slightly more businessy target audience, as far as I can tell.  When I was at Sanky, we moved several of our clients there and were very pleased with the service.  Their servers and network are extremely zippy, and support is very good.  On the other hand, they very strictly limit server access, which is great from a security standpoint but a potential pain in the rear for a developer.</p>
<h5>Pro:</h5>
<p>Excellent support (includes phone support option); extremely fast servers for dynamic sites; H-Sphere control panel (more capable than cPanel and with a much better layout for virtual host document root directories); shell access can be had; take security seriously</p>
<h5>Con:</h5>
<p>Require a justification for shell access; PHP 4 only; only two domains on the account level I&#8217;m considering; access from outside network severely limited</p>
<h4>A Small Orange</h4>
<p>ASO has also been around for several years at this point, and generally has a positive reputation.  Sanky had a client hosted with them briefly.  That did not work out particularly well, but I hear so much more positive than negative about them that it may just have been bad luck.  I&#8217;m under the impression that they&#8217;ve grown fairly quickly, but the founder is still involved in a somewhat hands-on capacity, and they have a sort of &#8220;family&#8221; feel, and an excellent user community.</p>
<h5>Pro:</h5>
<p>Good support; unlimited domains; shell access available upon request; support for SVN, Ruby on Rails, and Django; excellent user community with tutorials on setting up various services; PHP 5 available</p>
<h5>Con:</h5>
<p>CPanel; spotty performance and uptime in previous experience (granted, a very small sample)</p>
<h3>Conclusion</h3>
<p>You know, the word &#8220;conclusion&#8221; makes me feel like I&#8217;m typing up an 8th grade lab report, but anyway&#8230; right now, the balance seems to be tipping towards ASO, knowing that if performance isn&#8217;t up to my standards, I have a couple of alternatives available.</p>
]]></content:encoded>
			<wfw:commentRss>http://triopter.com/archive/a-freelancers-web-host/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Going Freelance</title>
		<link>http://triopter.com/archive/going-freelance/</link>
		<comments>http://triopter.com/archive/going-freelance/#comments</comments>
		<pubDate>Sun, 11 Nov 2007 20:11:54 +0000</pubDate>
		<dc:creator>Noemi Millman</dc:creator>
				<category><![CDATA[freelancing]]></category>

		<guid isPermaLink="false">http://triopter.com/archive/going-freelance/</guid>
		<description><![CDATA[I know it&#8217;s been a long time since I&#8217;ve updated (ah, the eternal lament of the blogger), but I finally have something to write about.  
I very recently left my job at Sanky Communications to pursue a career as a freelance web developer.  
I have to say that I learned a lot in [...]]]></description>
			<content:encoded><![CDATA[<p>I know it&#8217;s been a long time since I&#8217;ve updated (ah, the eternal lament of the blogger), but I finally have something to write about.  </p>
<p>I very recently left my job at <a href="http://www.sankynet.com">Sanky Communications</a> to pursue a career as a freelance web developer.  </p>
<p>I have to say that I learned a lot in my time at Sanky, and I already miss the people there.  The organization does a lot of great projects for some really wonderful non-profit clients, and I&#8217;m especially proud of some of the projects we launched towards the end of my time there (I&#8217;m not certain whether Sanky&#8217;s agreements with the clients allow me to mention them specifically &#8212; something to ask them about, I suppose).  In the end, I was simply ready for a new challenge &#8212; working more hands-on and on a greater variety of projects.</p>
<p>In any case, I&#8217;m really looking forward to this as a brave new adventure and a chance to work on some different types of projects, develop new skills, and maybe work a bit more on the cutting edge of web development.  I&#8217;m also going to try to set aside some time for some fun side projects.  Oh, and maybe even slap a real design on this blog!</p>
<p>I&#8217;m taking a couple weeks off to relax a bit and pull everything together.  There&#8217;s going to be a lot of annoying administrative details to take care of before I really get going.  It&#8217;s surprising in a way that there&#8217;s no good central resource out ther for freelancers who need things like contract templates, time tracking and invoicing software, contact management and financial solutions, etc.  I&#8217;ll probably end up writing about a few of those in this blog.  In the meantime, any suggestions are appreciated!</p>
]]></content:encoded>
			<wfw:commentRss>http://triopter.com/archive/going-freelance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
