The Joel Test: 12 Steps to Better Code by Joel Spolsky Wednesday, August 09, 2000 Have you ever heard of SEMA? It's a fairly esoteric system for measuring how good a software team is. No, wait! Don't follow that link! The neat thing about The Joel Test is that it's easy to get a quick yes or no to each question. A score of 12 is perfect, 11 is tolerable, but 10 or lower and you've got serious problems. Of course, these are not the only factors that determine success or failure: in particular, if you have a great software team working on a product that nobody wants, well, people aren't going to want it. 1. 2. If the process takes any more than one step, it is prone to errors. For this very reason, the last company I worked at switched from WISE to InstallShield: we required that the installation process be able to run, from a script, automatically, overnight, using the NT scheduler, and WISE couldn't run from the scheduler overnight, so we threw it out. 3. 4. Bug databases can be complicated or simple. 5. 6. 7. 8. 9. 10. 11.
50 Places You Can Learn to Code (for Free) Online If you’re curious about learning a programming language then you’re in luck: there’s no shortage of resources for learning how to code online. University-level courses, tutorials, cheat sheets, and coding communities all offer excellent ways to pick up a new language, and maybe even a new job, too. Read on, and you’ll discover 50 great places to learn how to code, for free, online. University Many big names in education including MIT and Stanford offer programming courses, absolutely free. General If you’re just dipping your toes into programming, or you want to find a variety of resources, these sites offer several different ways to learn how to code. Community Learn how to code on these sites with a heavy community influence ready to offer help to newbs. Language Specific Drill down to the language you really want on these sites, offering expansive learning in one or two specific languages.
Windows Phone 7 - Wprowadzenie | MSDN (Polska) Autor: Bartłomiej Zass Opublikowano: 2010-09-23; Zaktualizowano: 2010-12-20 Windows Phone 7 jest innowacyjną platformą mobilną umożliwiającą tworzenie zaawansowanych gier oraz aplikacji użytkowych. Każde urządzenie ma ustaloną z góry specyfikację techniczną, co ułatwia przystosowanie projektowanych rozwiązań do szerokiej grupy odbiorców. Każdy telefon Windows Phone 7 musi spełniać następujące wymagania sprzętowe: Duży ekran pojemnościowy o rozdzielczości WVGA (800x480) Czteropunktowy mechanizm multi-touch Akceleracja sprzętowa grafiki DirectX 9 Zestaw sensorów: GPS, akcelerometr, kompas, światło i czujnik zbliżeniowy Kamera cyfrowa Stały zestaw przycisków: Start, Search, Back Wsparcie dla komunikacji poprzez sieci telefonii komórkowej oraz Wi-Fi 256 MB (lub więcej) RAM oraz 8 GB (lub więcej) pamięci flash Telefony zintegrowane są z globalnym katalogiem aplikacji – Windows Marketplace, który jest jednocześnie jedynym dostępnym mechanizmem wgrywania ich na telefon.
Windows Dev Center: Tools, samples and docs to build Windows apps We make it easy to get started. All you need to build compelling apps for phones, tablets and PCs is in Visual Studio Express 2013 for Windows (with Update 2 RC). Included are universal app templates, a full-featured code editor, a powerful debugger, emulators, rich language support, and more, all ready to use in production. We have dozens of code samples to get you up and running fast. We’ll help you get your Windows Store app ready for a successful launch through one of our worldwide community events or by connecting you with a Windows platform expert.
Massive open online course Poster, entitled "MOOC, every letter is negotiable", exploring the meaning of the words "Massive Open Online Course" A massive open online course (MOOC /muːk/) is an online course aimed at unlimited participation and open access via the web. In addition to traditional course materials such as filmed lectures, readings, and problem sets, many MOOCs provide interactive user forums to support community interactions among students, professors, and teaching assistants (TAs). MOOCs are a recent and widely researched development in distance education which were first introduced in 2006 and emerged as a popular mode of learning in 2012. Early MOOCs often emphasized open-access features, such as open licensing of content, structure and learning goals, to promote the reuse and remixing of resources. History What is a MOOC? Precursors Early approaches Tabulation of the significant differences between xMOOC and cMOOC. cMOOCs and xMOOCs Emergence of MOOC providers
Introduction - C# Tutorial Welcome to this C# tutorial. With the introduction of the .NET framework, Microsoft included a new language called C# (pronounced C Sharp). C# is designed to be a simple, modern, general-purpose, object-oriented programming language, borrowing key concepts from several other languages, most notably Java. C# could theoretically be compiled to machine code, but in real life, it's always used in combination with the .NET framework. C# is an Object Oriented language and does not offer global variables or functions. In the following chapters, you will be guided through the most important topics about C#.
Reliable Software - Creators of the distributed version control system, Code Co-op Union types in C# - boustrophedonic This post shows how to easily implement states in C# using a T4 template. Background I often run into situations where I need an object that has a number of alternate “states” or “choices”. Some examples: A shopping cart might have states Empty, Active and Paid. So given this common situation, what kinds of ways are there to implement these kinds of cases? The inheritance based approach The standard approach in a object-oriented language is to use inheritance. But where should the custom behavior live? For example, in the shopping cart example, should the “RemoveItem” method be available at the interface level? Approach 1: Define all possible actions at the interface level Let’s say the “RemoveItem” method is available at the interface level, then the interface would look like this: But what should the empty state implementation do with the methods that are not relevant? Throwing an exception seems a bit drastic, and ignoring the call seems even worse. Here’s some code to show what I mean: