From the for loop to the generator in JavaScript
I recently spent some time writing JavaScript code and do reviews of JavaScript features. JavaScript has some nice language features that make it easy to write short and readable code. (On the other hand it is also quite easy to write horrible code with it.) In this article I try to show you how you can refactor your code to something more readable.
Stellar Phoenix Data Recovery V4 Mac Buy Windows 7 And Office 2010 Buy Windows Xp Sp3 Online Cheap Windows 7 Tesco Cheap Parallels Desktop Buy Photoshop Cs6 Online For Windows 7 Microsoft Windows Server 2003 Enterprise R2 Sp2 Education Discount For Ms Windows 7 Cheap Microsoft Office For Mac Buy Windows 8 Phone Buy Windows 7 3 Pack Download Word 2013 Oem Key Office Excel 2007
Imsi Turbocad Mac Designer V5
Reasons To Buy Windows 8 Microsoft Office Word 2010 (32-bit) Windows 7 Oem On Vmware Office Word 2010 (64-bit) Oem Key Cheap Laptops With Windows 7 Under 200 Buy Adobe Creative Suite 6 Master Collection Buy Windows 7 Best Buy Canada Corel Videostudio Pro X4 Ashampoo Burning Studio 7 Cheap Microsoft Office 2010 Standard Oem Buy Windows 7 Coa Microsoft Windows Vista Ultimate With Sp2 64 Bit Purchase Discount Upgrade Windows 8 Cheap Microsoft Office For Mac Buy Student Price Office Onenote 2010 Cheap Windows 7 64 Bit Oem Windows 7 Professional Games Vmware Workstation 7 Free Software Downloads Windows 7 Microsoft Windows 7 Professional (32 Bit) Autodesk Maya 2013 (32-bit) Windows 7 Pro 0a Word 2007 Discount Cheap Office 2011 Home And Business Mac Autodesk Autocad Civil 3d 2013 (32 Bit) Cheap Windows 7 Home Premium Upgrade Microsoft Office 2010 Discount Microsoft Windows Server 2008 R2 Datacenter Buy Discount Software Online Cheap Cs5 Master Collection Adobe Creative Suite 6 Master Collection Ls16 Multilanguage Esd Adobe Creative Suite 4 Master Collection Office 2011 Home And Business Download Cheap Microsoft Office 2011 Home Student For Mac Oem Cheap Microsoft Office 2011 Home Business For Mac Where To Buy Windows 7 Ultimate Quarkxpress 8 Mac Buy Asus 1101ha Windows 7 Buy Windows 7 Pro Online Purchase Oem Software Online Windows Server 2008 R2 Datacenter (64 Bit) Windows 7 Professional 8gb Memory Buy Mac Os 10.8 Windows 7 Professional Discount Win8 32 Buy Software Downloads Cheap Windows 7 India Windows 8 Professional Product Key Nik Software Viveza 2 Mac Buy Outlook Buy Windows 7 Ultimate Cd Windows 7 Professional Remote Desktop Multiple Monitors Windows 7 Ultimate 2012 Smith Micro Poserpro 2010 Mac Office Publisher 2003 Buy With Best Price Purchase Tomtom Maps Of Italy Download Windows 7 Operating System Buy Windows 7 Now Wait Windows 8 Cheap Mcafee Total Protection 2012 Oem Purchase Windows Xp Professional Corporate Sp3all Web Store Creative Suite 5 Buy Windows 7 Home Premium License Online Rosettastone Dutch Level 1, 2 3 Set Autodesk Mentalray Standalone 3.6.1a Buy Microsoft Crm 2011 Windows 7 Oem Vs Retail Buy Windows Xp Usb Adobe Indesign Cs5.5 Mac Autodesk Sketchbook Designer 2012 Office 2004 Student And Teacher Edition Mac Download Software For Cheap Autodesk 3ds Max 2011 Purchase Windows Xp Sp3all Real Cost Windows 8 X32 Mathworks Ptc Mathcad 14 Buy Adobe Photoshop Cs6 Extended Cheap Oem Download Microsoft Windows 7 Professional Autodesk Autocad Electrical 2012 (64-bit) Buy Windows 7 2011 Windows Vista Business With Sp2 64 Bit Best Price On Microsoft Office Basic Cheap Windows 7 Online Cheap Adobe Premiere For Mac Oem Buy Windows 7 Full Office Project Professional 2010 (32 Bit) Download Cheap Oem Software Purchase Dvd Architect 5 Telestream Screenflow 2 Mac Adobe Creative Suite 4 Design Standard Mac Microsoft Windows Server 2003 Datacenter R2 Sp2 (32 Bit) Elcomsoft Advanced Office Password Breaker 1.40 Buy Microsoft Visio Professional 2012 Adobe Illustrator Cs6 MacBuy Windows Ram Autodesk Autocad Raster Design 2009 Adobe Illustrator Cs5 Oem Version Sony Sound Forge 10 Busymac Busycal Mac Adobe Indesign Cs4
We may start with this non-fictional example:
/**
* Returns array of uids of selected items
*/
getSelected:function() {
var returnArray = new Array();
var modelFriendListItems = this.modelFriendListItems.getSelected();
for (var index = 0 ; index < modelFriendListItems.length ; ++index) {
if(!modelFriendListItems[index].isFacebookUser)
returnArray.push(modelFriendListItems[index].id);
}
return returnArray;
},
It’s just one function out of a class that does quite something typical. This function goes over a list of items (iterate) and builds an array out of some of this items (filter). A friend of mine does some ruby coding and in ruby this would look something like this:
this.modelFriendListItems.getSelected().select{|item| !item.isFacebookUser}.collect {|item| item[:id]}
This is quite short and still yet readable. In JavaScript you can go as well in the direction of more functional programming. So let us refactor the JavaScript example above over some iterations. The following examples use prototype.js because this framework extends the JavaScript array with some fancy functions.
(more…)


After a long day of meetings and other tedious manager work the perfect way to relax is to code. The best is a mini-projects where you see your results after an hour or so. I call these tasks “Plausch-Projekte” (“plah-oosh project” =”fun projects”).
With 125 million page impressions a month and highly dynamic content, caching is essential for tilllate.com. At tilllate, we have worked with several different caching techniques. Before we used caching, we just pre-generated the data: A nightly cron job populates a database table or generates a file containing the expensive data. Usually expensive queries, like the