<?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>AmberWeinberg.com &#187; apps</title>
	<atom:link href="http://www.amberweinberg.com/tag/apps/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.amberweinberg.com</link>
	<description>Design, Development and Freelance Articles and Tutorials</description>
	<lastBuildDate>Tue, 07 Sep 2010 14:30:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>XHTML &amp; CSS For Mobile Development</title>
		<link>http://www.amberweinberg.com/xhtml-css-for-mobile-development/</link>
		<comments>http://www.amberweinberg.com/xhtml-css-for-mobile-development/#comments</comments>
		<pubDate>Tue, 07 Sep 2010 14:30:02 +0000</pubDate>
		<dc:creator>Amber Weinberg</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tutorial]]></category>
		<guid isPermaLink="false">http://www.amberweinberg.com/?p=3427</guid>
		<description><![CDATA[If you follow me on Twitter or on Facebook, you&#8217;ve probably heard me talk about...]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.amberweinberg.com/wp-content/uploads/2010/09/3158195615_3263e1cc6f_z-590x393.jpg" alt="" title="3158195615_3263e1cc6f_z" width="590" height="393" class="alignleft size-large wp-image-3432" /></p>
<p>If you follow me on Twitter or on Facebook, you&#8217;ve probably heard me talk about the mobile site I&#8217;ve been developing for Amazon Audible.</p>
<p>The mobile site consists of over 50 mockups that needed to be developed in HTML/CSS and made to work for the iPhone, Android and Blackberry. While coding simple HTML/CSS mockups sounded pretty easy, I found that there were several hurdles and differences from doing mobile HTML and normal HTML.</p>
<p>Doing a mobile site from scratch was a big learning experience, so I&#8217;d thought I&#8217;d share some of the things I learned, that differed greatly for mobile dev.</p>
<h3>Think Small</h3>
<p>Doing mobile development means you have to think small and in terms of percentages, not pixels. You can&#8217;t have a 320px layout for the iPhone, because if you rotate the phone into landscape mode, you&#8217;ll have a skinny site running down the middle. You have to make sure the layout stays consist, while expanding for both portrait and landscape modes on the phone.</p>
<h3>CSS3 Wonders</h3>
<p>One of the biggest changes that were difficult for me to get over, and one of the best, was the fact that I could use CSS3 freely. I no longer had to worry about Internet Explorer, and al of the prominent mobile devices support it.</p>
<p>When trying to do some tricky styling without adding additional markup, I caught myself remembering that I could actually do it with nth-of-type and not having to worry about it breaking! So feel free to break out your CSS3 and even some of your HTML5 skills.</p>
<h3>Special Meta Tags</h3>
<p>There are a lot of little quirks in some mobile devices, but since I have an iPhone I&#8217;ll mention the ones I found in that device. The iPhone has this neat trick, where it links phone numbers in the browser and allows you to click on them and call them instantly.</p>
<p>This is awesome, except for the fact when it tries to do it on non-phone numbers. It seems to have difficulty sometimes determining what is and isn&#8217;t a number, especially when it comes to things like part/order numbers.</p>
<p>The awesome thing about Apple, however, is the fact they came up with a ton of meta tags that allow you to manipulate the way the iPhone device reads the website. I think these tags may also work on the Android, but don&#8217;t quote me on that.</p>
<p>To disallow the linking of phone numbers of your site, simple add this in between your &lt;head&gt; tags:</p>
<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;meta name=&quot;format-detection&quot; content=&quot;telephone=no&quot;&gt;</pre></div></div>
<p>I also ran across a problem where the iPhone likes to blow up the size of text in landscape mode, which was obviously a no-no and broke our layout. This was fixed simply by adding this style to the body property:</p>
<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">body <span style="color: #00AA00;">&#123;</span> -webkit-text-size-adjust<span style="color: #00AA00;">:</span> <span style="color: #993333;">none</span><span style="color: #00AA00;">;</span> <span style="color: #00AA00;">&#125;</span></pre></div></div>
<h3>The IE of Mobile</h3>
<p>Of course, there&#8217;s always something that has to make a developer&#8217;s life difficult, and in this case it&#8217;s Blackberry. While it&#8217;s not <em>as</em> bad as Internet Explorer, it still became a thorn in my side.</p>
<p>Apparently, some models of Blackberries don&#8217;t support CSS3 properties, like opacity. I haven&#8217;t had any problems with advanced selectors though, so I&#8217;m not sure what is and isn&#8217;t supported.</p>
<p>The Blackberry also seemed to interpret spacing and paddings differently from the Android and the iPhone. For the most part, besides a few text differences, the Android and iPhone were quite similar in rendering the site.</p>
<h3>Browser-Testing</h3>
<p>Browser, or device, testing for mobile is a bit more difficult to do than normal web browser testing. While you can download pretty much al of the web browsers if you&#8217;re on a Windows machine (or use a simulator on a Mac), I&#8217;m fairly sure most devs don&#8217;t have an iPhone, Android AND a Blackberry.</p>
<p>For beginning testing, it was enough to resize my Firefox window as small as possible, but most of the testing I did on my iPhone, especially because the iPhone renders inputs and some backgrounds and paddings quite differently than Firefox.</p>
<p>For Android and Blackberry testing, I had to rely on the help of several of my Twitter friends (thanks guys!). A lot of the simulators you can download, especially the iPhone ones, never seem to actually renders the site like the actual device would. The client also had access to all three devices, so there were a big help in finding bugs.</p>
<h3>Teaching the Client</h3>
<p>The problem with percentage based designs, is that it&#8217;s impossible to have it &#8220;pixel-perfect&#8221; with the mockups, because you&#8217;re not using pixels. This was something I discovered early on, and something I had to teach the client about as well, especially because they had handed me size guides with the exact pixels everything was spaced out to.</p>
<p>This is a bit difficult to explain to a client who wants the mockups to look exactly the same in portrait and landscape mode, but with a little persistence and documentation, it wasn&#8217;t impossible for them to become relaxed in their layout expectations. You just have to be a bit more fluid when it comes to the mobile world.</p>
<h3>Progress</h3>
<p>I haven&#8217;t completed all the mockups yet, but you can <a href="http://amberweinberg.com/clients/audible">check out the progress on the mobile site</a> I&#8217;m working on for Audible for the next week or so before it&#8217;s taken down to become live.</p>
<h3>Your Thoughts</h3>
<p>What are some of the differences and difficulties you&#8217;ve experienced while coding for mobile sites?</p>
<h3  class="related_post_title">Related Posts You Might Like</h3><ul class="related_post"><li><a href="http://www.amberweinberg.com/awesome-free-design-developer-resources/" title="Awesome Free Design &#038; Developer Resources">Awesome Free Design &#038; Developer Resources</a></li><li><a href="http://www.amberweinberg.com/35-books-all-freelance-web-developers-should-read/" title="35 Books All Freelance Web Developers Should Read">35 Books All Freelance Web Developers Should Read</a></li><li><a href="http://www.amberweinberg.com/the-best-development-articles-of-amberweinberg-com/" title="The Best Development Articles Of AmberWeinberg.com">The Best Development Articles Of AmberWeinberg.com</a></li><li><a href="http://www.amberweinberg.com/10-things-i-learned-while-building-an-app/" title="10 Things I Learned While Building An App">10 Things I Learned While Building An App</a></li><li><a href="http://www.amberweinberg.com/what-is-the-future-of-web-development/" title="What is The Future of Web Development?">What is The Future of Web Development?</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.amberweinberg.com/xhtml-css-for-mobile-development/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>10 Great Project Planning Apps to Add to Your Toolkit</title>
		<link>http://www.amberweinberg.com/10-great-project-planning-apps-to-add-to-your-toolkit/</link>
		<comments>http://www.amberweinberg.com/10-great-project-planning-apps-to-add-to-your-toolkit/#comments</comments>
		<pubDate>Wed, 11 Aug 2010 14:31:10 +0000</pubDate>
		<dc:creator>James Adams</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[planning]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[tools]]></category>
		<guid isPermaLink="false">http://www.amberweinberg.com/?p=3296</guid>
		<description><![CDATA[A project management application will help you keep track of all of the details within your project. You can create service tickets, you can gather reminders of things to do, you can also have more than one manager assigned to a project. Here is a list of ten project management applications that you can add to your toolkit. ]]></description>
			<content:encoded><![CDATA[<p>A project management application will help you keep track of all of the details within your project. You can create service tickets, you can gather reminders of things to do, you can also have more than one manager assigned to a project. Here is a list of ten project management applications that you can add to your toolkit.</p>
<h3><strong>1. <a href="http://lighthouseapp.com/">Lighthouse</a></strong></h3>
<p><img src="http://imgur.com/tnkkq.jpg" alt="LightHouse" /><br />
You can do your work directly through your inbox, manage your beta testing, prioritize your tickets and meet your goals. You can categorize and organize your tasks easily and effectively. Lightbox allows you to attach your documents and images directly to the tickets.</p>
<p><strong>Free:</strong> 1 Project, 2 users<br />
<strong>Personal:</strong> $15 monthly, 3 Projects, 10 users<br />
<strong>Gold:</strong> $100 monthly, Unlimited Projects, Unlimited Members, 30GB Storage</p>
<h3><strong>2. <a href="http://www.rememberthemilk.com/">Remember the Milk</a></strong></h3>
<p><img src="http://imgur.com/qDDzT.jpg" alt="RememberTheMilk" /><br />
Remember the Milk is a personal project management application. You can organize items and events to match your style. You can collaborate with others on projects that you wish to complete. You can create as many tagged to-do lists as you wish, making it easier to complete your tasks.</p>
<p><strong>Free Signup</strong><br />
<strong>Pro Upgrade:</strong> $25 per year, gives you RTM applications for your mobile devices.</p>
<h3><strong>3. <a href="http://www.creativeprooffice.com/">Creative Pro Office</a></strong></h3>
<p><img src="http://imgur.com/7mBY5.jpg" alt="CreativeProOffice" /><br />
Creative Pro Office has tabbed navigation for clients, time sheets, projects, team members and more. The dashboard includes your calender, outstanding invoices, and upcoming projects. You can easily start a new project by inputting only a project name and client name.</p>
<p><strong>Free:</strong> 3 Projects, 1 Team Member, No Storage<br />
<strong>Solo:</strong> $5 monthly, 10 Projects, 3 Team Members, 1GB Storage<br />
<strong>Team:</strong> $30 monthly, Unlimited Projects, Unlimited Team Members, 10GB Storage</p>
<h3><strong>4. <a href="http://basecamphq.com/">Basecamp</a></strong></h3>
<p><img src="http://imgur.com/2Etlf.jpg" alt="Basecamp" /><br />
You can create to-do lists, perform file sharing and make message boards. The program also offers milestones, time tracking and project overviews.</p>
<p><strong>Basic:</strong> $24 monthly, 15 Projects, Unlimited Users, 5GB Storage<br />
<strong>Premium:</strong> $99 monthly, 100 Projects, Unlimited Users, 30GB Storage<br />
<strong>Max:</strong> $149 monthly, Unlimited Projects, Unlimited Users, 75GB Storage</p>
<h3><strong>5. <a href="http://www.deskaway.com/">Deskaway</a></strong></h3>
<p><img src="http://imgur.com/IY4RC.jpg" alt="Deskaway" /><br />
Deskaway has dynamic project management features such as project history, milestones, task lists and recurring tasks. You can schedule events, post to a shared blog and share your information efficiently with your team.</p>
<p><strong>Personal:</strong> $10 monthly, 10 Projects, Unlimited Users, 250MB Storage<br />
<strong>Plus:</strong> $49 monthly, 100 Projects, Unlimited Users, 10GB Storage<br />
<strong>Power:</strong> $99 monthly, Unlimited Projects, Unlimited Users, 25 GB Storage</p>
<h3><strong>6. <a href="http://www.goalkeeper.rs/">Goalkeeper</a></strong></h3>
<p><img src="http://imgur.com/jhiIt.jpg" alt="Goalkeeper" /><br />
With Goalkeeper, you can create and manage projects, task lists and tickets. With a click of a few buttons, you can change your deadlines and create ticket checklists. You can manage multiple projects quickly and easily.</p>
<p><strong>Free:</strong> 10 projects, 20 Users, 30MB storage<br />
<strong>Freelancer:</strong> $29 monthly, Unlimited Projects, Unlimited Users, 1 GB Storage<br />
<strong>Professional:</strong> $69 monthly, Unlimited Projects, Unlimited Users, 35GB Storage</p>
<h3><strong>7. <a href="http://www.copperproject.com/">Copper Project</a></strong></h3>
<p><img src="http://imgur.com/m5fJY.jpg" alt="Copper Project" /><br />
You can create to do lists, client lists, calendars and projects with Copper. You can examine budgets and put your estimated hours into the timeline. Copper will soon be integrated with MYOB, Xero and Freshbooks.</p>
<p><strong>Standard:</strong> $29 monthly, Unlimited Projects, 5 Users, 10GB Storage<br />
<strong>Studio:</strong> $49 monthly, Unlimited Projects, 25 users, 20GB Storage<br />
<strong>Enterprise:</strong> $199 monthly, Unlimited Projects, 200 Users, Unlimited Storage</p>
<h3><strong>8. <a href="http://www.projectspaces.com/">Project Spaces</a></strong></h3>
<p><img src="http://imgur.com/BArvy.jpg" alt="Project Spaces" /><br />
You can organize your files easily with simple to use tools. ProjectSpaces allows you to customize your project&#8217;s tabs, colors and homepage layout. Keep users informed with RSS and email.</p>
<p><strong>Personal:</strong> $29 monthly, 1 Project, 25 Users, 1GB Storage<br />
<strong>Premium:</strong> $129 monthly, 10 Projects, Unlimited Users, 10GB Storage<br />
<strong>Corporate:</strong> $749 monthly, 500 Projects, Unlimited Users, 100GB Storage</p>
<h3><strong>9. <a href="http://www.huddle.net/">Huddle</a></strong></h3>
<p><img src="http://imgur.com/3PAMr.jpg" alt="Huddle" /><br />
Huddle allows you to perform task management, online editing and document sharing. Huddle allows video conferencing and discussion with your team members.</p>
<p><strong>Personal:</strong> $8 monthly, 1 Project, Unlimited users, 1 GB Storage<br />
<strong>Small Team:</strong> $40 monthly, 5 Projects, Unlimited users, 2GB Storage<br />
<strong>Professional:</strong> $200 monthly, 25 Projects, Unlimited Users, 25GB Storage</p>
<h3><strong>10. <a href="http://teambox.com">Teambox</a></strong></h3>
<p><img src="http://imgur.com/OVfDV.jpg" alt="Teambox" /><br />
Teambox is consistently adding new features. You can share tasks, messages and files. You can create projects and access your data from anywhere on the web.</p>
<p><strong>Personal:</strong> $12 monthly, 6 projects, Unlimited Users, 200MB Storage<br />
<strong>Basic:</strong> $29 monthly, 20 Projects, Unlimited Users, 10GB Storage<br />
<strong>Corporate:</strong> $299 monthly, Unlimited Projects, Unlimited Users, 250 GB Storage</p>
<p>Most of these project management applications offer free trials. Project management doesn&#8217;t have to be a headache anymore.</p>
<h3  class="related_post_title">Related Posts You Might Like</h3><ul class="related_post"><li><a href="http://www.amberweinberg.com/billings-giveaway/" title="Review of BIllings &amp; Billings Touch. Win A Copy!">Review of BIllings &amp; Billings Touch. Win A Copy!</a></li><li><a href="http://www.amberweinberg.com/8-great-apps-that-every-freelance-developer-needs/" title="8 Great Apps that Every Freelance Developer Needs">8 Great Apps that Every Freelance Developer Needs</a></li><li><a href="http://www.amberweinberg.com/if-you-buy-just-1-book-buy-rework-by-jason-fried/" title="The Review of REWORK by Jason Fried of 37Signals">The Review of REWORK by Jason Fried of 37Signals</a></li><li><a href="http://www.amberweinberg.com/ecommerce-series-how-use-product-feeds-to-expand-your-business/" title="eCommerce Series: How Use Product Feeds To Expand Your Business">eCommerce Series: How Use Product Feeds To Expand Your Business</a></li><li><a href="http://www.amberweinberg.com/setting-up-your-desk-for-productive-web-development/" title="Setting Up Your Desk for Productive Web Development">Setting Up Your Desk for Productive Web Development</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.amberweinberg.com/10-great-project-planning-apps-to-add-to-your-toolkit/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Even Good Programmers Need To Review The Basics</title>
		<link>http://www.amberweinberg.com/even-good-programmers-need-to-review-the-basics/</link>
		<comments>http://www.amberweinberg.com/even-good-programmers-need-to-review-the-basics/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 14:30:42 +0000</pubDate>
		<dc:creator>Alex Katrompas</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[improvement]]></category>
		<guid isPermaLink="false">http://www.amberweinberg.com/?p=3218</guid>
		<description><![CDATA[In twenty years of programming and managing programmers I have seen great programmers and I’ve...]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-3220" title="programmer" src="http://www.amberweinberg.com/wp-content/uploads/2010/07/programmer.jpeg" alt="" width="194" height="140" />In twenty years of programming and managing programmers I have seen great programmers and I’ve seen programmers that couldn’t write “Hello World” without a bug. This isn’t about the latter, it’s about real world examples of good engineers making the most basic mistakes (myself included). Here are few coding bad practices I’ve observed in every production environment in which I’ve been.</p>
<h3>back end sneaking up front</h3>
<p>Everyone knows to keep the interface, processing, and data layers separate and interact only through proper calls. The proper practice is for a function or method to return only the “answer” or to “do the job” and do nothing else. It’s the UI layer that calls the function, gets the return value, and then decides what to show the user. Just yesterday I made a mistake that violated this rule which is also what prompted me to write this blog.</p>
<p>I’ve observed this rule being broken more and more in very subtle ways. Modern IDEs with visual editors have made the line between the UI and processing layers somewhat fuzzy. Yesterday I was writing an input verifier (Java) for a jTextField. The verifier tested the text and if it was good it returned true. If the text was bad the verifier threw up an error dialog and returned false. I was coding in the UI layer, right? I clicked the input verifier method in the visual editor and I was writing code for a UI component. All UI layer, right? Wrong. The input verifier is back-end code and should only return true or false. It’s the focus listeners in the UI that should be reading that return value and throwing up dialogs.</p>
<p>What’s the difference? Reusability. The first input verifier I wrote can’t be used again in any other context. The second version is a nice generic verifier I can use anywhere (and now is in my library). A very simple mistake but I’ve noticed this happening with many good programmers especially when working with visual editors.</p>
<h3>multiple returns (greater than two)</h3>
<p><img src="http://amk.cc/images/spaghetti.jpg" alt="" width="187" height="140" align="right" /></p>
<p>This is the practice of putting returns all through a method or function everywhere it’s possible the correct answer is achieved (i.e no further processing is technically needed). For example, a switch statement with 10 cases and 10 returns. Another example is several nested if/else statements where each part of each if/else has its own return. Personally I’m very strict on this one but whenever I’ve pointed this out to another programmer the invariable answer I get back is “only one return gets executed so what’s the problem?”</p>
<p>Two problems,… 1) the potential for bugs in functions and methods with many returns is very high, especially with nested if/else statements. If you enter a series of decision structures you should back out of that series properly and then return – not return in the middle, and 2) code optimization at both compile time and run time is adversely affected. Both the compiler and the CPU like functions and methods that have a single entry and exit point. This facilitates many useful optimizations. In any case using multiple returns is just plain sloppy programming – don’t do it.</p>
<h3>hard coding</h3>
<p>The classic example of this is writing a string for display to the user (e.g. an error message) and putting the string right into the code. The right way to do this is to place your strings or other literals elsewhere and have the code look-up the values.</p>
<p>Why? So you can change the values later without re-compiling. Anytime you need to go back into the code to change a literal you’re not only wasting time, you risk breaking something. This is probably not important (or even advised) in cases of client side web coding (i.e. JavaScript) because the overhead of the lookup is too high, but in the case of compiled back end code store your literals elsewhere.</p>
<h3>not using regular expressions</h3>
<p>Here is one that I used to be guilty of but I corrected myself years ago. I’ve seen so many programmers write text processing routines that do character by character searches. Text processing can be done easily by constructing regular expressions and calling the right string routine. Most reading this will say “duh!” but as a programming manager I’ve seen this more times than I can count. This bad habit is easy to explain, regular expressions seem complicated at first (they are not really). A lot of good programmers don’t get past that and never re-think it.</p>
<h3>over-complicating the basics</h3>
<p>Here’s an example I observed a few months ago. A programmer (a quite good one) was constructing a user preference system that would save and load user preferences from an XML file. It worked very well but it was large and complicated and it began to encompass other information besides just user preferences (application state, OS state, etc.). What’s a better and simpler solution?</p>
<p>We were in Java so the answer was serialization. We had a user preferences object so why go through all the trouble of reading/writing/processing XML? We threw out the XML and replaced it with simple serialization. When the application loads it picks up the serialized preferences object and when it shuts down it serializes that object back to disk. The programmer now only needs to be concerned with managing the preferences object (which he had to do anyway) and not how it’s saved or processed.</p>
<p>The code savings was several hundred lines and the complete elimination of the XML subsystem. The XML solution seemed excellent at first because it was infinitely scalable and could do all sorts of cool processing but it was totally unnecessary, it overcomplicated the application, and it begged for scope creep.</p>
<h3>re-inventing the wheel<span style="font-weight: normal; font-size: 13px;"> </span></h3>
<p><img src="http://amk.cc/images/caveman.jpg" alt="" width="280" height="200" align="left" /></p>
<p>By now everything even remotely useful has been written by someone somewhere and then probably refined by someone else and posted online. I was once hired on a job to manage a group of engineers. When I was hired they were already three months into writing complex math modules from scratch. Every single thing they were doing was freely available open source and no one even bothered to look for it.</p>
<p>I assume that is a dramatic example (8 engineers wasting 3 months) which doesn’t come up often but I see small examples of this all the time. Personally I don’t write anything I can copy. It’s become standard practice for me before I get into writing any object, function, method, etc. I do a quick search to see if someone else already did it and if it’s freely available.</p>
<h3>the most evil – the goto statement</h3>
<p><img src="http://amk.cc/images/goto.png" alt="" width="250" height="276" align="right" />I saved the best for last, the goto statement. I can’t hardly believe this is still an issue but it is. On another job I had a couple years back (again managing engineers) when I was first hired I looked into the code and found goto statements everywhere. They were used by every programmer in the company.</p>
<p>I asked a lead developer why this was acceptable practice and he said the previous manager advocated the use of goto. The code produced in this environment was completely unreadable and they averaged over a dozen reported bugs a day for a relatively small application. I even saw “loops” written purely with if and goto statements (hadn’t seen that since programming on my Apple IIc). I’m not going to explain why the goto is wrong and completely unnecessary. That topic has been beaten to death and it’s been proven wrong beyond a shadow of a doubt both academically and practically. If you’re using goto’s, stop it.</p>
<h3>good coders gone bad,… maybe just a little?</h3>
<p>In the first example I gave above I caught my mistake right away but it made me think about the fact that even experienced coders let things slip if they don’t stay disciplined on the basics. I also break the hard coding rule from time to time too (just being lazy). Anyone else feeling a little guilty on any of these?</p>
<h3  class="related_post_title">Related Posts You Might Like</h3><ul class="related_post"><li><a href="http://www.amberweinberg.com/deciding-the-next-step-in-your-freelance-business/" title="Deciding The Next Step In Your Freelance Business">Deciding The Next Step In Your Freelance Business</a></li><li><a href="http://www.amberweinberg.com/xhtml-css-for-mobile-development/" title="XHTML &amp; CSS For Mobile Development">XHTML &amp; CSS For Mobile Development</a></li><li><a href="http://www.amberweinberg.com/20-reasons-freelance-developing-can-stink/" title="20 Reasons Freelance Developing Can Stink">20 Reasons Freelance Developing Can Stink</a></li><li><a href="http://www.amberweinberg.com/contribute-fridays-what-are-you-learning/" title="Contribute Fridays: What Are You Learning?">Contribute Fridays: What Are You Learning?</a></li><li><a href="http://www.amberweinberg.com/ignore-the-ego/" title="Ignore The Ego">Ignore The Ego</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.amberweinberg.com/even-good-programmers-need-to-review-the-basics/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Awesome Free Design &amp; Developer Resources</title>
		<link>http://www.amberweinberg.com/awesome-free-design-developer-resources/</link>
		<comments>http://www.amberweinberg.com/awesome-free-design-developer-resources/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 14:30:55 +0000</pubDate>
		<dc:creator>Amber Weinberg</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[sdk]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">http://www.amberweinberg.com/?p=3064</guid>
		<description><![CDATA[I&#8217;ve had a ton of people asking me where to find great resources, and have...]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-large wp-image-3067" title="936394705_3de472288a_b" src="http://www.amberweinberg.com/wp-content/uploads/2010/07/936394705_3de472288a_b-590x354.jpg" alt="" width="590" height="354" /></p>
<p>I&#8217;ve had a ton of people asking me where to find great resources, and have actually come across a ton of them lately. I&#8217;d thought I&#8217;d share them all with you in one post. <img src='http://www.amberweinberg.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>If you&#8217;ve got some other resources, let me know in the comments!</p>
<h3>Podcasts</h3>
<ul>
<li><strong><a href="http://itunes.apple.com/us/podcast/the-big-web-show/id370445683">The Big Web Show</a></strong> &#8211; Hosted by Jeffery Zeldman and Dan Benjamin, The Big Web Show podcast invites different guests on each show and features a wide range of web topics.</li>
<li><strong><a href="http://audioboo.fm/users/2353/boos">Boagworld&#8217;s Audioboo</a></strong> &#8211; Boagworld Audioboo&#8217;s are only a few minutes short, but are on several different design, development and usability topics.</li>
<li><strong><a href="http://itunes.apple.com/us/podcast/boagworld-web-design-advice/id81014881">Boagworld Web Design Advice</a></strong> &#8211; Even though Boagworld is taking six months off from this podcast, it&#8217;s still a great resource for anything web design.</li>
<li><strong><a href="http://itunes.apple.com/us/podcast/boagworld-bites/id349507034">Boagworld Bites</a></strong> &#8211; Boagworld bites are pieces from the larger Web Design Advice show. These will continue to be published.</li>
<li><strong><a href="http://itunes.apple.com/us/podcast/the-dev-show/id352611845">The Dev Show</a></strong> &#8211; The dev show guys are kind of silly, but they&#8217;ve got great dev topics and resources. Just wished they&#8217;d stop talking about Ruby and MongoDB.</li>
<li><strong><a href="http://itunes.apple.com/us/podcast/freelance-radio/id265746983">Freelance Radio</a></strong><a href="http://itunes.apple.com/us/podcast/freelance-radio/id265746983"> </a>- Not necessarily about development, Freelance Radio from FreelanceSwitch still offers great advice on running your own web business.</li>
<li><strong><a href="http://itunes.apple.com/us/podcast/onmacdevelopment/id329872824">OnMacDevelopment</a></strong> &#8211; OnMacDevelopment caters specifically to Mac, iPhone and iPad development.</li>
<li><strong><a href="http://itunes.apple.com/us/podcast/the-pipeline/id354122274">The Pipeline</a></strong> &#8211; The Pipeline also isn&#8217;t specific to web development, but is an interview show that features some of the biggest names in the design and development world.</li>
<li><strong><a href="http://itunes.apple.com/us/podcast/sitepoint-podcast/id296180681">SitePoint Podcast</a></strong> &#8211; The official podcast of SitePoint.com, they offer news and opinions on design and development.</li>
<li><strong><a href="http://itunes.apple.com/us/podcast/think-vitamin-radio/id351340191">Think Vitamin</a> </strong> &#8211; Think Vitamin is Carsonified&#8217;s official podcast about web and development.</li>
<li><strong><a href="http://itunes.apple.com/us/podcast/37signals-podcast/id338108364">37signals Podcast</a></strong> &#8211; 37signals talks about the design and development of web apps. Great stuff.</li>
</ul>
<h3>E-Books</h3>
<ul>
<li><strong><a href="http://gettingreal.37signals.com/toc.php">Getting Real</a></strong> by 37signals</li>
<li><a href="http://designingfortheweb.co.uk/book/index.php"><strong>Designing for the Web</strong></a> by Mark Boulton</li>
</ul>
<h3>Blogs</h3>
<ul>
<li><a href="http://www.shareasale.com/r.cfm?b=205189&amp;u=395887&amp;m=24775&amp;urllink=&amp;afftrack="><strong>CoreCommerce</strong></a></li>
<li><a href="http://www.designm.ag/"><strong>DesignM.ag</strong></a></li>
<li><a href="http://echoenduring.com/"><strong>EchoEnduring</strong></a></li>
<li><a href="http://www.freelancefolder.com/"><strong>FreelanceFolder</strong></a></li>
<li><a href="http://www.freelanceswitch.com"><strong>FreelanceSwitch</strong></a></li>
<li><a href="http://lifehacker.com/"><strong>Lifehacker</strong></a></li>
<li><a href="http://mobile.tutsplus.com/"><strong>Mobiletuts</strong></a></li>
<li><a href="http://onextrapixel.com/"><strong>OnExtraPixel</strong></a></li>
<li><a href="http://www.scriptandstyle.com"><strong>Script &amp; Style</strong></a></li>
<li><a href="http://www.sixrevisions.com/"><strong>Six Revisions</strong></a></li>
<li><a href="http://www.spyrestudios.com/"><strong>SpyreStudios</strong></a></li>
<li><a href="http://carsonified.com/blog/"><strong>Think Vitamin</strong></a></li>
</ul>
<p><em>image by </em><a href="http://www.flickr.com/photos/hashir/"><em>hashmil</em></a></p>
<h3  class="related_post_title">Related Posts You Might Like</h3><ul class="related_post"><li><a href="http://www.amberweinberg.com/useful-and-free-code-snippets/" title="Useful (and free!) Code Snippets">Useful (and free!) Code Snippets</a></li><li><a href="http://www.amberweinberg.com/xhtml-css-for-mobile-development/" title="XHTML &amp; CSS For Mobile Development">XHTML &amp; CSS For Mobile Development</a></li><li><a href="http://www.amberweinberg.com/35-books-all-freelance-web-developers-should-read/" title="35 Books All Freelance Web Developers Should Read">35 Books All Freelance Web Developers Should Read</a></li><li><a href="http://www.amberweinberg.com/the-best-development-articles-of-amberweinberg-com/" title="The Best Development Articles Of AmberWeinberg.com">The Best Development Articles Of AmberWeinberg.com</a></li><li><a href="http://www.amberweinberg.com/10-things-i-learned-while-building-an-app/" title="10 Things I Learned While Building An App">10 Things I Learned While Building An App</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.amberweinberg.com/awesome-free-design-developer-resources/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>8 Awesome Sites From Designers &amp; Developers</title>
		<link>http://www.amberweinberg.com/5-sites-from-designers-developers/</link>
		<comments>http://www.amberweinberg.com/5-sites-from-designers-developers/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 14:30:39 +0000</pubDate>
		<dc:creator>Amber Weinberg</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[branding]]></category>
		<guid isPermaLink="false">http://www.amberweinberg.com/?p=2973</guid>
		<description><![CDATA[You can say that I&#8217;m super swamped this week and unable to contribute an awesome...]]></description>
			<content:encoded><![CDATA[<p>You can say that I&#8217;m super swamped this week and unable to contribute an awesome post today. Or instead you can sit back, relax, and look at this fine collection of awesome sites from designers and developers. Don&#8217;t hate.</p>
<p><a href="http://ff0000.com/"><img class="alignleft size-large wp-image-2995" title="screenshot_09" src="http://www.amberweinberg.com/wp-content/uploads/2010/06/screenshot_09-590x471.jpg" alt="" width="590" height="471" /></a><br />
<a href="http://hugsformonsters.com/"><img class="alignleft size-large wp-image-2982" title="screenshot_06" src="http://www.amberweinberg.com/wp-content/uploads/2010/06/screenshot_06-590x455.jpg" alt="" width="590" height="455" /></a></p>
<p><a href="http://getfinch.com/"><img class="alignleft size-large wp-image-2974" title="screenshot_01" src="http://www.amberweinberg.com/wp-content/uploads/2010/06/screenshot_013-590x479.jpg" alt="" width="590" height="479" /></a></p>
<p><a href="http://www.drawar.com/"><img class="alignleft size-large wp-image-2975" title="screenshot_02" src="http://www.amberweinberg.com/wp-content/uploads/2010/06/screenshot_021-590x491.jpg" alt="" width="590" height="491" /></a><a href="http://launchlist.net/"><img class="alignleft size-large wp-image-2976" title="screenshot_03" src="http://www.amberweinberg.com/wp-content/uploads/2010/06/screenshot_03-590x464.jpg" alt="" width="590" height="464" /></a><a href="http://www.00one.com/shop.html"><img class="alignleft size-large wp-image-2978" title="screenshot_04" src="http://www.amberweinberg.com/wp-content/uploads/2010/06/screenshot_04-590x402.jpg" alt="" width="590" height="402" /></a><a href="http://app.laud.it/"><img class="alignleft size-large wp-image-2979" title="screenshot_05" src="http://www.amberweinberg.com/wp-content/uploads/2010/06/screenshot_05-590x546.jpg" alt="" width="590" height="546" /></a><a href="http://www.wireframeshowcase.com/"><img class="alignleft size-large wp-image-2990" title="screenshot_07" src="http://www.amberweinberg.com/wp-content/uploads/2010/06/screenshot_07-590x501.jpg" alt="" width="590" height="501" /></a></p>
<p>If you know of more, please let me know. I am an avid geek collector of sites that I just look at and say &#8220;cool&#8221;! (This is not an official scientific design critique term.)</p>
<h3  class="related_post_title">Related Posts You Might Like</h3><ul class="related_post"><li><a href="http://www.amberweinberg.com/interview-with-francisco-of-finch/" title="Interview With Francisco of Finch">Interview With Francisco of Finch</a></li><li><a href="http://www.amberweinberg.com/41-questions-to-ask-before-you-start-a-web-project/" title="41 Questions To Ask Before You Start A Web Project">41 Questions To Ask Before You Start A Web Project</a></li><li><a href="http://www.amberweinberg.com/monetizing-your-app-the-business-of-freemium-on-the-web/" title="Monetizing Your App &#038; The Business of Freemium on the Web">Monetizing Your App &#038; The Business of Freemium on the Web</a></li><li><a href="http://www.amberweinberg.com/the-myth-of-the-finished-website-and-how-it-evolves/" title="The Myth of the Finished Website and How It Evolves">The Myth of the Finished Website and How It Evolves</a></li><li><a href="http://www.amberweinberg.com/brand-loyalty-isnt-dead-its-upped-its-game/" title="Brand Loyalty Isn&#039;t Dead, It&#039;s Upped It&#039;s Game">Brand Loyalty Isn&#039;t Dead, It&#039;s Upped It&#039;s Game</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.amberweinberg.com/5-sites-from-designers-developers/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Win A Lifetime Ninja Account From Codesnippit</title>
		<link>http://www.amberweinberg.com/win-a-lifetime-ninja-account-from-codesnippit/</link>
		<comments>http://www.amberweinberg.com/win-a-lifetime-ninja-account-from-codesnippit/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 16:00:31 +0000</pubDate>
		<dc:creator>Amber Weinberg</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[announcements]]></category>
		<category><![CDATA[apps]]></category>
		<guid isPermaLink="false">http://www.amberweinberg.com/?p=2807</guid>
		<description><![CDATA[In celebration of our beta launch, I though we&#8217;d have ourselves a fun contest! What&#8217;s...]]></description>
			<content:encoded><![CDATA[<p>In celebration of our beta launch, I though we&#8217;d have ourselves a fun contest!</p>
<h3>What&#8217;s the prize?</h3>
<p>I&#8217;m giving away a lifetime Ninja account to THREE lucky winners chosen at random. A ninja account means you get unlimited codesnipp.its to post each month, every month!</p>
<h3>What do you have to do to win?</h3>
<ul>
<li>Tweet about your favorite feature in codesnipp.it, what you plan to use it for, or whatever you&#8217;d like to say about us. Make sure you add @codesnippit and your user ID to the END of your tweet  so we know about it (and so others can see it).</li>
<li>Multiple tweets <strong>DO</strong> count this time! So tweet about us as much as you like for extra entries.</li>
<li>Feel free to share on Facebook as well, just make sure to drop a link to the status here in the comments (and make sure your account is public so we can see it!)</li>
</ul>
<h3>BONUS prize! (do I sound like a TV commercial yet???)</h3>
<p>Everyone who participates automatically gets an extra 10 codesnipp.its to use this month! See, in my world, everyones a winner. <img src='http://www.amberweinberg.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h3>Need an invite?</h3>
<p>Just send your email to info@codesnipp.it</p>
<p><strong>Contest starts now and ends at 3 p.m Friday the 11th. Good luck!</strong></p>
<h3><strong>WINNERS</strong></h3>
<p>We decided to give away SIX instead of three premium accounts because you guys are just too awesome! Congrats to:</p>
<ul>
<li>@AndrewChamp</li>
<li>@RyanOlson</li>
<li>@eTiger13</li>
<li>@HErzinger</li>
<li>@Ansjh</li>
<li>@TorchingIgloos</li>
</ul>
<h3  class="related_post_title">Related Posts You Might Like</h3><ul class="related_post"><li><a href="http://www.amberweinberg.com/random-musings-a-beta-launch/" title="Random Musings &amp; A Beta Launch">Random Musings &amp; A Beta Launch</a></li><li><a href="http://www.amberweinberg.com/xhtml-css-for-mobile-development/" title="XHTML &amp; CSS For Mobile Development">XHTML &amp; CSS For Mobile Development</a></li><li><a href="http://www.amberweinberg.com/10-great-project-planning-apps-to-add-to-your-toolkit/" title="10 Great Project Planning Apps to Add to Your Toolkit">10 Great Project Planning Apps to Add to Your Toolkit</a></li><li><a href="http://www.amberweinberg.com/developer-contest/" title="Developer Contest!">Developer Contest!</a></li><li><a href="http://www.amberweinberg.com/even-good-programmers-need-to-review-the-basics/" title="Even Good Programmers Need To Review The Basics">Even Good Programmers Need To Review The Basics</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.amberweinberg.com/win-a-lifetime-ninja-account-from-codesnippit/feed/</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
	</channel>
</rss>
