Semantic Versioning Dean Wampler Sphere Online Judge (SPOJ) How do you handle your Project Manager - Programmers - Stack Exchange Bruce Eckel's MindView, Inc. ::: Exceptional Learning Experiences Video Lectures | Introduction to Computer Science and Programming Normal Stuff - API Design Principles English Русском One of Qt’s most reputed merits is its consistent, easy-to-learn, powerful API. This document tries to summarize the know-how we’ve accumulated on designing Qt-style APIs. Although these guidelines are aimed primarily at public APIs, you are encouraged to use the same techniques when designing internal APIs, as a courtesy to your fellow developers. You may also be interested to read Jasmin Blanchette’s Little Manual of API Design [.in.tum.de] or its predecessor Designing Qt-Style C++ APIs [doc.qt.digia.com] by Matthias Ettrich. Six Characteristics of Good APIs An API is to the programmer what a GUI is to the end-user. In his Qt Quarterly 13 article about API design [doc.qt.nokia.com], Matthias tells us he believes that APIs should be minimal and complete, have clear and simple semantics, be intuitive, be easy to memorize, and lead to readable code. Be minimal A minimal API is one that has as few public members per class and as few classes as possible. Be complete Be intuitive
Code refactoring By continuously improving the design of code, we make it easier and easier to work with. This is in sharp contrast to what typically happens: little refactoring and a great deal of attention paid to expediently adding new features. If you get into the hygienic habit of refactoring continuously, you'll find that it is easier to extend and maintain code.—Joshua Kerievsky, Refactoring to Patterns[1] Overview[edit] Refactoring is usually motivated by noticing a code smell.[2] For example the method at hand may be very long, or it may be a near duplicate of another nearby method. There are two general categories of benefits to the activity of refactoring. Maintainability. Before applying a refactoring to a section of code, a solid set of automatic unit tests is needed. The process is then an iterative cycle of making a small program transformation, testing it to ensure correctness, and making another small transformation. List of refactoring techniques[edit] Hardware refactoring[edit]
Easing into SICP "The Structure and Interpretation of Computer Programs" by Abelson and Sussman ( is often recommended reading on HN and elsewhere. However, you may find it to be much denser than the breezy computer books that are typically published. To help you acclimate to the concepts in SICP, I recommend the following steps: First, read "Concrete Abstractions" by Max Heilparin ( and "Simply Scheme" by Brian Harvey ( Next, listen to or watch Brian Harvey's lectures for "The Structure and Interpretation of Computer Programs" ( Third, watch the lectures by Holly Yanko ( Finally, watch the videos of Abelson and Sussman (
Normal Stuff - Personal names around the world Background People who create web forms, databases, or ontologies are often unaware how different people’s names can be in other countries. They build their forms or databases in a way that assumes too much on the part of foreign users. This article will first introduce you to some of the different styles used for personal names, and then some of the possible implications for handling those on the Web. This article doesn't provide all the answers – the best answer will vary according to the needs of the application, and in most cases, it may be difficult to find a 'perfect' solution. Scenarios There are a couple of key scenarios to consider. You are designing a form in a single language (let’s assume English) that people from around the world will be filling in. In reality, you will probably not be able to localize for every different culture, so even if you rely on approach 2, some people will still use a form that is not intended specifically for their culture. Examples of differences .
The Mozart Programming System