🔗 Type-System Criteria · ongoing by Tim Bray

Type-System Criteria · ongoing by Tim Bray Cri­te­ria Let’s call them the Bánffy-Bray cri­te­ria for se­lect­ing be­tween sta­tic and dy­namic type sys­tems. Sta­tic typ­ing’s at­trac­tive­ness is a di­rect func­tion (and dy­namic typ­ing’s an in­verse func­tion) of API sur­face size. Dy­namic typ­ing’s at­trac­tive­ness is a di­rect func­tion (and sta­tic typ­ing’s an in­verse func­tion) of unit test­ing work­a­bil­ity.

January 24, 2014 · 1 min · 56 words

📺 Bret Victor – Inventing on Principle

Bret Victor – Inventing on Principle (by CUSEC ) Their principles Elizabeth Cady Stanton — “Women should vote” Larry Tesler — “No person should be trapped in a mode” Doug Engelbart — “Enable mankind to solve solve the world’s urgent problems” (a vision of “knowledge workers” using complex powerful information tools to harness our collective intelligence) Alan Kay — “Amplify human reach and bring new ways of thinking into a faltering civilisation that desperately need it”...

January 13, 2014 · 2 min · 339 words

📜 Creators need an immediate connection with what they’re making

Creators need an immediate connection with what they’re making Bret Victor ’s guiding principle (via his talk Inventing on Principle )

January 8, 2014 · 1 min · 21 words

🏞 (image)

What OO Fails to Do What object oriented programming fails to do is express collaborations between objects. To show you exactly what I mean, let’s take a look at two system operations (two use cases) requiring the same group of objects collaborating with each other. (…) DCI to the Rescue DCI is a paradigm invented by Trygve Reenskaug (the inventor of the MVC pattern) to solve these problems. (via Data Context Interaction: The Evolution of the Object Oriented Paradigm – SitePoint )...

December 28, 2013 · 1 min · 92 words

🏞 (image)

Replacing The User Story With The Job Story We frame every design problem in a Job, focusing on the triggering event or situation, the motivation and goal, and the intended outcome: When _____ , I want to _____ , so I can _____ . For example: When an important new customer signs up, I want to be notified, so I can start a conversation with them. See also 5 Tips For Writing A Job Story:...

December 12, 2013 · 1 min · 126 words

📜 How many bugs and wasted CPU cycles and instances of human frustration

How many bugs and wasted CPU cycles and instances of human frustration (not to mention bad design) have resulted from that one small shortcut about 40 years ago? Keep that in mind next time you want to cut a corner in your code. Rob Pike (via A lesson in shortcuts. Long ago, as the design of the Unix… )

December 11, 2013 · 1 min · 59 words

🔗 The Twelve-Factor App

The Twelve-Factor App In the modern era, software is commonly delivered as a service: called web apps, or software-as-a-service. The twelve-factor app is a methodology for building software-as-a-service apps (…) Codebase Dependencies Config Backing Services Build, release, run Processes Port binding Concurrency Disposability Dev/prod parity Logs Admin processes

December 10, 2013 · 1 min · 48 words

🔗 Mocks Aren’t Stubs

Mocks Aren’t Stubs Meszaros uses the term Test Double as the generic term for any kind of pretend object used in place of a real object for testing purposes. The name comes from the notion of a Stunt Double in movies. (…) Meszaros then defined four particular kinds of double: Dummy objects are passed around but never actually used. Usually they are just used to fill parameter lists. Fake objects actually have working implementations, but usually take some shortcut which makes them not suitable for production (an in memory database is a good example)....

October 24, 2013 · 2 min · 243 words

🏞 (image)

Due to the interconnected, non-simple structure of ontologies, it’s difficult to give a simple diagram that fully models one. Instead, I’m just going to list the broad categories of classes that you find in an application and simply discuss how they actually interconnect. (via Cocoa with Love: The design of every Mac application ) See also, for a more practical view: What are the Xcode solution organisation best practices and guidelines?...

October 2, 2013 · 1 min · 76 words

🏞 (image)

we-are-star-stuff: If you’re interested in an IT degree and career, coding can be pretty intimidating. From understanding common programming languages to deciphering programming from developing, learning to code is necessary in today’s IT industry. The ability to implement a variety of programming languages can help you decide which coding career path is correct for you. Additionally, comprehending multiple popular programming languages will make you more marketable in the IT industry at large....

July 31, 2013 · 1 min · 73 words

