🏞 (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 ) ...

28 December 2013 · 1 min · 92 words

📋 Template for interactive bash scripts

My template for when I need to do bash scripts with both a “human” and a “machine” interface: Template for interactive bash scripts: supports command line options with values prompts for any missing parameters/arguments https://gist.github.com/hugocf/8147608 Update 2016-06-02: Moved to repo @hugocf/scripts

27 December 2013 · 1 min · 41 words

🔗 Bigfoot

Bigfoot A jQuery plugin for empowering footnotes. Inspired by Instapaper. Built for mobile devices and responsive designs.

19 December 2013 · 1 min · 17 words

🔗 IntentKit — The iOS tool for inter-app linking

IntentKit — The iOS tool for inter-app linking IntentKit is an open-source iOS library that makes it easier to link to other apps. It’s sort of like Android’s Intents or Windows Phone’s Contracts. For example: If the user has multiple web browsers installed, this will display a modal sheet (similar to an iOS 7-style UIActivityViewController) listing each available application.

19 December 2013 · 1 min · 59 words

🏞 (image)

This brings us to the magical three step process for becoming an expert at anything: Watch someone Try it yourself and experiment Teach someone else (via Programming Your Brain: The Art of Learning in Three Steps | BitNative ) See also another image representation:

17 December 2013 · 1 min · 44 words

🔗 embedresponsively.com

embedresponsively.com embedresponsively.com helps build responsive embed codes for embedding rich third-party media into responsive web pages.

13 December 2013 · 1 min · 16 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: ...

12 December 2013 · 1 min · 126 words

🔗 Canvas – Simplify iOS Development

Canvas – Simplify iOS Development Animate in Xcode without code

11 December 2013 · 1 min · 10 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… )

11 December 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

10 December 2013 · 1 min · 48 words

🏞 (image)

ImageOptim optimizes images — so they take up less disk space and load faster — by finding best compression parameters and by removing unnecessary comments and color profiles. It handles PNG, JPEG and GIF animations. (via ImageOptim — better Save For Web )

4 December 2013 · 1 min · 43 words

📜 First make it work (get tests to pass)

First make it work (get tests to pass). Then make it right (clean it). Then make it fast. (if it needs it). Uncle Bob (via How to convince ‘performance guys’ to Clean Code – Google Groups )

3 December 2013 · 1 min · 37 words

📺 Y Not: Adventures in Functional Programming by Jim Weirich

Ruby Conf 12 – Y Not: Adventures in Functional Programming by Jim Weirich (by Confreaks) One of the deepest mysteries in the functional programming world is the Y-Combinator. Many have heard of it, but few have mastered its mysteries. Although fairly useless in real world software, understanding how the Y-Combinator works and why it is important gives the student an important insight into the nature of functional programming.

3 December 2013 · 1 min · 68 words

🔗 Alcatraz : Xcode Package Manager

Alcatraz : Xcode Package Manager Alcatraz is an open-source package manager for Xcode. It lets you discover and install plugins, templates and color schemes without the need for manually cloning or copying files. It installs itself as a part of Xcode and it feels like home.

16 November 2013 · 1 min · 46 words

🔗 Pixate Freestyle — CSS for iOS

Pixate Freestyle — CSS for iOS Pixate is a free framework that lets you style your native iOS views with stylesheets. Update 2014-12-06 Pixate has pivoted into some kind of “prototyping” tool, but their original library is open sourced and still available as Freestyle : Freestyle – A simple, powerful way to define a native app’s look and feel, using CSS See also: native CSS – the fast hybrid mobile development framework to start developing iOS or Android apps as an alternative to Pixate TM or NUI NUI – Style iOS apps with a stylesheet, similar to CSS And similar: ...

10 November 2013 · 1 min · 119 words

🏞 (image)

A programmer takes between 10-15 minutes to start editing code after resuming work from an interruption. When interrupted during an edit of a method, only 10% of times did a programmer resume work in less than a minute. A programmer is likely to get just one uninterrupted 2-hour session in a day (via Programmer Interrupted )

6 November 2013 · 1 min · 56 words

🏞 (image)

Visualizing CAMediaTiming To show the different timing related properties, both on their own and in combination, I’m animating a color from orange to blue. The block shows the progress of the animation from start to finish (orange to blue) and the ticks on the timeline are one second apart. (via Controlling Animation Timing )

6 November 2013 · 1 min · 54 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). Stubs provide canned answers to calls made during the test, usually not responding at all to anything outside what’s programmed in for the test. Stubs may also record information about calls, such as an email gateway stub that remembers the messages it ‘sent’, or maybe only how many messages it ‘sent’. Mocks are what we are talking about here: objects pre-programmed with expectations which form a specification of the calls they are expected to receive. The classical TDD style is to use real objects if possible and a double if it’s awkward to use the real thing. So a classical TDDer would use a real warehouse and a double for the mail service. The kind of double doesn’t really matter that much. ...

24 October 2013 · 2 min · 243 words

🔗 iOS Design Patterns

iOS Design Patterns The tutorial is divided into sections, one section per design pattern. In each section, you’ll read an explanation of the following: What the design pattern is. Why you should use it. How to use it and, where appropriate, common pitfalls to watch for when using the pattern. (…) In the process of developing this app, you’ll become acquainted with the most common Cocoa design patterns: Creational : Singleton and Abstract Factory. Structural : MVC, Decorator, Adapter, Facade and Composite. Behavioral : Observer, Memento, Chain of Responsibility and Command.

4 October 2013 · 1 min · 91 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? Code Organization in Xcode Projects

2 October 2013 · 1 min · 76 words