Development
Archived Posts from this Category
Posted by Chris Alcock on 09 Feb 2012 | Tagged as: .NET, Development, Morning Brew
Information
- The State of NuGet - Phil Haack breaks some of the blogging silence on NuGet and gives an update on what the project has been up to recently, highlighting the project status page, the issue tracker which details many of the changes coming in 1.7, and also the Jabbr chat room which is the ideal place to go to discuss all things Nuget (and plenty of other topics too)
- Modern Web Development - Part 4 - Debugging - Shawn Wildermuth continues his series of posts covering his re-discovery of web development, and looking at how it has changed from web development of old. This post explores the art of Debugging looking at how you can use browser features and extensions to enable you to successfully debug client side code and styling.
- jQuery Tip #2 - Manipulating the DOM in a Loop - Dan Wahlin continues with his jQuery Tips series with a look at using jQuery to add elements to the page, discussing the performance impacts of the different ways of achieving this.
- Potential pitfalls to avoid when passing around async lambdas - Stephen Toub discusses the use of async lambdas and anonymous methods with the Task Parallel Library, discussing their use, before looking at some of the subtle bugs that incorrect use can introduce.
- WF3 Types Marked Obsolete in .NET 4.5 - Jurgen Willis of the WorkflowTeam discusses the decision to mark the WF3 implementation ‘System.Workflow’ as obsolete in the forthcoming .NET 4.5 release, and also highlights some resources to aid anyone migrating a WF3 app to WF4
- Connection Pool Fragmentation: Use Federations and you won’t need to learn about these nasty problems that come with sharding! - Cihan Biyikoglu discusses how the new SQL Azure Federations functionality makes sharding your data within multiple databases much easier, and reduces the number of connections to databases required
- Using the Battery API - Part of WebAPI - Robert Nyman discusses the Battery API which allows web applications running in Firefox on Windows, Linux and Android to access details about the battery life of the device its running on, allowing your application to respond suitably. Some interesting uses detailed in the comments.
- C# Needs Seqs - Chris Eargle discusses the use of the IEnumerable<T> interface as a great way of working with sequences, and proposes the introduction of a seq<T> keyword/data type in C# to allow easier access to a type which is pretty core to most development.
- Windows Phone 7.5 : Working with Azure Storage Table - Wriju takes a look at the use of Windows Azure Storage to fulfil the storage needs of Windows Phone applications, sharing some code to illustrate it in use.
- Windows Phone Fast Application Switching and Page State - Dhananjay Kumar discusses the improvements in Windows Phone Mango to the Fast Application Switching, and how it relates to Page State
- OSS Rules of Engagement - Jimmy Bogard shares his feelings on the debate about OSS development and community comments / complaints, sharing his 4 rules of engagement for Open Source Software
- Visual Studio 11 not 2011 - Daniel Moth highlights a subtlety of the current naming for the next release of Visual Studio - the fact that it currently is being referred to by its Version Number, and not the year of release.
- Using PowerShell v3 to consume the StackOverflow JSON API - Doug Finke follows on from a post included yesterday about using JSON.NET to consume the Stack Overflow API, instead taking a look at consuming it using PowerShell 3
Community
- standards-next.org - Mobile and devices - standards>next are running an event in Manchester on Saturday 3rd March looking at the future of web standards when applied to mobile and other devices. The event is being held at the John Dalton Building of Manchester Metropolitan University from 1pm to 6pm. The event is free, but registration is required, and at the time of writing there are still 11 tickets available
- In The Brain of Itamar Syn-Hershko: RavenDB - The London .NET Usergroup and Skills Matter join forces for an eventon the evening of Tuesday 28th February where they welcome Itamar Syn-Hershko, a core developer on the RavenDB project to discusses how RavenDB Indexes data, and to discuss Map Reduce, MultiMap, Live Projections and much more.
No Comments »
Posted by Chris Alcock on 08 Feb 2012 | Tagged as: .NET, Development, Morning Brew
Software
- Modernizr 2.5: Supercharged for 2012 - The Modernizr Team announce the release of Modernizr 2.5, their latest and biggest update ever. The new release includes a vast array of additional feature detects, the support of a full test suite. There are also a few backwards compatibility breaks to be aware of before your upgrade.
- Visual Studio Unit Testing Extensions v1.2.0.0 - Jeremiah Clark announces the release of the Visual Studio Unit Testing Extensions 1.2.0.0, a library which adds extension methods to make more readable test when working with the Viausl Studio Unit Testing environment. This release includes additional assertion methods
Information
- When "ExecuteSynchronously" doesn’t execute synchronously - Stephen Toub continues his posts digging deeper into the Task Parallel Library discussing today the TaskContinuationOptions enum which lets you specify how your continuation runs after a task occurs
- 15 Designing Windows Phone Icons - Arturo Toledo discusses at length the guidelines and design strategies for the creation of Icons for Windows Phone 7 Applications as a part of his 31 Seeks of Windows Phone Metro Design series.
- Mango Sample: Give your app the Finger! - Jerry Nixon continues his Windows Phone 7.1 Mango series looking today at making XAML elements movable on the screen using touch and drag. Jerry also shares a video of creating an Azure based Windows Phone App in his post A Cloud-based Phone App in 5 Minutes.
- Backbone.js And PhoneGap Sample App - Ben Forta highlights some recent posts from Christophe Coenraets looking at building HTML5 CRUD applications using Backbone.js, and also showing how backbone,js can be used with PhoneGap to create cross platform mobile applications.
- Rewriting My "Guaranteed Callbacks" Code With jQuery Deferred - Derick Bailey takes a look at jQuery ‘deferred’ objects and ‘promises’ and looks at how they can be applied to some existing code of his for running callbacks when collections are loaded in Backbone.
- Send me a patch for that &
- Kiss The Ring… - Both Ayende and Rob Conery respond to Hadi Hariri’s post included in yesterday’s edition discussing community expectations of open source and providing patches and feedback. More opinions, and most certainly interesting reading
- jQuery Tip #1 - Defining a Context When Using Selectors - Dan Wahlin shares the first post in a new series looking at jQuery and sharing tips on its use. This post focuses on the use of selectors in jQuery, looking at some of the less well common ways of selecting elements.
- Using JSON.net to consume the JSON Stack Overflow API - Jonathan Creamer takes a look at consuming JSON powered APIs using .NET code, looking at the JSON.NET library as probably the best way of consuming such data, and exploring its use consuming the StackOverlfow API.
Community
- Building HTTP services with ASP.NET Web API in MVC 4 Beta - The Community For MVC (C4MVC) have a Virtual Usergroup meeting today, 8th Feb, 12-1PM CST which will be looking at the Web API which is included in the ASP.NET MVC4 Beta. Daniel Roth will be discussing the concepts and looking at building RESTful applications using it in the session.
- NxtGenUG - Event: World Domination: ASP.NET MVC - The Cambridge NxtGenUG group welcome Guy Smith-Ferrier for a session on ASP.NET MVC on the evening of Tuesday 6th March at Microsoft Research Cambridge. In the session Guy will look at the localisation of your ASP.NET MVC applications, sharing his wealth of knowlege on the subject.
- WPUG presents #NotAtMWC12 - The London based Windows Phone User Group will be meeting on the evening of Tuesday 28th February for an event looking at the wider world of mobile, including discussions of the goings on at MWC in Barcelona.
1 Comment »
Posted by Chris Alcock on 07 Feb 2012 | Tagged as: .NET, Development, Morning Brew
Update: The broken HTML gremilins made an appearance today merging the links to Hadi Hariri and Derick Bailey’s links - should be straightned out now
Software
- ServiceStack/Bundler - Demis Bellot shares Bundler, a Compiler, combiner and minifier for Less, Sass, CoffeeScript and JavaScript files in which bundling is done at compile time. The implementation is in Node.JS and ships with a Windows node.exe, and is available as a Nuget package for easy inclusion in your projects.
Information
- What is "binding" and what makes it late? - Eric Lippert discusses another of those terms that get banded about which people often have the wrong impression of its meaning. This post explores the concept of binding (in the compiler sense) and takes a look at the concept of late binding.
- FromAsync(asyncResult, …) vs FromAsync(beginMethod, …) - Stephen Toub demystifies another aspect of the Task Parallel Library looking at the two overloads of the FromAsync helper method to convert async begin/end methods to Tasks, discussing the scenarios in which you would use each.
- .NET phone number validation with Google libphonenumber - The AppHarbor team blog shares a piece on the tricky business of telephone number validation, looking at the use of the Google libphonenumber, and more specifically the .NET port from Patrick Mézard, which consists of years’ worth of experience parsing telephone numbers all over the world.
- Web Dev .NET: Differences Between jQuery .bind() vs .live() vs .delegate() vs .on() - Elijah Manor takes a look at four similar jQuery methods (.bind(), .live(), .delegate() and .on()), discussing the use of each, with examples, and helping to explain which one you should be using in which scenario.
- Submit a patch - Hadi Hariri discusses the role of complaining in the software world, discussing how it is generally responded to in the commercial software world, before talking about the open source world, where ‘complaints’ are often less well responded to, sharing an opinion on what can be done to improve matters.
- 3 Stages Of A Backbone Application’s Startup - Derick Bailey discusses the standard method for startup code in Backbone based JavaScript applications, and shares how his Backbone.Marionette addon makes use of application initializer callbacks with added benefits
- The Commodore 64 Emulator: Emulating Pointers in a sandbox when the real thing is not allowed - Pete Brown discusses some of his recent work on his Commodore 64 Emulator, written to run in Silverlight, and drawing on the Frodo C64 Emulator written in C and C++. In this post Pete discusses how he worked around the use of pointers in the C / C++ version when porting to .NET, and specifically Silverlight where unsafe code is not officially allowed.
- Implementing a Code Action using Roslyn - Brian Rasmussen of the C# Team discusses how the Roslyn Services API allows you to manipulate and correct code issues in within Visual Studio from an extension, illustrating with an example which replaces use of Count() > 0 with .Any
- Previous Web Architectures & Web-app model quandary` - Paul Hammant discusses the web architectures of the past, looking at the evolution of web based platforms and the technologies and implementation styles used throughout the ages, before focusing on the current trend for micro web frameworks
1 Comment »
Posted by Chris Alcock on 06 Feb 2012 | Tagged as: .NET, Development, Morning Brew
Software
Information
- Know Thine Implicit Allocations - Stephen Toub discusses some fo the performance work that the Team have put in on the Task Parallel Library in .NET 4.5, looking at some of the specific performance tweaks and behaviours they encountered. Stephen also shares a look at Building a custom GetOrAdd method for ConcurrentDictionary<TKey, TValue> in another post.
- 4. 1st Class Functions - Dorian Corompt continues this series discussing the practices and principles behind Functional Programming. This post discusses the concept of First Class Functions. Looking at and giving examples of some of their properties.
- The Microsoft C++ Compiler Turns 20! - The Visual C++ Team Blog celebrate the 20th Birthday of the Microsoft C++ Compiler, looking back over some of its history and looking to the future in the form of the VS11 release.
- From C# to C++, the short guide that isn’t (all that short) - Greg Duincan highlights a short (12200 words) guide to C++ for C# Developers from Michael B. McLaughlin.
- Streaming live results to a web site using MSMQ/Duplex WCF/SignalR/jQuery - Sacha Barber takes a look at building a system to stream live results to a website using a combination of technologies ranging from the familiar (MSMQ) to the new (SignalR), explaining and illustrating the use of each in this CodeProject Article.
- HTML5 Web Workers: Classic Message Passing Concurrency - Sasha Goldshtein discusses the concurrency provided by JavaScript Web Workers in HTML5, looking at how they have re-invented concurrency on a platform with no existing implementations.
- A year in review with CQRS - John Teague takes a look back on a year working with an application architected with a CQRS style which went from inception and requirements in January, through to a first release in June, and shares the experiences of him and his team.
- Taking the Single Responsibility Principle Seriously - Ralf Westphal discusses the application of the Single Responsibility Principle, one of the SOLID Principles, looking at how it can be used to improve the quality of code in this article for DeveloperFusion
No Comments »
Posted by Chris Alcock on 03 Feb 2012 | Tagged as: .NET, Development, Morning Brew
Software
- NCrunch 1.37b Released! - Remco Mulder announces the release of NCrunch 1.37b, containing a raft of fixes for reported issues, along with some interesting new features regarding debugging, performance metrics, code coverage, keyboard shortcuts and much more.
- Fluqi - Ease using jQuery UI with ASP.NET and ASP.NET MVC - Fluqi is an interesting library which straddles the server and client, providing APIs for applying jQuery UI widgets to your application in a fluent manner. The library is open source, and hosted over on GitHub
- NuGet Project Uncovered: Burro - Jason Jarrett is continuing his series of posts looking at some of the hidden gems of the NuGet packages feed. Today’s post looks at Burro, a project to parse build output. Be sure to check back through Jason’s posts for the rest of his hidden gems.
- Rename Visual Studio Window Title extension for Visual Studio 2010 - The ‘Visual Studio add-ins, extensions and tools’ blog highlights a useful looking Visual Studio Extension for anyone who, like me, often has more than one copy of a project open in different Visual Studio Instances - this extension adds more path information to the window title allowing you to beterr distinguish between IDE instances.
Information
- [Special Edition] It’s Kinect day! The Kinect For Windows SDK v1 is out - Dan Fernandez and Greg Duncan highlight the release Kinect For Windows and the 1.0 release of the SDK, before Dan goes on to walk through Installing and Using the Kinect Sensor and discusses Setting up your Development Environment, both in video
- Kinect for Windows now available! Information and resources for you. - Eric Ligman shares a nice collection of links relating to resources about the Kinect for Windows product and SDK.
- Await, SynchronizationContext, and Console Apps: Part 3 - Stepjhen Toub continues his series looking at SynchronizationContext and its use with async methods, in this part looking at using it to run async methods which return void rather than Task
- Coding in Marble - Rico Mariani looks at the coding style of code which uses Promises, exploring different ways of representing such code to make it more elegant.
- Rx - DistinctUntilChanged - Bnaya Eshet continues his series of posts looking at the various methods of the Reactive Extensions. This post explores the DistinctUntilChanged operator
- WP7: CLR Managed Object overhead - Abhinaba Basu discusses the memory overhead of objects on the Windows Phone platform looking at the structure of objects in memory and looking at how different types of object are stored.
- New Tools in My TDD Arsenal - Alexander Beletsky highlights some of the recent additions to his tools used for Test Driven Development, highlighting NCrunch, NSubstitute and FluentAssertions.
- CSS3 3D Transforms in IE10 - Jennifer Yu of the Internet Explorer team discusses 3d Transformations in CSS3, discussing how the effects are implemented in IE10, and highlighting some demos.
- JavaScript File & Folder Structures: Just Pick One - Derick Bailey takes a look at the various different approaches to managing the files that make up your JavaScript, discussin a few and showing how he structures his client side MV* code.
- Node.js, Require and Exports - Karl Seguin is also discussing the organisation of JavaScript, in this case how you structure code in Node.js, and its module per file approach, looking at the use of Require and Exports.
- Slides, Notes and Recordings for Week 1 and 2 of #6weeksazure are all now available - Eric Nelson highlights the availability of recordings, slides and notes for the first two weeks of 6 weeks of Azure, a series of virual events for UK ISVs to gett them up and running on the Windows Azure Platform.
1 Comment »
Posted by Chris Alcock on 02 Feb 2012 | Tagged as: .NET, Development, Morning Brew
Apologies for the rather short edition this morning, having some internet connectivity issue, combined with a required early start has resulted in a short one today.
Software
- Kinect for Windows is now Available! - The Kinect for Windows team announce the release of Kinect for Windows, along with the version 1.0 of the Kinect for Windows SDK and runtime. These new devices have close focusing capabilities and will work with Windows 7 and 8, with the SDK providing for raw sensor streams, skeletal tracking, speech and audio and also offering an improved API.
- Why Serenade.js? - Jonas Nicklas introduces Serenade,js, a new client side MVC implementation in JavaScript. In the post Jonas discusses why he created the library, and looks at some of its key features
- Say hello to Bootstrap 2.0 - Mark Otto introduces the next major release of BootStrap, the Twitter front end toolkit for developing websites. V2 responds to the feedback on the previous version, updates documentation completely, introduces a 12 column grid system, adds new JavaScript plugins, and much more.
- jQuery 1.7.2 Beta 1 Released - The jQuery team announce the first beta release of jQuery 1.7.2, which addresses bugs reported in previous versions. This latest beta is available via the jQuery CDN.
Information
- The Web is the new Terminal: Are you using the Web’s Keyboard Shortcuts and Hotkeys? - Scott Hanselman discusses the use of keyboard shortcuts in web based applications, showing how you can add hotkeys to your web application, and looking at how a number of well known sites have implemented their hotkeys.
- Get Started with Node.js + Windows Azure: Resources - Peter Laudati shares a nice collection of resources about all aspects of working with Node.js on the Windows Azure platform, covering getting up and running with Node,js on Azure, the sue of online IDEs, MongoDB, IISNode, and a number of more general Node.js resources.
- MSDN Magazine - February 2012 - The February edition of MSDN Magazine is now available online, featuring articles on Async Programming in C++ using PPL, Building consumer device applications using Windows Azure, ASP.NET MVC Model Binding, HTML5, Windows Workflow 4.5, Nuget, Knockout.js, and much more
- February’s PragPub magazine - The Pragmatic Programmers have released their February edition of PragPub magazine, with articles this month looking at tips for agile leaders and freelancers, Scala, and all the usual editorial content
- Prompts and Directories - Even Better Git (and Mercurial) with PowerShell - Scott Hanselman also looks at how you can improve your use of command line version control systems using Powershell, and some community extensions.
No Comments »
Posted by Chris Alcock on 01 Feb 2012 | Tagged as: .NET, Development, Morning Brew
Software
- Umbraco 5.0 RTM is on CodePlex, ready for download - The Umbraco team announce the RTM release of V5.0. This release is a major milestone for the project, taking the key features of 4.7 and re-writing on the ASP.NET MVC stack, allowing use of Razor, along with the core CMS functionality.
- Debugger Canvas 1.1 is Released! - Kael Rowan announces the 1.1 release of the Debugger Canvas extension for Visual Studio. The release addresses a number of bugs, improves performance and also includes some new features including the ability to turn the canvas on or off during debugging, view multithreaded code on canvas, navigate more easily through code and view recursive calls side by side.
- StyleCop 4.7.7.0 released - Tatworth highlights the release of StyleCop 4.7.7.0 which includes compatibility with the Visual Studio 11 preview release and ReSharper 5.1, 6.0, 6.1 and 6.1.1, along with addressing further bugs.
Information
- One ASP.NET Sneak Peek: Elegant Web Forms and Snowballs in Hell - Scott Hanselman highlights some of the cool improvements coming in the various aspects of the ASP.NET platform, focusing on some of the exciting things happening for WebForms.
- Modern Web Development - Part 3 - Shawn Wildermuth continues his series looking at modern web development, exploring CSS in this post. Shawn discusses how CSS can be awkward, and how CSS can be made better by using dynamic stylesheet languages like SASS and LESS to enhance the generation of CSS rules via nested styles, mixins and variables.
- How to force Nuget not to update log4net to 1.2.11 - Krzysztof Kozmic talks about the updated Log4Net release which uses a new signing key, and how this is causing issues with lots of projects which have used Log4Net in the past via NuGet and are now having problems, exploring how to tell NuGet to use a specific version of a package.
- Ngen or not? The rules haven’t changed very much since 2004 - Rico Mariani gives a very nice concise explanation of the situations where you will gain performance by using ngen to generate native images for your applications assemblies.
- Free ebook: Introducing Microsoft SQL Server 2012 (second DRAFT preview) - Microsoft Press share the second draft preview of a forthcoming title on SQL Server 2012 which includes 6 out of the 12 chapters that will be in the final book - a great resource to have, and free.
- Announcing the SQL Server 2012 Early Adoption Cook Book - Roger Doherty highlights the SQL Server 2012 Early Adoption Cook Book TechNet wiki whcih contains links to a variety of information on SQL Server 2012 from both teams at Microsoft and their partner organisations.
- Visual Studio 2010 UML Design Pattern Toolbox Items Extension - Giles Davies shares a Visual Studio extension which adds the Gang of Four design pattern to the UML Toolbox in Visual Studio, and then goes on to discuss how the extension was created.
- CodeBuild: 15 Best Practices for Exception Handling - Cagdas Basaraner shares 15 best practices for handling exceptions in code - the post has is a bit Java based but a lot of the principles apply more generally, some interesting discussion in the comments.
- Event Handler Memory Leaks, Unwiring Events, and the WeakEventManager in WPF 4.5 - Pete Brown discusses the use of events in your code, focusing specifically on their use in WPF applications, and how they can be a cause of memory leaks, before discussing one of the new features in WPF4.5 makes implementing a solution much easier.
- Installing Mono on Windows - Paul Stack discusses his desire to get TeamCitySharp working on Mono, and to that end takes a look at getting a Mono environment up and running on a Windows machine.
No Comments »
Posted by Chris Alcock on 31 Jan 2012 | Tagged as: .NET, Development, Morning Brew
Software
- Beta release of the Amazon Web Services (AWS) SDK for Windows Phone - Lee Stott highlights the release of the Amazon Web Services SDK for Windows Phone allowing you to consume the range of Amazon Services (S3, SimpleDB, SQS Cloud Services) from the comfort of a sensible Windows Phone compatible API. Lee highlights a good set of resources for getting up and running with the library including video content from Channel 9.
Information
- Anonymous Types Unify Within An Assembly, Part Two - Eric Lippert continues his discussion of anonymous types within assemblies, and the unification of types which contain the same definition.
- Currying vs partial function application - Jon Skeet discusses the differences between the functional programming concepts of currying and partial application, looking at doing both in C# when programming in a more functional programming style.
- Hazards of Converting Binary Data To A String - Phil Haack picks up on an interesting group of questions on StackOverflow discussing how you can represent binary data as a string, and looking at the implications of the encoding used as to what it does to the data being encoded, and how it can result in changes to the actual bytes being written.
- About Orchard Governance and Microsoft - Bertrand Le Roy discusses the recent change to the Orchard project, and how the project which was initiated by Microsoft has now been formally handed over to the community in a more complete way than many company created open source projects have been in the past.
- The new OpenEverything organization - While on the topic of Open Source project involvement, Sebastien Lambla discusses some of the organisation changes for the OpenEverything (OpenWrap, OpenRasta, OpenFileSystem,…) projects and how he is now focusing his involvement.
- From Concept to Code in 6 hours: Shipping my first Windows Phone App - Scott Hanselman walks through the creation of his very first Windows Phone 7 Application, from concept to application in 6 hours, sharing the key bits along the way.
- 31 Weeks of Windows Phone Metro Design - #5 Choosing between Panoramas, Pivots and/or Pages. - Arturo Toledo is into week 5 of his 31 post series looking at all aspects of Windows Phone Metro design. This post takes a look at the three key UI concepts beginning with ‘P’ - Panorama, Pivots and Pages, looking at their use and how they are similar to other more familiar design concepts.
- The Big Dummies Guide for Windows Phone Developer Resources - Bil Simser shares a great collection of Windows Phone development resources, ranging from articles, frameworks, design concepts, training, to marketing and monitzation of applications.
- Winning on the Marketplace: The differentiation game - Paul Laberge discusses how you can make your applications stand out in the Windows Phone Marketplace, including how some application feature will make users love your application all the more.
- Introducing Apache Hadoop Services for Windows Azure - Roger Jennings discusses the use of Apache Hadoop Services on Windows Azure, looking at and highlighting some posts on the concepts and product, before walkig through two tutorials, and highlighting plenty of further resources.
- Find the jQuery Bug #3: Give Me Truth - Elijah Manor is running a series of posts looking at common bugs found in jQuery consuming code, and discussing what the problem is, and how you can resolve the issue.
- Testing a jQuery Plugin with ExpectThat and Mocha - Dan Mohl continues discussion of his ExpectThat library for CoffeeScript / JavaScript assertions, looking in this post at the application of the library in testing a jQuery Plugin
- Using SpecFlow to drive Selenium WebDriver Tests - Eli Weinstock-Herman discusses the use of SpecFlow combined with the Selenium WebDriver to provide a way fo executing tests derived from human readable requirements, running through the process from scenario to working test
Community
- SQL Bits X - The Biggest SQL Event in Europe - Sara Allison highlights the SQL Bits X SQL Server event and the associated training days. SQL Bits is a great conference, with SQL experts from all over the world, and this event is particularly special as it also doubles as the UK launch event for SQL Server 2012. Spaces are limited (although it is a large limit) and registrations for both the ‘pay for’ conference / training days and the Free Community Day are currently open.
- NxtGenUG - Event - Straighten Spaghetti with C# 5 - Jon Skeet takes a trip to Microsoft Research in Cambridge on Thursday 16th February for the NxtGenUG where he will be delivering a session on how C#5 and the new async functionality can help straighten out complex spaghetti code. Be sure to register early for what is bound to be a very popular event.
No Comments »
Next Page »