<?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>E.V.I.C.T. B.V.</title>
	<atom:link href="http://evict.nl/index.php/feed" rel="self" type="application/rss+xml" />
	<link>http://evict.nl</link>
	<description>Playground of Edwin Vermeer</description>
	<lastBuildDate>Thu, 13 Oct 2011 11:44:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>iPhone developer resources &#8211;  Objective C samples, tutorials and libraries</title>
		<link>http://evict.nl/index.php/iphone/iphone-developer-resources-objective-c-samples-tutorials-and-libraries</link>
		<comments>http://evict.nl/index.php/iphone/iphone-developer-resources-objective-c-samples-tutorials-and-libraries#comments</comments>
		<pubDate>Tue, 23 Nov 2010 08:55:37 +0000</pubDate>
		<dc:creator>Edwin Vermeer</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[blogs]]></category>
		<category><![CDATA[libraries]]></category>
		<category><![CDATA[Objective C]]></category>
		<category><![CDATA[resources]]></category>
		<category><![CDATA[SDK]]></category>

		<guid isPermaLink="false">http://evict.nl/?p=318</guid>
		<description><![CDATA[In the past year and a half I have built various iPhone apps. Finding good resources always was such a challenge that I decided to maintain a list of those resources. I have used this list to flood my colleagues who were starting their iPhone development adventure. This has proven to be of good help [...]]]></description>
			<content:encoded><![CDATA[<p>In the past year and a half I have built various iPhone apps. Finding good resources<br />
always was such a challenge that I decided to maintain a list of those resources. I have<br />
used this list to flood my colleagues who were starting their iPhone development adventure.<br />
This has proven to be of good help so I decided to share the list.  I’ll try and keep this<br />
up to date with new things I find.  Feel free to comment with other great resources.</p>
<h2>General information &#8211; start here</h2>
<ul>
<li><a href='http://developer.apple.com/devcenter/ios/index.action'>Apple iOS dev center</a> &#8211; Download Xcode and iOS SDK</li>
<li><a href="http://www.1729.us/xcode/Xcode%20Shortcuts%20B_W.pdf">X-Code 3</a> and <a href="http://cocoasamurai.blogspot.com/2011/03/xcode-4-keyboard-shortcuts-now.html">X-Code 4</a> shortcut key</li>
<li>iTunes University about <a href='http://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=395631522'>Developing Apps for iOS</a> from Stanford university</li>
<li>A good codeproject article about <a href='http://www.codeproject.com/KB/iPhone/avoidiphoneleaks.aspx'>Memory management</a>.</li>
<li><a href="http://www.cocoalab.com/?q=becomeanxcoder">BecomeAnXcoder</a> free eBook for starting with Cocoa using Objective-C</li>
<li><a href="https://developer.apple.com/videos/wwdc/2010/">WWDC 2010 video&#8217;s</a> (apple developers account required)</li>
<li><a href="http://maniacdev.com/2010/06/35-open-source-iphone-app-store-apps-updated-with-10-new-apps/">40+ open source apps</a> see how others have done it.</li>
<li><a href="http://www.jetbrains.com/cidr/">JetBrains CIDR</a> Objective C IDE (not yet available, but very promissing)</li>
</ul>
<h2>Consider to use this in any professional app</h2>
<ul>
<li>Blog article about <a href='http://www.lostechies.com/blogs/scottdensmore/archive/2010/07/24/debugging-unit-tests-for-the-iphone-ipad.aspx?utm_source=feedburner&#038;utm_medium=feed&#038;utm_campaign=Feed%3A+LosTechies+%28LosTechies%29'>Debugging and Unit testing</a>.</li>
<li><a href='https://github.com/gabriel/gh-unit#readme'>GHUnit</a> testing framework for Objective C</li>
<li><a href="http://www.apperian.com/ease">Apperian Ease</a> corporate app store.</li>
<li><a href="http://testflightapp.com/">TestFlight</a> easy test app distribution</li>
<li><a href="http://www.gorillalogic.com/fonemonkey">FoneMonkey</a> functional record and playback testing</li>
<li><a href="http://code.google.com/p/plcrashreporter/">PL Crash Reporter</a> see this <a href="https://github.com/TheRealKerni/CrashReporterDemo">Demo</a></li>
<li><a href="https://github.com/kaler/CrashKit">CrashKit</a> catches uncaught exceptions, traps signals, and sends them to developers by email or straight to your bug database.</li>
<li><a href="http://www.mulle-kybernetik.com/software/OCMock/">OC Mock</a></li>
<li><a href="http://www.vimov.com/isimulate/">iSimulate</a> add GPS, multi-touch, accelerometer and compas to the simulator</li>
<li><a href="http://mobileorchard.com/ios-advanced-programming-understanding-ios-4-multitasking/?utm_source=feedburner&#038;utm_medium=feed&#038;utm_campaign=Feed%3A+MobileOrchard+%28Mobile+Orchard%29">Understanding iOS4 Multitasking</a></li>
<li><a href="https://github.com/TheRealKerni/Hockey">IOS Adhoc updater</a></li>
<li>Drop in <a href="http://sourceforge.net/projects/macsvnserver/">Subversion Server</a></li>
<li>How to use <a href="http://www.sonzea.com/articles/subversion-trac.html">subversion server</a> on your mac.</li>
<li><a href="http://www.stack.nl/~dimitri/doxygen/index.html">Doxygen</a> documentation generator  (<a href="http://www.duckrowing.com/2010/03/18/documenting-objective-c-with-doxygen-part-i/">tutorial</a>)</li>
<li><a href="http://www.keynote.com/solutions/mobile_quality/index.html?tab=solutions">Keynote&#8217;s</a> Mobile Monitoring &#038; Testing Products &#038; Services. <a href="http://www.youtube.com/watch?v=C4rdHh7waVw&#038;feature=player_embedded">See demo</a></li>
</ul>
<h2>Buildservers</h2>
<ul>
<li><a href='http://nachbaur.com/blog/how-to-automate-your-iphone-app-builds-with-hudson'>how to use</a> the <a href='http://hudson-ci.org/'>Hudson</a> build server for iPhone projects.</li>
<li><a href="http://www.jetbrains.com/teamcity/download/index.html#mac">TeamCity for OSX</a></li>
<li><a href="http://www.atlassian.com/software/bamboo/BambooDownloadCenter.jspa">Bamboo for OSX</a></li>
</ul>
<h2>Tools that you can use</h2>
<ul>
<li><a href="http://versionsapp.com/">Versions</a> graphic interface for svn</li>
<li><a href="https://github.com/blog/878-announcing-github-for-mac">GitHub for Mac</li>
<li><a href="http://www.git-tower.com/">Tower</a> graphic Git client</li>
<li><a href="http://www.zennaware.com/cornerstone/index.php">Cornerstone</a> Subversion client</li>
<li><a href='http://www.macroplant.com/iphoneexplorer/'>iPhone explorer</a> for accessing your iPhone file system.</li>
<li><a href='http://navicat.com/en/products/navicat_sqlite/sqlite_overview.html'>Navicat for SQLLite</a></li>
<li><a href='http://www.gaia-gis.it/spatialite/binaries.html '>Spatial Lite GUI</a> for accessing the data in the .sqllite file (first copy the file from your phone) </li>
<li><a href="http://morpher.com/">Morpher</a> compiler driven obfuscator</li>
<li><a href="http://sourceforge.net/projects/soapui/">SOAP UI</a></li>
<li><a href="http://www.exchangerxml.com/editor/downloads.html">Exchanger XML editor</a></li>
<li><a href="http://fileability.net/ingredients/">Ingredients</a> documentation viewer</li>
<li><a href="http://domesticcat.com.au/projects/introspect/">Introspect</a> helps you debugging your user interface</li>
</ul>
<h2>iPhone SDK&#8217;s &#8211; getting up to speed</h2>
<ul>
<li><a href='http://code.google.com/p/iphone-sdk-programming-book-code-samples/ '>iPhone SDK Programming demo’s</a></li>
<li><a href='http://code.google.com/p/iphone3/'>iPhone SDK 3 Programming Sample Code</a></li>
<li><a href='http://code.google.com/p/ofc/'>Objective-c Foundation classes</a></li>
<li><a href='http://github.com/facebook/three20#readme '>Three20</a> (a must try!) This is were the Facebook app is build upon.</li>
</ul>
<h2>Multi platform toolkits &#8211; look further</h2>
<ul>
<li><a href='http://www.phonegap.com/'>Phonegap</a> is a hybryde multi platform open source development framework for building cross-platform mobile apps</li>
<li><a href='http://www.steape.com/'>Steape</a> is multi platform app builder</li>
<li><a href='http://www.appcelerator.com/products/titanium-mobile-application-development/'>Appcelerator Titanium mobile</a> &#8211; For iPhone and Android (later Blakbery)</li>
<li><a href="http://www.airplaysdk.com/">AirPlay SDK</a> </li>
<li><a href="http://www.konysolutions.com/platform/write-once-run-everywhere/">Kony</a></li>
<li><a href="http://developer.openplug.com/">OpenPlug</a> cross platform mobile development studio</li>
<li><a href="http://www.appmobi.com/">Appmobi XDK</a> Develop, test and deploy cross platform mobile apps and games</li>
<li><a href="https://github.com/applause/APPlause">APPlouse</a> cross platform mobile development toolkit</li>
<li><a href="http://www.mobl-lang.org/">Mobl</a> build mobile web applications</li>
<li><a href="http://www.canappi.com/">Canappi</a> build en publish mobile applications</li>
<li><a href="http://redfoundry.com/">Red Foundry</a> building and managing mobile apps</li>
</ul>
<h2>Creating hybrid or just web apps</h2>
<ul>
<li><a href='http://www.nimblekit.com/'>Nimble Kit</a> &#8211; iPhone app with html content en javascript control of native controls</li>
<li><a href='http://iwebkit.net/'>iWebkit</a> framework for creating a webapp with iPhone look and feel</li>
<li><a href="http://pugpig.com/">PugPig</a> reader framework</li>
<li><a href="http://bakerframework.com/">Baker</a> ebook framework</li>
</ul>
<h2>Logging frameworks</h2>
<ul>
<li><a href="http://brenwill.com/2010/flexible-ios-logging/">Flexible iOS Logging</a></li>
<li><a href="https://github.com/fpillet/NSLogger">NSLogger</a></li>
<li><a href="http://cavoort.com/2010/01/04/log4cocoa-in-an-iphone-project/">Log4Cocoa</a></li>
<li><a href="http://labs.grupow.com/index.php/2010/12/objective-c-logging-with-sosmax/">SOSmax</a></li>
<li><a href="http://code.google.com/p/google-toolbox-for-mac/source/browse/trunk/Foundation/GTMLogger.h">GTMLogger (google-toolbox-for-mac)</a></li>
<li><a href="https://github.com/AlanQuatermain/aqtoolkit/tree/master/ASLogger/">ASLogger</a></li>
<li><a href="http://code.google.com/p/cola-framework/">cola-framework</a></li>
<li><a href="http://code.google.com/p/cocoalumberjack/">Cocoa Lumberjac</a></li>
</ul>
<h2>Statistics and advertising</h2>
<ul>
<li><a href='http://www.flurry.com'>Flurry</a>  analytics &#038; app circle (free, easy to use and very nice statistics)</li>
<li><a href='http://mixpanel.com/iphone-analytics/'>Mixpanel</a> iPhone (and Android) Analytics</li>
<li><a href='http://analytics.admob.com/home/'>admob analytics</a> and <a href='http://www.admob.com/appdevs'> advertising</a></li>
<li><a href="http://www.mopapp.com/">Mopapp</a>, track your app sales</li>
</ul>
<h2>Using social networks in your iPHone app</h2>
<ul>
<li><a href='http://getsharekit.com'>ShareKit</a> is a nice libary for sharing on multiple social networks</li>
<li><a href='http://github.com/facebook/facebook-ios-sdk'>Facebook</a> iOS SDK on github</li>
<li><a href='http://developers.facebook.com/docs/guides/mobile/'>Facebook mobile</a>  by facebook itself</li>
<li><a href='http://dev.twitter.com/pages/oauth_libraries#objectivec'>Twitter</a> resources</li>
<li><a href='http://code.google.com/p/iphone-facebook-twitter-connect-easy-integration-tool/'>Twitter and Facebook.</a>  Old? Twitter = oauth? why facebook? see link above.</li>
<li><a href='http://www.openfeint.com/developers '>Openfeint</a> – social gaming</li>
<li><a href='http://www.scoreloop.com/'>Scoreloop SDK</a> cross platform social, messages, monetization.</li>
<li><a href='http://www.crystalsdk.com'>Crystal SDK</a> for leaderboards, achievements, social, challenges.</li>
</ul>
<h2>Consuming web services in your iPhone app</h2>
<ul>
<li><a href='http://code.google.com/p/json-framework/ '>Json parser</a></li>
<li><a href='http://code.google.com/p/wsdl2objc/'>Soap classes generator</a></li>
<li><a href="http://code.google.com/p/sudzc/">sudzc</a> objective-c code generator from soap wdsl. see also <a href="http://sudzc.com">this online converter.</a></li>
<li><a href='http://code.google.com/p/gdata-objectivec-client/'>Google Data APIs Objective-C Client Library</a> (docs, analytics, search, contacts, finance, maps, picasa, translator, youtube, …). For adding this to an iPhone project you have to follow these <a href="http://mischneider.net/?p=377">instructions</a>. </li>
<li><a href="http://allseeing-i.com/ASIHTTPRequest/">ASIHTTPRequest</a> async http requests with enhanced caching, S3 and CloudFiles support</li>
<li><a href="http://restkit.org/">Restkit</a></li>
<li><a href="http://www.wadewegner.com/2011/05/windows-azure-toolkit-for-ios/">Windows Azure toolkit for iOS</a></li>
</ul>
<h2>Graphic libraries</h2>
<ul>
<li><a href='http://www.raywenderlich.com/2033/core-graphics-101-lines-rectangles-and-gradients'>Core graphics 101</a></li>
<li><a href='http://code.google.com/p/simple-iphone-image-processing/ '>Simple image processing</a></li>
<li><a href='http://github.com/steipete/PSFramework '>images manipulation</a></li>
<li><a href='http://code.google.com/p/uiimage-operations/ '>UIImage operations</a> Rotations, grayscale conversion, skew detection of tekst images</li>
<li><a href="http://code.google.com/p/core-plot/">Core Plot</a> charting library</li>
<li><a href="https://github.com/mattrajca/SVGKit">Rendering SVG files</a></li>
<li><a href="http://jeffmenter.wordpress.com/2011/04/17/method-for-interpreting-illustrator-art-assets-as-cocoa-cgpathref/">Rendering EPS files</a></li>
<li><a href="https://github.com/Nyx0uf/NYXImagesUtilities">NyxOuf></a> library for filtering, resizing, masking, rotating, &#8230;</li>
</ul>
<h2>2D and 3D graphic libraries and game engines</h2>
<ul>
<li><a href="http://www.anscamobile.com/corona/">Corona</a> multi platform 2D graphics coding.</li>
<li><a href="http://gamesalad.com/">Gamesalad</a> 2D graphics library</li>
<li><a href='http://github.com/cocos2d/cocos2d-iphone'>Cocos2d</a> – library for graphics/games</li>
<li><a href='http://code.google.com/p/chipmunk-spacemanager/ '>Chipmunc spacemanager</a> &#8211; physics</li>
<li><a href='http://code.google.com/p/bullet/'>Bullet</a> 3D game physics library</li>
<li><a href='http://oolongengine.com/ '>oolongengine</a> &#8211; library for games</li>
<li><a href='http://sio2interactive.com/'>sio2 engine</a> open source 3d lib (with export from <a href='http://www.blender.org'>Blender</a>)</li>
<li><a href="http://unity3d.com/unity/">unity3</a> game development tool</li>
<li><a href="http://code.google.com/p/galaxyengine/">galaxyengine</a> game development package</li>
<li><a href="http://www.bork3d.com/engine">bork3d</a> game engine</li>
<li><a href="http://www.garagegames.com/products/torque-2d/iphone">iTorque 2d</a> game builder.</li>
<li><a href="http://www.sparrow-framework.org/">Sparrow</a> game development framework</li>
<li><a href="http://iphonedevelopment.blogspot.com/2011/02/mc3d-platform-agnostic-3d-foundation.html">MC3D library</a> platform agnostic 3d foundation (iPhone and Android library)</li>
</ul>
<h2>Augmented reality in your iPhone app</h2>
<ul>
<li><a href='http://github.com/zac/iphonearkit/'>iPhone Arkit</a> (the one i used in&#8230; <i>comming soon</i>)</li>
<li><a href='http://www.morethantechnical.com/2009/07/01/augmented-reality-on-the-iphone-using-nyartoolkit-w-code/ '>NyARRToolkit for iPhone (image recognition and drawin objects)</a></li>
<li><a href='http://github.com/simplegeo/SGAREnvironment'>iphone ar kit</a></li>
<li><a href='http://blog.simplegeo.com/2010/06/02/a-look-at-our-iphone-augmented-reality-sdk/'>iphone AR blog with video</a></li>
<li><a href="http://www.layar.com/tools/player/">Layar Player</a> for embedding Layar in your app.</li>
</ul>
<h2>Various specific libraries for your iPhone app</h2>
<ul>
<li><a href='http://code.google.com/p/objective-zip/'>Zip library</a></li>
<li><a href="http://developers.enormego.com/code">enormego developers libraries</a> like the <a href="https://github.com/enormego/flicktabcontrol">FlickTabControl</a>, <a href="https://github.com/enormego/EGOTableViewPullRefresh">TableView Pull Refresh</a>, <a href="https://github.com/enormego/PhotoViewer">PhotoViewer</a>, <a href="https://github.com/enormego/cocoa-helpers">Cocoa helpers</a>, <a href="https://github.com/enormego/EGOImageLoading">Image Loading</a> and more</li>
<li><a href='http://zbar.sourceforge.net/iphone/index.html '>zbar</a> barcode scanner</li>
<li><a href="https://github.com/netshade/Cocoa-Touch-Barcodes">Cocoa Touch Barcodes</a> display EAN 8 and13, Code 39 and 128</li>
<li><a href="http://sourceforge.net/projects/zint/">Zint Barcode Generator</a> 50+ formats</li>
<li><a href='http://developer.apple.com/mac/library/documentation/GraphicsImaging/Conceptual/PDFKitGuide/PDFKit_Prog_Tasks/PDFKit_Prog_Tasks.html'>Implementing a PDFView:</a></li>
<li><a href='http://developer.apple.com/mac/library/samplecode/PDFAnnotationEditor/ '>PDF Annotation Editor</a></li>
<li><a href="https://github.com/mobfarm/FastPdfKit">FastPdfKit</a></li>
<li><a href='http://spitzkoff.com/craig/?p=108'>Draw (a route) on top of a MKMapView</a></li>
<li><a href='http://monotouch.net/'>MonoTouch</a> &#8211; C# en .NET for iPhone</li>
<li><a href='https://github.com/zynga/FontLabel/'>FontLabel</a> for using custom .ttf fonts</li>
<li><a href='http://www.clevercoding.com/iPhone3Dglobe.php'>3D Globe</a> (costs $1000,- i have used this in&#8230; <i>comming soon</i>)</li>
<li><a href='https://github.com/rentzsch/mogenerator/'>Core Data code generation</a></li>
<li><a href='https://github.com/klazuka/Kal'>Kal</a> calendar component</li>
<li><a href='http://www.appsamuck.com/'>Appsamuck</a> sample applications (30+)</li>
<li><a href='http://www.inappsettingskit.com/'>InAppSettingsKit</a></li>
<li><a href='http://bitbucket.org/keegan3d/inappsettings/wiki/Home/'>InAppSettings</a></li>
<li><a href='http://regexkit.sourceforge.net/RegexKitLite/index.html'>Regex Kit Lite</a></li>
<li><a href='https://github.com/devinross/tapkulibrary'>Tapku</a> library &#8211; Coverflow, month calendar, graph, &#8230;</li>
<li><a href="http://www.chaosinmotion.com/flowcover.m">FlowCover</a></li>
<li><a href="http://iphonedevelopertips.com/open-source/ios-open-source-uiview-category-to-manage-z-order-of-views.html">Manage Z-Order of Views</a>
<li><a href="http://code.google.com/p/orxml/">orxml</a> object serialization / deserialization</li>
<li><a href="http://sourceforge.net/projects/samixos/">SAMIXO</a> XML to Object Serializer</li>
<li><a href="https://github.com/bcaccinolo/XML-to-NSDictionary">XML to NSDictionary</a></li>
<li><a href='https://github.com/0xced/UIKit-Artwork-Extractor'>UIKit artwork extractor</a></li>
<li><a href="http://www.politepix.com/openears/">OpenEars</a> library for text to speach and speach to text.</li>
<li><a href='http://dragonmobile.nuancemobiledeveloper.com/'>Dragon mobile SDK</a> &#8211; text to speach and speach recognition</li>
<li><a href='http://icodeblog.com/2010/10/14/working-with-uigesturerecognizers/'>UIGestureRecognizers</a></li>
<li><a href='https://github.com/Cocoanetics/NSAttributedString-Additions-for-HTML'>NSAttributeString additions for HTML</a></li>
<li><a href="http://www.jenkinssoftware.com/purchase-raknet.html">Raknet</a> multi player networking engine.</li>
<li><a href="https://github.com/zoul/Finch">Finch</a> sound enginge.</li>
<li><a href="http://mattgemmell.com/2008/05/20/mgtemplateengine-templates-with-cocoa">MG Template</a> for generating text based on a template and data structure.</li>
<li><a href="http://g-Off.net/projects/template-engine">GF Template</a></li>
<li><a href="https://github.com/AlanQuatermain/aqtoolkit">AQ Toolkit</a> generally useful routines and extensions</li>
<li><a href="http://www.atomcraft.de/blog/2010/12/23/atomhud-release/">atomHUD</a></li>
<li><a href="https://github.com/aptiva/activerecord">ActiveRecord</a> (based on the Rails implementation)</li>
<li><a href="https://github.com/rentzsch/jrswizzle">jrswizzle</a> for exchanging Objective C methods</li>
<li><a href="http://opencv.willowgarage.com/wiki/Welcome">OpenCV</a> face detection, tracking, recognition and other image functions. <a href="http://www.computer-vision-software.com/blog/2009/04/opencv-vs-apple-iphone/">Read this Objective C howto</a></li>
<li><a href=”http://www.bing.com/community/site_blogs/b/maps/archive/2011/05/05/new-bing-maps-ios-sdk.aspx”>Bing Maps SDK</a></li>
<li><a href="http://iPhoneDeveloperTips.com/data-file-management/preview-documents-with-qlpreviewcontroller.html"> QLPreviewController for previewing all kind of documents.</a></li>
<li><a href="http://www.mobilefoo.com/ProductDetail.aspx/SlidingNav">Sliding Navigation Controller</a></li>
<li><a href="https://github.com/samvermette/SVSegmentedControl">SVSegmentedControl</a></li>
<li><a href="http://cocoacontrols.com/platforms/ios/controls">Collection of custom controls</a></li>
<li><a href="https://github.com/nicklockwood/iCarousel">iPhone carousel</a></li>
<li><a href="https://github.com/Redth/APNS-Sharp">APNS-Sharp</a> Apple push notification service c# lib <a href="http://arashnorouzi.wordpress.com/2011/03/31/sending-apple-push-notifications-in-asp-net-part-1/">tutorial</a>, <a href="http://iphonesdkdev.blogspot.com/2009/04/apns-client-development-certificate.html">tutorial</a></li>
<li><a href="http://dev.doukasd.com/2010/08/double-slider/">Double Slider UIControl</a></li>
<li><a href="https://github.com/craighowarth/WipeAwayView">WipeAwayView</a> earase top level UIView to reveal content underneath</li>
<li><a href="https://github.com/jdg/MBProgressHUD">MBProgressHUD</a></li>
<li><a href="https://github.com/atomton/ATMHud">ATMHud</a></li>
<li><a href="https://github.com/ccgus/fmdb">FMDB</a> sqlite helper classes</li>
<li><a href="http://www.sensiblecocoa.com/">Sensible tableview</a></li>
<li><a href="http://pspdfkit.com/">PSPDFKit</a> component for displaying a PDF</li>
<li><a href="http://lukeredpath.co.uk/blog/a-note-on-objective-c-singletons.html">Singletons</a> the right way</li>
<li><a href="http://maniacdev.com/2011/09/tutorial-and-open-source-library-for-building-a-upnp-client-on-ios-devices/">UPnP</a> library and tutorial</li>
<li><a href="http://maniacdev.com/2011/09/open-source-high-speed-interactive-ios-grid-view-component/">Grid view component</a></li>
</ul>
<h2>Looking for source code samples?</h2>
<ul>
<li><a href='https://github.com/languages/Objective-C'>Objective C project on Github</a></li>
<li><a href='http://www.codeproject.com/info/search.aspx?artkw=iphone&#038;sbo=kw'>iPhone projects on The Code Project</a></li>
</ul>
<h2>Forums</h2>
<ul>
<li><a href='http://www.excbadaccess.com/'>EXC_BAD_ACCESS forum</a></li>
<li><a href='http://forums.macrumors.com/forumdisplay.php?f=135'>MacRumors Forums</a></li>
</ul>
<h1>Rapid prototyping and Mockups</h1>
<ul>
<li><a href="http://balsamiq.com/">Balsamiq</a></li>
<li><a href='http://genuitec.com/mobile/'>MobiOne Studio</a></li>
<li><a href='http://www.iphonedevx.com/?p=476'>MockApp 1.0</a></li>
<li><a href='http://www.onespring.net/iphonesimdk.php'>SimDK</a> for <a href='http://www.irise.com/products/'>iRise</a></li>
<li><a href='http://code.google.com/p/rappid/'>rappid</a></li>
<li><a href='http://www.adobe.com/devnet/fireworks/articles/prototype_iphone_app.html'>Adobe Fireworks iprototype</a></li>
<li><a href='http://www.axure.com/widgetLibraries.aspx#'>Axure RP Pro</a></li>
<li><a href='http://www.adaptivepath.com/blog/2009/09/16/rapid-prototyping-tools-revisited/'>list of prototype tools</a></li>
</ul>
<h2>Iphone design and interface</h2>
<ul>
<li><a href='http://www.graffletopia.com/stencils/392'>iPhone stencil for OmniGraffle</a></li>
<li><a href='http://www.tuaw.com/2008/08/24/free-library-of-iphone-ui-elements/'>iPHone PSD user interface elements</a></li>
<li><a href='http://developer.apple.com/iphone/library/documentation/userexperience/conceptual/mobilehig/Introduction/Introduction.html#//apple_ref/doc/uid/TP40006556-CH1-SW1'>iPhone human interface guidelines</a></li>
<li><a href='http://www.smashingmagazine.com/2010/11/17/designing-for-iphone-4-retina-display-techniques-and-workflow/'>Designing for the Retina display</a></li>
<li><a href=”http://www.flickr.com/photos/openexhibits/sets/72157625330770439/with/52424396”>Gesture Glyphs</a></li>
</ul>
<h2>Various iPhone blogs and resources</h2>
<p>Just add these all to you favourite RSS reader. Tip: I am using <a href='http://www.google.nl/reader/'>Google reader</a> to organise my feeds and the almost great <a href='http://www.mynewspaperforipad.com/'>&#8216;My Newspaper&#8217;</a> for the iPad to read them.</p>
<ul>
<li><a href='http://joehewitt.com/'>http://joehewitt.com/</a></li>
<li><a href='http://devblog.brautaset.org/'>http://devblog.brautaset.org/</a></li>
<li><a href='http://matrixpointer.com/karl/'>http://matrixpointer.com/karl/</a></li>
<li><a href='http://toxicsoftware.com/'>http://toxicsoftware.com/</a></li>
<li><a href='http://oleb.net/'>http://oleb.net/</a></li>
<li><a href='http://icodeblog.com/'>http://icodeblog.com/</a></li>
<li><a href='http://mobileorchard.com/'>http://mobileorchard.com/</a></li>
<li><a href='http://drobnik.com/touch/'>http://drobnik.com/touch/</a></li>
<li><a href='http://iphonedevelopment.blogspot.com/'>http://iphonedevelopment.blogspot.com/</a></li>
<li><a href='http://www.iphonesdkarticles.com/'>http://www.iphonesdkarticles.com/</a></li>
<li><a href='http://iphonedevelopertips.com/'>http://iphonedevelopertips.com/</a></li>
<li><a href='http://www.iphoneflow.com/'>http://www.iphoneflow.com/</a></li>
<li><a href='http://iphoneincubator.com/blog/'>http://iphoneincubator.com/blog/</a></li>
<li><a href='http://www.planetiphonesdk.com/'>http://www.planetiphonesdk.com/</a></li>
<li><a href='http://iphonedevelopmentbits.com/'>http://iphonedevelopmentbits.com/</a></li>
<li><a href='http://www.edumobile.org/iphone/'>http://www.edumobile.org/iphone/</a></li>
<li><a href='http://blog.objectmentor.com/'>http://blog.objectmentor.com/</a></li>
<li><a href='http://idevrecipes.com/'>http://idevrecipes.com/</a></li>
<li><a href='http://cocoasamurai.blogspot.com/'>http://cocoasamurai.blogspot.com/</a></li>
<li><a href='http://jongampark.wordpress.com/'>http://jongampark.wordpress.com/</a></li>
<li><a href='http://www.raywenderlich.com/'>http://www.raywenderlich.com/</a></li>
<li><a href="http://quatermain.tumblr.com/">http://quatermain.tumblr.com/</a></li>
</ul>
<h2>Full source code of apps</h2>
<ul>
<li><a href="http://maniacdev.com/2010/06/35-open-source-iphone-app-store-apps-updated-with-10-new-apps/">40+ open source apps</a> see how others have done it.</li>
<li><a href=”https://github.com/jonbeebe/Tilt-Monster”>Tilt Monster</a></li>
<li><a href=”https://github.com/ansca/Air-Hockey”>Air Hockey</a></li>
</ul>
<p><br/><br/></p>
<h1><i>Mobile (not iPhone specific) resources</i></h1>
<p><br/></p>
<h2>Various general articles and tools</h2>
<ul>
<li><a href='http://lwuit.blogspot.com/ '>LWUIT &#8211; UI library for JavaME, Symbian, blackberry and Android (limited)</a></li>
<li><a href='http://www.jil.org/#GET_STARTED'>JIL Development Portal</a></li>
<li><a href='http://mite.keynote.com'>Tool for testing mobile sites.</a></li>
<li><a href='http://tweakers.net/nieuws/66215/veel-blackberry-gebruikers-overwegen-overstap-naar-android-of-iphone.html'>User satisfaction</a></li>
<li><a href='http://www.flowtown.com/blog/teens-and-their-mobile-phones?display=wide'>How are teens using their cell phones</a></li>
<li><a href='http://www.thushanfernando.com/index.php/2010/11/15/windows-phone-7-resources/ '>Development tools voor WinMo 7</a></li>
<li><a href='http://cenriqueortiz.com/images/comparing-mobile-apps-browser-runtime-local.png'>browser based v.s. local clients</a></li>
<li><a href='http://patterns.littlespringsdesign.com/index.php/Main_Page'>design paterns</a></li>
</ul>
<h2>Market share and trends</h2>
<ul>
<li><a href='http://tweakers.net/nieuws/63922/iphone-en-android-in-vs-goed-voor-75-procent-van-mobiel-verkeer.html'>Iphone and android are using 75% of mobile traffic (Dutch)</a></li>
<li><a href='http://www.appleinsider.com/articles/10/11/11/gartner_mobile_figures_supporting_android_differ_from_idc_by_77_million.html '>Q3 2010 Market shares from Gartner</a></li>
<li><a href='http://tweakers.net/nieuws/59861/kpn-ziet-omzet-mobiel-dataverkeer-verdubbelen.html'>Mobile data doubles for KPN (Dutch)</a></li>
<li><a href='http://tweakers.net/nieuws/52515/gebruik-mobiel-internet-in-2013-verdrievoudigd.html'>Mobile data triples by 2013 (Dutch)</a></li>
<li><a href='http://techland.com/2010/08/27/nerd-alert-spreadsheet-lists-every-android-device-in-the-history-of-mankind/?utm_source=feedburner&#038;utm_medium=feed&#038;utm_campaign=Feed%3A+timeblogs%2Fnerd_world+%28TIME%3A+Techland%29&#038;utm_content=Twitter  '>Spreadsheet lists every android device in the history of mankind</a></li>
<li><a href=http://www.infoq.com/articles/mobile-dsl">Challenges and Opportunities in Mobile Application Development</a></li>
</ul>
<h2>App stores</h2>
<ul>
<li><a href='http://marketplace.windowsphone.com/Default.aspx'>Windows Phone</a></li>
<li><a href='http://www.androlib.com/appstats.aspx'>Android</a></li>
<li><a href='http://tweakers.net/nieuws/58234/vodafone-start-met-downloadwinkel-application-manager-update.html'>Vodafone (Dutch)</a></li>
<li><a href='http://tweakers.net/nieuws/65235/nokias-ovi-store-heeft-een-miljoen-downloads-per-dag.html'>Nokia ovi store (Dutch)</a></li>
<li><a href='http://www.engadget.com/2010/01/19/apples-app-store-said-to-have-99-4-percent-of-all-mobile-app-sa/'>Apple app store has 99.4% of all mobile app sales</a></li>
</ul>
<h2>Advertising</h2>
<ul>
<li><a href='http://www.leveltendesign.com/blog/jonathanh/the-effectiveness-advertising-mobile-devices'>The Effectiveness of Advertising on Mobile Devices</a></li>
<li><a href='http://www.forbes.com/2010/03/07/advertising-web-ads-digital-business-media-outsell.html'>Web ads to get a 10% boost in 2010. For the first time advertisers will spend more on digital than print.</a></li>
<li><a href='http://www.longest.com/2008/09/26/top-6-iphone-application-advertising-networks-for-publishers/'>Top 6 iPhone Application Advertising Networks for Publishers</a></li>
<li><a href='http://www.longest.com/2008/10/17/37-advertising-networks-and-optimizers/'>39 Advertising Networks and Optimizers</a></li>
<li><a href='http://www.mobilemarketer.com/cms/news/advertising/1468.html '>Mobile Marketer’s Classic Guide to Mobile Advertising</a></li>
<li><a href='http://mmaglobal.com/main'>Mobile Marketing Association</a></li>
<li><a href='http://analytics.admob.com/home/'>Admob analytics</a></li>
<li><a href='http://www.onlinemarketingrant.com/'>iPhone app marketing</a></li>
</ul>
<h2>Mobile UX guidelines (iPhone, iPad, BlackBerry, Android, Nokia, Symbian, Bada, Windows, webOS, ..</h2>
<ul>
<li><a href='http://www.mobilexweb.com/blog/ui-guidelines-mobile-tablet-design'>UI Guidelines for mobile and tablet web app design (link for every platform)</a></li>
</ul>
<h2  class="related_post_title">Related posts</h2><ul class="related_post"><li>No Related Post</li></ul>]]></content:encoded>
			<wfw:commentRss>http://evict.nl/index.php/iphone/iphone-developer-resources-objective-c-samples-tutorials-and-libraries/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extension methods: Not always a good thing.</title>
		<link>http://evict.nl/index.php/code/extension-methods-not-always-a-good-thing</link>
		<comments>http://evict.nl/index.php/code/extension-methods-not-always-a-good-thing#comments</comments>
		<pubDate>Sun, 04 Jul 2010 21:40:46 +0000</pubDate>
		<dc:creator>Edwin Vermeer</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Extension method]]></category>

		<guid isPermaLink="false">http://evict.nl/?p=303</guid>
		<description><![CDATA[If you have been programming in C# for a little while then you probably already have seen a couple of extension methods by now. What I did notice however was that there are clearly 2 different kind of developers making those extension methods. It looks like that there are developers who strive to make the [...]]]></description>
			<content:encoded><![CDATA[<p><!--:en-->If you have been programming in C# for a little while then you probably already have seen a  couple of extension methods by now.  What I did notice however was that there are clearly 2 different kind of developers making those extension methods. It looks like that there are developers who strive to make the best looking and most useful and well written extension methods  and the other group of developers is trying to make an extension method out of everything. In order to be able to say what is good practice and what is bad, we are going to look at a couple of extension methods.</p>
<p>The first extension method that we are going to look at is compact and easy to use. At the other hand It&#8217;s also not so difficult to just write out what it does in your code. Here is the extension method:</p>
<pre class="brush: c#">
public static bool IsBetween&lt;T&gt;(this T value, T low, T high) where T : IComparable&lt;T&gt;
{
    return value.CompareTo(low) &gt;= 0 &amp;amp;&amp;amp; value.CompareTo(high) &lt;= 0;
}
</pre>
<p>In our code we are now able to use this extension method like this:</p>
<pre class="brush: c#">
if(user.Age.IsBetween(12, 16)) { ..
</pre>
<p>instead of what we would usulay do:</p>
<pre class="brush: c#">
if(user.Age &gt; = 12 &amp;amp;&amp;amp; user.Age &lt;= 16) { ..
</pre>
<p>In this case I do think that the extension method does make the code a little better to read.  Another plus is that the extension will only show up for something that implements the IComparable interface so that we will not get intellisence ‘pollution’.</p>
<p>Here is another extension method with a little more code:</p>
<pre class="brush: c#">
public static string RemoveNonNumeric(this string s)
{
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i &lt; s.Length; i++)
    if (Char.IsNumber(s[i]))
        sb.Append(s[i]);
    return sb.ToString();
}
</pre>
<p>And you can use this extension method like this:</p>
<pre class="brush: c#">
&quot;(020) 555-555-123&quot;.RemoveNonNumeric();
</pre>
<p>I think this one falls in the category ‘sure, use it’. For me it’s as clear as using a trim function.</p>
<p>Ok, here are the last two extension methods  for where I think there is little discussion over.  These 2 extension methods will help you converting strings or numbers back to an enum. Here is the code:</p>
<pre class="brush: c#">
        public static T ToEnum&lt;T&gt;(this int number)
        {
            return (T)Enum.ToObject(typeof(T), number);
        }
        public static T ToEnum&lt;T&gt;(this string text)
        {
            return (T)Enum.Parse(default(T).GetType(), text);
        }
</pre>
<p>And these extension methods can be used like this:</p>
<pre class="brush: c#">
MyStatusEnum status = 1.ToEnum&lt;MyStatusEnum&gt;();
status = &quot;Good&quot;.ToEnum&lt;MyStatusEnum&gt;();
</pre>
<p>You do will see the ToEnum extension method in the intelisence of every string and integer, but you do have to specify the enum type that you want to cast it to.</p>
<p>Here it comes. We are now going into the grey area.  Below you can see a series of extension methods that will let you use every String.Format combination as a FormatWith extension method. These extension methods are used in more than one project that I have worked on and there have been various discussions about if these were good or bad. I think both sides are partially right. Here is the code:</p>
<pre class="brush: c#">
public static string FormatWith(this string format, object arg0)
{
    return string.Format(CultureInfo.InvariantCulture, format, arg0);
}
public static string FormatWith(this string format, object arg0, object arg1)
{
    return string.Format(CultureInfo.InvariantCulture, format, arg0, arg1);
}
public static string FormatWith(this string format, object arg0, object arg1, object arg2)
{
    return string.Format(CultureInfo.InvariantCulture, format, arg0, arg1, arg2);
}
public static string FormatWith(this string format, params object[] args)
{
    return string.Format(CultureInfo.InvariantCulture, format, args);
}
public static string FormatWith(this string format, IFormatProvider provider, params object[] args)
{
    return string.Format(provider, format, args);
}
</pre>
<p>With these extension methods you are now able to write code like:</p>
<pre class="brush: c#">
&quot;Hello {0}, my name is {1}&quot;.FormatWith(&quot;you&quot;,&quot;Edwin&quot;);
</pre>
<p>Instead of the usual:</p>
<pre class="brush: c#">
String.Format(&quot;Hello {0}, my name is {1}&quot;, &quot;you&quot;,&quot;Edwin&quot;);
</pre>
<p>When I first looked at these extension methods I too thought I could as well just use the existing String.Format method.  And then it also has the disadvantage that you will lose the compile time check for the number of parameters in your call. But then I noticed that during coding the.FormatWith often feels more natural to use.  By now I am using the .FormatWith more and more.  </p>
<p>The previous extension methods are a little dubious but I think the next couple of methods are more wrong than right. At first these extension methods look handy but then when you start using them you will see that they could be confusing. Here is the code:</p>
<pre class="brush: c#">
public static int MilisecondsToSeconds(this int num)
{
   return num / 1000;
}
public static int SecondsToMiliseconds(this int num)
{
   return num * 1000;
}
public static int MinutesToMiliseconds(this int num)
{
   return num * 60000;
}
</pre>
<p>You can then start using these extension methods like this: </p>
<pre class="brush: c#">
Thread.Sleep(5.SecondsToMiliseconds());
proxy.Timeout = 1.MinutesToMiliseconds();
</pre>
<p>At first this code looks ok to use, however it is also possible to use code like this:</p>
<pre class="brush: c#">
int minutes = 5;
Thread Sleep(minutes.SecondsToMiliseconds());
</pre>
<p>With this code the mistake is obvious , but when you start using variables without ‘minutes’ in its name, this mistake is easier to make. One other thing is that intelisence will show you the SecondsToMiliseconds method for every integer there is.  I think that if for most values an extension method does not apply, then you should not have that extension method.  Instead you could use a class with a static method like this:</p>
<pre class="brush: c#">
Thread.Sleep (Convert. SecondsToMiliseconds (5));
</pre>
<p>Here is another simple extension method that falls in the same category:</p>
<pre class="brush: c#">
        public static Uri ToUri(this String uri)
        {
            return new Uri(uri);
        }
</pre>
<p>You can use this extension method like this:</p>
<pre class="brush: c#">
            Uri myUri = &quot;http://www.evict.nl&quot;.ToUri();
</pre>
<p>With this extension method intelisence will let you see the ToUri on every string.</p>
<p>Here is another nice example of an extension method that looks very cool and easy to use but should actually be avoided. Here is the code:</p>
<pre class="brush: c#">
public static Boolean And(this Boolean b,  Boolean  expression)
{
    return b &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp; expression;
}
public static Boolean Or(this Boolean b, Boolean expression)
{
    return b || expression;
}
</pre>
<p>You can then use these extension methods like this:</p>
<pre class="brush: c#">
string myVal = ...
if(String.IsNullOrEmpty(myVal).Or(myVal==&quot;N/A&quot;)) { ..
</pre>
<p>This extension method does not make your code more readable. Instead you could as wel use this code:</p>
<pre class="brush: c#">
if(String.IsNullOrEmpty(myVal)  || myVal==&quot;N/A&quot;) { ..
</pre>
<p>I don’t see any benefit for using this extension method. Instead you will just add some extra complexity to your project. </p>
<p>I do like to use extension methods. Especially when I can use it using generic types like the enum conversion methods at the beginning of this article.<br />
<!--:--></p>
<h2  class="related_post_title">Related posts</h2><ul class="related_post"><li>March 5, 2010 -- <a href="http://evict.nl/index.php/code/get-the-field-type-from-entityframework-or-linq2sql-generated-classes" title="Get the field type from EntityFramework or linq2sql generated classes">Get the field type from EntityFramework or linq2sql generated classes</a> (0)</li><li>January 26, 2010 -- <a href="http://evict.nl/index.php/code/converting-a-generic-list-to-one-of-its-interfaces-or-base-types" title="Converting a generic list to one of its interfaces or base class">Converting a generic list to one of its interfaces or base class</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://evict.nl/index.php/code/extension-methods-not-always-a-good-thing/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Get the field type from EntityFramework or linq2sql generated classes</title>
		<link>http://evict.nl/index.php/code/get-the-field-type-from-entityframework-or-linq2sql-generated-classes</link>
		<comments>http://evict.nl/index.php/code/get-the-field-type-from-entityframework-or-linq2sql-generated-classes#comments</comments>
		<pubDate>Thu, 04 Mar 2010 23:13:30 +0000</pubDate>
		<dc:creator>Edwin Vermeer</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[DbType]]></category>
		<category><![CDATA[Entity Framework]]></category>
		<category><![CDATA[Linq2sql]]></category>
		<category><![CDATA[Reflection]]></category>
		<category><![CDATA[Validation]]></category>

		<guid isPermaLink="false">http://evict.nl/?p=285</guid>
		<description><![CDATA[After generating classes and properties using the Entity Framework or Linq2sql you somtimes want to know in your code how big a database field is. Probably that would be for doing some input validation. The best way to do that is of course asking that information from the database. But wait&#8230; Didn&#8217;t we made a [...]]]></description>
			<content:encoded><![CDATA[<p><!--:en-->After generating classes and properties using the Entity Framework or Linq2sql you somtimes want to know in your code how big a database field is. Probably that would be for doing some input validation. The best way to do that is of course asking that information from the database.</p>
<p>But wait&#8230; Didn&#8217;t we made a .dbml which generated a couple of classes for the tables in our database? The information we need should be in one of the files that is generated by the .dbml. When you search through the .cs file for your classes and fields, you will see that the properties that are linked to your databse contain a ColumnAttribute. See this code snippet:</p>
<pre class="brush: c#">
[Column(Storage=&quot;_id&quot;, AutoSync=AutoSync.OnInsert, DbType=&quot;Int NOT NULL IDENTITY&quot;, IsPrimaryKey=true, IsDbGenerated=true)]
public int id
{ …

[Column(Name=&quot;name&quot;, Storage=&quot;_name&quot;, DbType=&quot;VarChar(150) NOT NULL&quot;, CanBeNull=false)]
public string name
{ …
</pre>
<p>Here you see that de database field type is specified in the DbType attribute field. So that is wat we want to know in our code. We just have to find an easy way for getting this information. For this I created a Reflection Utility class. Here is the code:</p>
<pre class="brush: c#">
public static class ReflectionUtility
{
    public static string GetPropertyName&lt;T&gt;(Expression&lt;Func&lt;T&gt;&gt;  expression)
    {
        return ((MemberExpression)expression.Body).Member.Name;
    }
    public static ColumnAttribute GetColumnAttribute&lt;T&gt;(Expression&lt;Func&lt;T&gt;&gt; expression)
    {
        string propertyName = ((MemberExpression)expression.Body).Member.Name;
        Type type = ((MemberExpression)expression.Body).Member.ReflectedType;
        PropertyInfo memberInfo = type.GetProperty(propertyName, BindingFlags.GetProperty | BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
        object[] attributes = memberInfo.GetCustomAttributes(typeof(ColumnAttribute), false);
        foreach (var attribute in attributes)
        {
            var columnAttribute = attribute as ColumnAttribute;
            if (columnAttribute != null) return columnAttribute;
        }
        return null;
    }
    public static string GetDbType&lt;T&gt;(Expression&lt;Func&lt;T&gt;&gt; expression)
    {
        ColumnAttribute attribute = GetColumnAttribute(expression);
        return (attribute != null) ? attribute.DbType : null;
    }
}
</pre>
<p>As you can see getting the information can easilly be done with some simple reflection. I even made sure you could query both public and non public properties (internal). After you added the ReflectionUtility class to your solution you can get the DbType of a property or just the name of a property with one simple line of code. Her is a sample of how you can use it:</p>
<pre class="brush: c#">
string fieldName = ReflectionUtility.GetPropertyName(() =&gt; (new user()).id);
string dbType = ReflectionUtility.GetDbType(() =&gt; (new user()).name);
</pre>
<p>As you can see you only need one simple line of code for getting the database type information from a property. I am not even using &#8216;magic strings&#8217; for doing the reflection. I just pass the property itself to the method. The bennefit of this is that after a refactoring (changing the name of a property) you don&#8217;t even have to try to find all the property name string and replace them by the new name.</p>
<p>There is one drawback for getting the field type information this way. It is possible to enter something in your .dbml that is different from the actual field type in the database. For instance you could set the size smaller than the actual field size.</p>
<h2>Conclusion:</h2>
<p>This was a fun exersize. If you think that the DbType information in your .dbml is good, then using this utility class is a very easy way to get the type information. There are a couple of things that could be done for improving this code. For instance you could parse the field type string into an object or you could make a validator method that wil check if the current value is not longer that the field length.<!--:--></p>
<h2  class="related_post_title">Related posts</h2><ul class="related_post"><li>July 4, 2010 -- <a href="http://evict.nl/index.php/code/extension-methods-not-always-a-good-thing" title="Extension methods: Not always a good thing.">Extension methods: Not always a good thing.</a> (0)</li><li>January 26, 2010 -- <a href="http://evict.nl/index.php/code/converting-a-generic-list-to-one-of-its-interfaces-or-base-types" title="Converting a generic list to one of its interfaces or base class">Converting a generic list to one of its interfaces or base class</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://evict.nl/index.php/code/get-the-field-type-from-entityframework-or-linq2sql-generated-classes/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Two new websites live!</title>
		<link>http://evict.nl/index.php/web/two-new-websites-live</link>
		<comments>http://evict.nl/index.php/web/two-new-websites-live#comments</comments>
		<pubDate>Wed, 27 Jan 2010 23:47:17 +0000</pubDate>
		<dc:creator>Edwin Vermeer</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[live]]></category>
		<category><![CDATA[Mooijman]]></category>
		<category><![CDATA[Taalvos]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://evict.nl/?p=273</guid>
		<description><![CDATA[I enjoyed playing around with my own WordPress website at evict.nl so much that I also starded to remake my wifes website taalvos.nl immediately followed by making the website Mooijman.aero for a friend. Both sites still need a lot of content but the layout (and therefore my work) is now ready. Here is how these [...]]]></description>
			<content:encoded><![CDATA[<p>I enjoyed playing around with my own WordPress website at evict.nl so much that I also starded to remake my wifes website <a href="taalvos.nl">taalvos.nl</a> immediately followed by making the website <a href="http://mooijmanmultiservices.nl/">Mooijman.aero</a> for a friend. Both sites still need a lot of content but the layout (and therefore my work) is now ready. Here is how these sites now look:</p>
<table>
<tbody>
<tr>
<td><a href="http://taalvos.nl"><img class="alignleft" title="taalvos" src="http://evict.nl/wp-content/uploads/2010/01/taalvos-254x300.png" alt="" width="254" height="300" /></a></td>
<td><a href="http://mooijmanmultiservices.nl"><img class="alignright" title="mooijman" src="http://evict.nl/wp-content/uploads/2010/01/mooijman-216x300.png" alt="" width="216" height="300" /></a></td>
</tr>
</tbody>
</table>
<h2  class="related_post_title">Related posts</h2><ul class="related_post"><li>January 5, 2010 -- <a href="http://evict.nl/index.php/announcements/wordpress-website-now-live" title="WordPress website now live">WordPress website now live</a> (0)</li><li>January 8, 2010 -- <a href="http://evict.nl/index.php/web/404-urlrewrite-and-wordpress-search" title="404 urlrewrite and WordPress search">404 urlrewrite and WordPress search</a> (2)</li><li>January 6, 2010 -- <a href="http://evict.nl/index.php/web/configuring-wordpress" title="Configuring WordPress">Configuring WordPress</a> (0)</li><li>December 29, 2009 -- <a href="http://evict.nl/index.php/announcements/welcome" title="Welcome&#8230;">Welcome&#8230;</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://evict.nl/index.php/web/two-new-websites-live/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Converting a generic list to one of its interfaces or base class</title>
		<link>http://evict.nl/index.php/code/converting-a-generic-list-to-one-of-its-interfaces-or-base-types</link>
		<comments>http://evict.nl/index.php/code/converting-a-generic-list-to-one-of-its-interfaces-or-base-types#comments</comments>
		<pubDate>Tue, 26 Jan 2010 20:14:21 +0000</pubDate>
		<dc:creator>Edwin Vermeer</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[generic list]]></category>

		<guid isPermaLink="false">http://evict.nl/?p=262</guid>
		<description><![CDATA[Did you ever have a method that returned a generic list of some type but you actually needed a generic list of one of its interfaces or base class? You probably solved this by cloning the method or by creating a new list while looping through all items. In the article below I will show [...]]]></description>
			<content:encoded><![CDATA[<p>Did you ever have a method that returned a generic list of some type but you actually needed a generic list of one of its interfaces or base class? You probably solved this by cloning the method or  by creating a new list while looping through all items. In the article below I will show you a nice and simple generic solution for this problem.</p>
<p>Let&#8217;s assume you have a class named Car that has an interface named IVehicle and you also have a class named Plane that also has the interface IVehicle. We also have a data repository that has a method for each of them for retrieving a list of items. Now we want to execute the IVehicle method named Move on all Car objects and Plane objects. We will start by retrieving both lists from our data repository object named MyRepository:</p>
<pre class="brush: c#">
    var cars = MyRepository.GetCars()
    var planes = MyRepository.GetPlains()
</pre>
<p>Wouldn&#8217;t it be nice if we could just concatenate those 2 lists so that we could call the IVehicle method for all of them in one simple loop?</p>
<pre class="brush: c#">
    var vehicles = cars.Concat(planes);
    foreach(var vehicle  in vehicles)
    {
        vehicle.Move();
    }
</pre>
<p>Unfortunately trying this will give you this error:<br />
Error 1 The type arguments for method &#8216;System.Linq.Enumerable.Concat<TSource>(System.Collections.Generic.IEnumerable<TSource>, System.Collections.Generic.IEnumerable<TSource>)&#8217; cannot be inferred from the usage. Try specifying the type arguments explicitly.</p>
<p>If we do want to Concat the two collections together, then we first have to cast both collections to th IVehicle interface. At this moment C# 3.0 does not have a simple option to convert a generic list to one of its interfaces or base classes. The .ConvertAll is not easy to use. Fortunately Microsoft recognized this missing feature and in C# 4.0 you will be able to perform this cast by using <a href="http://msdn.microsoft.com/en-us/library/ee207183%28VS.100%29.aspx">Covariance and Contravariance</a>. For now you have to use the difficult .ConvertAll method. The simple helper class below will make this easy for you. </p>
<pre class="brush: c#">
    public static class GenericListConverter
    {
        public static T2 AsType&lt;T1, T2&gt;(this T1 model) where T1 : T2
        {
            return model;
        }
        public static IList&lt;T2&gt; ToListOfType&lt;T1, T2&gt;(this IEnumerable&lt;T1&gt; myList) where T1 : T2
        {
            return (new List&lt;T1&gt;(myList.ToList())).ConvertAll&lt;T2&gt;(AsType&lt;T1, T2&gt;);
        }
        public static IList&lt;T2&gt; ToListOfType&lt;T1, T2&gt;(this IList&lt;T1&gt; myList) where T1 : T2
        {
            return (new List&lt;T1&gt;(myList)).ConvertAll&lt;T2&gt;(AsType&lt;T1, T2&gt;);
        }
    }
</pre>
<p>Using this class is simple. You can just perform a ToListOfType on any generic IEnumerable or IList.</p>
<pre class="brush: c#">
    var cars = myRepository.GetCars().ToListOfType&lt;Car, IVehicle&gt;();
    var planes = myRepository.GetPlains().ToListOfType&lt;Plain, IVehicle&gt;();
</pre>
<p>The result of this is that you have 2 generic lists of IVehicle and the Concat will now work.</p>
<p>In this case there is an alternative to the above helper class. It is possible to create a helper method that accept anything that implements the IVehicle interface. The code would then look something like:</p>
<pre class="brush: c#">
    ...
        Move((List&lt;Car&gt;)cars);
        Move((List&lt;Plane&gt;)planes);
    ...
    public static void Move&lt;TItem&gt;(List&lt;TItem&gt; vehicles) where TItem : IVehicle
    {
        foreach (var vehicle in vehicles)
        {
            vehicle.Move();
        }
    }
</pre>
<h2  class="related_post_title">Related posts</h2><ul class="related_post"><li>July 4, 2010 -- <a href="http://evict.nl/index.php/code/extension-methods-not-always-a-good-thing" title="Extension methods: Not always a good thing.">Extension methods: Not always a good thing.</a> (0)</li><li>March 5, 2010 -- <a href="http://evict.nl/index.php/code/get-the-field-type-from-entityframework-or-linq2sql-generated-classes" title="Get the field type from EntityFramework or linq2sql generated classes">Get the field type from EntityFramework or linq2sql generated classes</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://evict.nl/index.php/code/converting-a-generic-list-to-one-of-its-interfaces-or-base-types/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>404 urlrewrite and WordPress search</title>
		<link>http://evict.nl/index.php/web/404-urlrewrite-and-wordpress-search</link>
		<comments>http://evict.nl/index.php/web/404-urlrewrite-and-wordpress-search#comments</comments>
		<pubDate>Fri, 08 Jan 2010 00:28:12 +0000</pubDate>
		<dc:creator>Edwin Vermeer</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[urlrewrite]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://evict.nl/?p=235</guid>
		<description><![CDATA[Today I thought about my problem of having my old site still 1/2 alive next to my new WordPress site. On the internet there are still a couple of links that directly point to various files that aren&#8217;t used anymore. Wouldn&#8217;t it be nice if you could just remove all those old files and still [...]]]></description>
			<content:encoded><![CDATA[<p>Today I thought about my problem of having my old site still 1/2 alive next to my new WordPress site. On the internet there are still a couple of links that directly point to various files that aren&#8217;t used anymore. Wouldn&#8217;t it be nice if you could just remove all those old files and still come up with the right WordPress page?</p>
<p>I just made this possible by changing my custom 404 urlrewrite page. This is what my page now does:<br />
1. get whatever is after the domain name from the url and open the wordpress index.php with that part behind it.<br />
2. if the result is not a regular page, then get the words from the url and perform a search.</p>
<p>for instance the link <a href="http://evict.nl/error">http://evict.nl/error</a> will search for the word error because there is no page named error. One of my old pages <a href="http://evict.nl/comdoc/default.asp">http://evict.nl/comdoc/default.asp</a> will now search for &#8216;comdoc&#8217; and still find the comdoc content (below this post).</p>
<p>Here is the complete sourcecode of my error.asp</p>
<pre class="brush: vb">
&lt;%
Response.Buffer = True
Response.Status = &quot;200 OK&quot;
Response.CharSet = &quot;UTF-8&quot;
Session.CodePage = 65001
myurl = QueryPath()
content = ReturnPage(myurl)
notfound = &quot;Sorry, but you are looking for something that isn&#039;t here. You can search again by using the form on upper right of the page...&quot;
if instr(content, notfound) &gt; 1 or len(trim(content)) &lt; 1 then
	Response.Write ReturnPage(SearchQueryPath())
else
	Response.Write content
end if
Response.End()

Function QueryPath()
	&#039; The WordPress location
	w = &quot;http://&quot; + Request.ServerVariables(&quot;HTTP_HOST&quot;) + &quot;/index.php&quot;
	&#039; Take whatever is after the host name
	q = mid(request.QueryString, instr(request.QueryString, Request.ServerVariables(&quot;HTTP_HOST&quot;)) , 999)
	&#039; Take the part behind the first /
	QueryPath = w + mid(q, instr(q, &quot;/&quot;) , 999)
End Function

Function SearchQueryPath()
	&#039; The WordPress location
	w = &quot;http://&quot; + Request.ServerVariables(&quot;HTTP_HOST&quot;) + &quot;/index.php?submit=Find&amp;s=&quot;
	&#039; Take whatever is after the host name
	q = mid(request.QueryString, instr(request.QueryString, Request.ServerVariables(&quot;HTTP_HOST&quot;)) , 999)
	&#039; Take the part behind the first / and remove all / and \
	c = LCase(replace(replace(mid(q, instr(q, &quot;/&quot;) + 1 , 999),&quot;/&quot;,&quot; &quot;),&quot;\&quot;,&quot; &quot;))
	&#039; Remove the default.asp or .asp or .
	SearchQueryPath = w + replace(replace(replace(c,&quot;default.asp&quot;,&quot;&quot;),&quot;.asp&quot;,&quot;&quot;),&quot;.&quot;,&quot; &quot;)
End Function

Function ReturnPage(myPage)
    on error resume next
	br = Request.ServerVariables(&quot;HTTP_USER_AGENT&quot;)
	set xmlhttp = CreateObject(&quot;MSXML2.ServerXMLHTTP&quot;)
	xmlhttp.open &quot;GET&quot;, myPage, false
	xmlhttp.setRequestHeader &quot;Content-Type&quot;, &quot;text/HTMI&quot;
	xmlhttp.setRequestHeader &quot;CharSet&quot;, &quot;UTF-8&quot;
	xmlhttp.setRequestHeader &quot;User-Agent&quot;,br 	&#039; Required for the WPtouch iPhone Theme
	xmlhttp.send &quot;&quot;
	if err.number &lt;&gt; 0 then
		Response.Status = &quot;404 Page not found&quot;
		ReturnPage = &quot;404 Page not found&quot;
	else
		ReturnPage = xmlhttp.responseText  &#039;responseBody
	end if
	set xmlhttp = nothing
End Function
%&gt;
</pre>
<h2  class="related_post_title">Related posts</h2><ul class="related_post"><li>January 28, 2010 -- <a href="http://evict.nl/index.php/web/two-new-websites-live" title="Two new websites live!">Two new websites live!</a> (0)</li><li>January 6, 2010 -- <a href="http://evict.nl/index.php/web/configuring-wordpress" title="Configuring WordPress">Configuring WordPress</a> (0)</li><li>January 5, 2010 -- <a href="http://evict.nl/index.php/announcements/wordpress-website-now-live" title="WordPress website now live">WordPress website now live</a> (0)</li><li>December 29, 2009 -- <a href="http://evict.nl/index.php/announcements/welcome" title="Welcome&#8230;">Welcome&#8230;</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://evict.nl/index.php/web/404-urlrewrite-and-wordpress-search/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Configuring WordPress</title>
		<link>http://evict.nl/index.php/web/configuring-wordpress</link>
		<comments>http://evict.nl/index.php/web/configuring-wordpress#comments</comments>
		<pubDate>Tue, 05 Jan 2010 23:42:24 +0000</pubDate>
		<dc:creator>Edwin Vermeer</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://evict.nl/?p=212</guid>
		<description><![CDATA[It&#8217;s now a litle more than a week since I installed WordPress on my website. Installing WordPress, finding a good looking theme, finding and adding nice plugins and migrating the content from my old site was quite easy. The thing that costed me the most time was a good way to do the url rewrite. [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s now a litle more than a week since I installed WordPress on my website. Installing WordPress, finding a good looking theme, finding and adding nice plugins and migrating the content from my old site was quite easy. The thing that costed me the most time was a good way to do the url rewrite. I solved that by creating a simple error.asp page and assigning that page to the 404 error. You can find more info about this error.asp <a href="http://evict.nl/web/404-urlrewrite-and-wordpress-search">here</a>.</p>
<p>One other point that I wanted to solve is that I have multiple domains running on 1 website and I do want multiple WordPress installations but not for all domains. I also did not want to use WordPress MU because of compatibility and flexability issues. I solved this by conditionally setting the database table prefix in the wp-config.php for the WordPress instances I wanted and adding a conditional redirect in the index.php for the none WordPress domains I have. Here is the code that I use. </p>
<p>wp-config.php</p>
<pre class="brush: php">
$table_prefix  = &#039;wp_&#039;;
$sl = strlen($_SERVER[&#039;SERVER_NAME&#039;]);
$d = substr($_SERVER[&#039;SERVER_NAME&#039;], $sl - 10);
if ($d == &#039;taalvos.nl&#039;){
	$table_prefix  = &#039;taalvos_&#039;;
</pre>
<p>index.php</p>
<pre class="brush: php">
$d = substr($_SERVER[&#039;SERVER_NAME&#039;], $sl - 16);
if ($d == &#039;de-rozemarijn.nl&#039;){
	/** redirect function from wp-app.php should also be included. */
	redirect(&#039;default_rozemarijn.asp&#039;);
}
</pre>
<p>The number of Plugins that are available for WordPress can be overwhelming. Below is a list of the Plugins that I installed. Thanks <a title="Thushan Fernando Uncut" href="http://www.thushanfernando.com/">Thushan</a> for a couple of nice tips.</p>
<p><a href="http://www.addtoany.com/"><strong>Add to Any: Share/Bookmark/Email Button</strong></a></p>
<p>Help readers share, bookmark, and email your posts and pages using any service.</p>
<p><a href="http://ketsugi.com/software/wordpress/acronyms-plugin/"><strong></strong></a><strong><a>Acronyms</a> </strong></p>
<p>A plugin to wrap acronyms in posts and comments with appropriate acronyms. Allows users to manage lists of acronyms through admin interface. Based on Joel Bennett&#8217;s Acronym Replacer plugin (http://www.huddledmasses.org/) and Joel Pan&#8217;s NP_Acronym plugin for Nucleus CMS.</p>
<p><a href="http://akismet.com/"><strong></strong></a><strong><a>Akismet</a> </strong></p>
<p>Akismet checks your comments against the Akismet web service to see if they look like spam or not. You need a WordPress.com API key to use it. You can review the spam it catches under &#8220;Comments.&#8221; To show off your Akismet stats just put &lt;?php akismet_counter(); ?&gt; in your template. See also: WP Stats plugin.</p>
<p><a href="http://semperfiwebdesign.com/"><strong>All in One SEO Pack </strong></a></p>
<p>Out-of-the-box SEO for your WordPress blog. Options configuration panel</p>
<p><a href="http://www.arnebrachhold.de/redir/sitemap-home/"><strong>Google XML Sitemaps </strong></a></p>
<p>This plugin will generate a special XML sitemap which will help search engines like Google, Yahoo, Bing and Ask.com to better index your blog.</p>
<p><a href="http://www.funnydingo.de/projekte/new-tag-cloud/"><strong>New Tag Cloud</strong></a></p>
<p><strong> </strong>The plugin provides an widget wich shows a tag cloud with the tags used by the new WordPress own tagging feature</p>
<p><a href="http://thislab.com/2007/12/16/release-wordpress-plugin-syntaxhighlighter-plus/"><strong>SyntaxHighlighter Plus</strong></a></p>
<p>An advanced upload-and-activate WordPress implementation of Alex Gorbatchev&#8217;s SyntaxHighlighter JavaScript code highlighting package. See WordPress.com&#8217;s &#8220;How do I post source code?&#8221; for details. Click here for options.</p>
<p><a href="http://www.laptoptips.ca/projects/tinymce-advanced/"><strong>TinyMCE Advanced</strong></a></p>
<p>Enables advanced features and plugins in TinyMCE, the visual editor in WordPress.</p>
<p><a href="http://www.webmaster-source.com/tweetable-twitter-plugin-wordpress/"><strong>Tweetable</strong></a></p>
<p>Integrate Twitter with your WordPress blog. Automatically tweet new posts, display your latest tweet in your sidebar, etc.</p>
<p><a href="http://fairyfish.net/2007/09/12/wordpress-23-related-posts-plugin/"><strong>WordPress Related Posts</strong></a></p>
<p>Generate a related posts list via tags of WordPress</p>
<p><a href="http://bravenewcode.com/wptouch"><strong>WPtouch iPhone Theme </strong></a></p>
<p>A plugin which formats your site with a mobile theme for the Apple iPhone / iPod touch, Google Android and other touch-based smartphones.</p>
<h2  class="related_post_title">Related posts</h2><ul class="related_post"><li>January 28, 2010 -- <a href="http://evict.nl/index.php/web/two-new-websites-live" title="Two new websites live!">Two new websites live!</a> (0)</li><li>January 8, 2010 -- <a href="http://evict.nl/index.php/web/404-urlrewrite-and-wordpress-search" title="404 urlrewrite and WordPress search">404 urlrewrite and WordPress search</a> (2)</li><li>January 5, 2010 -- <a href="http://evict.nl/index.php/announcements/wordpress-website-now-live" title="WordPress website now live">WordPress website now live</a> (0)</li><li>December 29, 2009 -- <a href="http://evict.nl/index.php/announcements/welcome" title="Welcome&#8230;">Welcome&#8230;</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://evict.nl/index.php/web/configuring-wordpress/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress website now live</title>
		<link>http://evict.nl/index.php/announcements/wordpress-website-now-live</link>
		<comments>http://evict.nl/index.php/announcements/wordpress-website-now-live#comments</comments>
		<pubDate>Mon, 04 Jan 2010 23:40:24 +0000</pubDate>
		<dc:creator>Edwin Vermeer</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[live]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://evict.nl/?p=177</guid>
		<description><![CDATA[As of now my old website is completely migrated to a WordPress driven site. Almost all existing content was migrated from classic ASP. If you find any link that is not working or if you are missing content that was not migrated, then please leave me a message. Hmmm&#8230; I just found out that the [...]]]></description>
			<content:encoded><![CDATA[<p>As of now my old website is completely migrated to a WordPress driven site. Almost all existing content was migrated from classic ASP. If you find any link that is not working or if you are missing content that was not migrated, then please leave me a message.</p>
<p>Hmmm&#8230; I just found out that the details of a post are not available.</p>
<h2  class="related_post_title">Related posts</h2><ul class="related_post"><li>January 28, 2010 -- <a href="http://evict.nl/index.php/web/two-new-websites-live" title="Two new websites live!">Two new websites live!</a> (0)</li><li>January 8, 2010 -- <a href="http://evict.nl/index.php/web/404-urlrewrite-and-wordpress-search" title="404 urlrewrite and WordPress search">404 urlrewrite and WordPress search</a> (2)</li><li>January 6, 2010 -- <a href="http://evict.nl/index.php/web/configuring-wordpress" title="Configuring WordPress">Configuring WordPress</a> (0)</li><li>December 29, 2009 -- <a href="http://evict.nl/index.php/announcements/welcome" title="Welcome&#8230;">Welcome&#8230;</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://evict.nl/index.php/announcements/wordpress-website-now-live/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Welcome&#8230;</title>
		<link>http://evict.nl/index.php/announcements/welcome</link>
		<comments>http://evict.nl/index.php/announcements/welcome#comments</comments>
		<pubDate>Tue, 29 Dec 2009 21:04:09 +0000</pubDate>
		<dc:creator>Edwin Vermeer</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Welcome]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://evict.nl/wordpress/?p=1</guid>
		<description><![CDATA[switching to WordPress]]></description>
			<content:encoded><![CDATA[<p>I have neglected my websites for quite some time now. Currently I am trying to migrate old stuff to this WordPress environment.</p>
<h2  class="related_post_title">Related posts</h2><ul class="related_post"><li>January 28, 2010 -- <a href="http://evict.nl/index.php/web/two-new-websites-live" title="Two new websites live!">Two new websites live!</a> (0)</li><li>January 8, 2010 -- <a href="http://evict.nl/index.php/web/404-urlrewrite-and-wordpress-search" title="404 urlrewrite and WordPress search">404 urlrewrite and WordPress search</a> (2)</li><li>January 6, 2010 -- <a href="http://evict.nl/index.php/web/configuring-wordpress" title="Configuring WordPress">Configuring WordPress</a> (0)</li><li>January 5, 2010 -- <a href="http://evict.nl/index.php/announcements/wordpress-website-now-live" title="WordPress website now live">WordPress website now live</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://evict.nl/index.php/announcements/welcome/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

