background preloader

API Design

API Design
One of the development tasks I do most often is designing the API for a reusable component. The components are usually for iOS (though sometimes they’re for OS X), and are invariably GUI controls or views of some kind. I’ve designed literally dozens of component APIs over the years, including for clients like Apple, and I’ve learned quite a bit about the process. I periodically release open source components too, and the feedback I’ve had has helped me put together a set of guidelines for API design that I’d like to share with you. This is an important topic, whether you’re an open source contributor, or working as part of a team on a large app, or just creating your own software. Just like the first launch experience of an app, your API is part of the first impression that a developer will have with your code, and will have a huge impact on whether they use it or throw it away. APIs are UX for developers. Desirable qualities IntuitiveForgivingFrictionless The developer interface It’s fine.

Related:  Relational databaseAlgorithms and Design Patterns

JSON for SQL Server. Part 1 Download source - 86.4 KB Introduction This article presents TSQL routines that provide support in SQL Server to use JSON data. The focus is on performance and flexibility. Most Code Is an Ugly Mess. Here’s How to Make It Beautiful Courtesy The Daily WTF This is what ugly code looks like. It’s a dependency diagram—a representation of interdependence or coupling (the black lines) between software components (the grey dots) within a program. Cubism Mike Bostock Square, Inc. * for monitoring of production systems How do we use visualization? Anomaly detection - observe abnormal activity Capacity planning - extrapolate non-linear trends Crisis diagnosis - see interactions between services System design - don’t guess; decide empirically What are the benefits of visualization?

Get monthly attendance report by Store Procedure in Sql Introduction This Tip will help to find the attendance report (in Tabular format ) of all students/employees for the range between two dates depending on whether they were present or absent . Background Here I use one table which holds the attendance status of each student .Mainly the Out put comes as tabular format .To get the required out put I use Dynamic Pivot In SQL. An Introduction to APIs About This Course Have you ever wondered how Facebook is able to automatically display your Instagram photos? How about how Evernote syncs notes between your computer and smartphone?

Using Conditional Logic in SQL with CASE Expression The main purpose of a CASE expression is to return a value based on one or more conditional tests. CASE expressions can be used anywhere in a SQL statement an expression is allowed. Though a truly an expression, some people refer to them as “CASE statements.” Is Design Dead? For many that come briefly into contact with Extreme Programming, it seems that XP calls for the death of software design. Not just is much design activity ridiculed as "Big Up Front Design", but such design techniques as the UML, flexible frameworks, and even patterns are de-emphasized or downright ignored. In fact XP involves a lot of design, but does it in a different way than established software processes. XP has rejuvenated the notion of evolutionary design with practices that allow evolution to become a viable design strategy. It also provides new challenges and skills as designers need to learn how to do a simple design, how to use refactoring to keep a design clean, and how to use patterns in an evolutionary style. Extreme Programming (XP) challenges many of the common assumptions about software development.

SQL Server export to CSV Introduction Exporting SQL Data to CSV files is the simplest solution in some cases. There are some advantages: User may not have a direct connection to SQL Server. Can use it to transfer large database between programs. Running Time Graphs The graph below compares the running times of various algorithms. Linear -- O(n) Quadratic -- O(n2) Cubic -- O(n3) Logarithmic -- O(log n) Exponential -- O(2n) Square root -- O(sqrt n) Comparison of algorithms in terms of the maximum problem size they can handle:

Simple Way To Use Pivot In SQL Query Introduction This is a very simple example of Pivot query for the beginners. We use pivot queries when we need to transform data from row-level to columnar data. Pivot query help us to generate an interactive table that quickly combines and compares large amounts of data. We can rotate its rows and columns to see different summaries of the source data, and we can display the details for areas of interest at a glance.

Genetic Programming: Evolution of Mona Lisa [EDIT] Added FAQ here: Gallery here: This weekend I decided to play around a bit with genetic programming and put evolution to the test, the test of fine art :-) I created a small program that keeps a string of DNA for polygon rendering. The procedure of the program is quite simple: 0) Setup a random DNA string (application start) 1) Copy the current DNA sequence and mutate it slightly 2) Use the new DNA to render polygons onto a canvas 3) Compare the canvas to the source image 4) If the new painting looks more like the source image than the previous painting did, then overwrite the current DNA with the new DNA 5) repeat from 1 SQL Server Table and Column Naming Conventions A few weeks ago I posted an article titled "Lightning-Fast Access Control Lists in C#", in which I described a solution for storing and querying permissions in a way that is database-schema agnostic. On the project that spawned that article I was not permitted to modify the database schema, due to constraints outside my control. Many readers seemed to enjoy the article, and several followed up with this question: Suppose you could change the database schema...

A Visual Introduction to Machine Learning Finding better boundaries Let's revisit the 73-m elevation boundary proposed previously to see how we can improve upon our intuition. Clearly, this requires a different perspective. By transforming our visualization into a histogram, we can better see how frequently homes appear at each elevation.

A simple and another way to find rows on n’th maximum number from a table. A highly experienced leader with successful track record of software development, product innovations, brand management and corporate communication etc. Some successful product innovations have also achieved and awards “Most Valuable Professional” (MVP) at 2010 and 2011 by and also selected as a mentor of Published over 100 technical articles in various software development resource sites (i.e.,, Microsoft MSDN, and IEEE & IBM (In progress)) and various IT Forums, Blogs etc.