🔗 97 Things Every Programmer Should Know – Contributions Appearing in the Book

97 Things Every Programmer Should Know – Contributions Appearing in the Book Act with Prudence by Seb Rose Apply Functional Programming Principles by Edward Garson Ask “What Would the User Do?” (You Are not the User) by Giles Colborne Automate Your Coding Standard by Filip van Laenen Beauty Is in Simplicity by Jørn Ølmheim Before You Refactor by Rajith Attapattu Beware the Share by Udi Dahan The Boy Scout Rule by Uncle Bob Check Your Code First before Looking to Blame Others by Allan Kelly Choose Your Tools with Care by Giovanni Asproni Code in the Language of the Domain by Dan North Code Is Design by Ryan Brush Code Layout Matters by Steve Freeman Code Reviews by Mattias Karlsson Coding with Reason by Yechiel Kimchi A Comment on Comments by Cal Evans Comment Only What the Code Cannot Say by Kevlin Henney Continuous Learning by Clint Shank Convenience Is not an -ility by Gregor Hohpe Deploy Early and Often by Steve Berczuk Distinguish Business Exceptions from Technical by Dan Bergh Johnsson Do Lots of Deliberate Practice by Jon Jagger Domain-Specific Languages by Michael Hunger Don’t Be Afraid to Break Things by Mike Lewis Don’t Be Cute with Your Test Data by Rod Begbie Don’t Ignore that Error!...

July 26, 2013 · 4 min · 831 words

🔗 Thoughts And Articles On Pricing | Software Indie

Thoughts And Articles On Pricing | Software Indie Nice roundup of articles of software pricing.

May 10, 2013 · 1 min · 15 words

🔗 Camels and Rubber Duckies – Joel on Software

Camels and Rubber Duckies – Joel on Software The answer is really complicated. I’m going to start with a little economic theory, then I’m going to tear the theory to bits, and when I’m finished, you’ll know a lot more about pricing and you still won’t know how much to charge for your software, but that’s just the nature of pricing.

May 2, 2013 · 1 min · 61 words

🏞 (image)

via The Clean Architecture | 8th Light by “Uncle” Bob Martin The outer circles are mechanisms. The inner circles are policies. The overriding rule that makes this architecture work is The Dependency Rule . This rule says that source code dependencies can only point inwards . Entities Use Cases Adapters (Controllers, Gateways, Presenters) Frameworks Only Four Circles? No, the circles are schematic. You may find that you need more than just these four....

August 16, 2012 · 1 min · 194 words

🏞 (image)

The MVC and 3-Tier architectures combined (via The Future of Web Development « mvalente.eu/mv.* )

July 29, 2012 · 1 min · 15 words

🔗 Interactive Application Architecture Patterns

Interactive Application Architecture Patterns The Model-View-Controller , Model-View-Presenter , and Presentation-Abstraction-Control patterns are similar in many ways, but have each evolved to address slightly different concerns. This article discusses each pattern along with its history and design motivations to encourage the correct understanding and application of these patterns.

July 29, 2012 · 1 min · 48 words

🏞 Keynote: Architecture the Lost Years

Keynote: Architecture the Lost Years by Robert Martin @ Ruby Midwest 2011 (also on YouTube … and a few weeks later, without slides , on The “A” word. A Discussion About Architecture in a Software Craftsmanship conference ) Images clipped together from… The “Presenter” and “View Model” at 35:28 “The whole Enchilada!” at 37:50 “The Database is a Detail!” at 42:26 Elements summary: Entities — Generic application agnostic data and business rules (e....

July 29, 2012 · 1 min · 172 words

📜 Good architecture

A good architecture allows major decisions to be deferred! Robert Cecil Martin Or putting it in another way… A good architecture maximizes the number of decisions NOT made.

July 28, 2012 · 1 min · 28 words

🔗 Yours, Mine and Ours

Yours, Mine and Ours I claim here that there are three categories of software: MeWare : The developer creates software. The developer uses it. Nobody else does. ThemWare : The developer creates software. Other people use it. The developer does not. UsWare : The developer creates software. Other people use it. The developer uses it too. For completeness, I suppose I should probably mention the obvious fourth category: NobodyWare : The developer creates software....

June 22, 2012 · 1 min · 77 words

📜 The software is wrong, not the people

The software is wrong, not the people. Matt Mullenweg (vai Joe Flood )

July 15, 2011 · 1 min · 13 words