background preloader

The Twelve-Factor App

The Twelve-Factor App

Liskov substitution principle Let be a property provable about objects of type . Then should be provable for objects where is a subtype of In the same paper, Liskov and Wing detailed their notion of behavioral subtyping in an extension of Hoare logic, which bears a certain resemblance with Bertrand Meyer's Design by Contract in that it considers the interaction of subtyping with pre- and postconditions. Principle[edit] Liskov's principle imposes some standard requirements on signatures that have been adopted in newer object-oriented programming languages (usually at the level of classes rather than types; see nominal vs. structural subtyping for the distinction): Origins[edit] A typical violation[edit] A typical example that violates LSP is a Square class that derives from a Rectangle class, assuming getter and setter methods exist for both width and height. See also[edit] References[edit] General references Gary T. Specific references External links[edit] The Liskov Substitution Principle, T.

Modern Log Management and Monitoring - redbluemagenta We’ve come a long way with monitoring in general - we have groups such as ##monitoringsucks on Freenode who are discussing how to break down monitoring into pieces so that we can come up with better tools to handle each component. We have tools such as logstash that can structure our logs, graylog2 for presenting them in real time, and backends such as elasticsearch for storing them in a way that makes it easy to search for the logs again. We’re looking at problems differently than how it was seen before. Currently, at Seattle Biomed, we have an installation of logwatch that’s on a centralized rsyslog host that cuts down noise and sends us an email every hour, showing us the log entries that might seem useful to us. Unfortunately, this can sometimes be very useless - it’s easy to add in a filter that gets rid of a bunch of noise, yet those same logs can end up being incredibly useful down the road for catching a recurring bug. instead of writing a huge, ugly regex for everything.

Evolving Frameworks: A Pattern Language for Developing Object-Oriented Frameworks Evolving Frameworks A Pattern Language for Developing Object-Oriented Frameworks Don Roberts, Ralph Johnson, University of Illinois {droberts,johnson} Introduction Frameworks are reusable designs of all or part of a software system described by a set of abstract classes and the way instances of those classes collaborate. Unfortunately, developing a good framework is expensive. Therefore, frameworks should be developed only when many applications are going to be developed within a specific problem domain, allowing the time savings of reuse to recoup the time invested to develop them. The patterns in this paper form a pattern language. Figure 1 shows how the patterns are related to each other in a sort of time-line. Evolving Frameworks describes a common path that frameworks take, but it is not necessary to follow the path to the end to have a viable framework. Three Examples Context You have decided to develop a framework for a particular problem domain. Problem Forces Solution

Quick Diff Online Tool On API Design Guidelines Posted by F 19/11/2006 at 22h31 Update: Good news! Jaroslav Toulash emailed me that he published a book on Practical API Design !!! Looks like Brian McAllister may be preparing a talk on Designing Elegant APIs. I've been very interested in good API design for a long time. I reviewed "Interface Oriented Programming" a few months back with disappointment. Over time, I collected some links on the subject and shared some with Brian: Best Practices in Javascript Library Design (via John Resig on JavaScript API Design) - A good presentation given by the author of JQuery.API: Design Matters - Article by Michi Henning, ZeroC, for ACM Queue magazine.How to Design a Good API and Why it Matters - Excellent deck from Joshua Bloch. So, let's hope Brian gives his talk at a big conference, signs a contract with a big publisher and fills the void. Use the following link to trackback from your own site:

The Easiest Way to Use Any Font You Wish | Nettuts+ CSS 3 is on the horizon, and we're all getting excited. Thanks to the latest browser updates, developers can begin working with time-saving new properties - such as @font-face. Unfortunately, the availability of these features is limited to a tiny fraction of our overall userbase. At least for the next year or so, we'll need to continue utilizing the Flash and Javascript alternatives when embedding fonts. Luckily, a new contender, Cufón, has made the process unbelievably simple. Pros Lightning fast! Cons It's Javascript dependent. Step 1: Download Cufón Visit Cufón's website and right-click on the "Download" button at the top. Step 2: Convert a Font In order to function, we need to use the font converter utility on the website. If desired, also upload the italic and bold files as well. Step 2b Next, you'll need to choose which glyphs should be included. Step 2c Cufón allows you to designate a specific url for your file, to increase security. Step 3 The next step is to prepare our project.

DiG HOWTO Initial publication: August 31, 2004 Most recent revision: May 11, 2006 How to use dig to query DNS name servers. dig is a command-line tool for querying DNS name servers for information about host addresses, mail exchanges, name servers, and related information. The source code for dig is part of the larger ISC BIND distribution. If you’re looking for information on configuring the BIND name server, you might find my article BIND for the Small LAN more to your taste. Understanding the default output The most typical, simplest query is for a single host. $ dig That’s the command-line invocation of dig I used. ; <<>> DiG 9.2.3 <<>> ;; global options: printcmd The opening section of dig’s output tells us a little about itself (version 9.2.3) and the global options that are set (in this case, printcmd). ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43071 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 3 dig AAAA +short #! #!

PDC10: Mysteries of Windows Memory Management Revealed: Part Two - Tim Sneath In the last session, focusing on virtual memory, it was noted that there was almost no connection between virtual and physical memory. The only connection is that the system commit limit is the sum of physical memory and the size of the paging file(s). This session focuses on the physical memory aspects of the memory management architecture in Windows. Physical Memory and Working Set The working set is the physical memory that Windows gives to your process, given to you when you demand it by touching the virtual address space. Each process has a working set default minimum and maximum. At some point, the memory manager decides the process is large enough; it then gives up pages to make room for new pages. Unlike other OS, it is a local page replacement policy, meaning that it will pull the pages from the requesting process. The working set consists of shareable and private pages; there are performance counters that measure this. Physical Memory Page Lists