Triangular number The first six triangular numbers A triangular number or triangle number counts the objects that can form an equilateral triangle, as in the diagram on the right. The nth triangle number is the number of dots composing a triangle with n dots on a side, and is equal to the sum of the n natural numbers from 1 to n. The triangle numbers are given by the following explicit formulas: where is a binomial coefficient. The triangular number Tn solves the "handshake problem" of counting the number of handshakes if each person in a room with n + 1 people shakes hands once with each person. Triangle numbers are the additive analog of the factorials, which are the products of integers from 1 to n. The number of line segments between closest pairs of dots in the triangle can be represented in terms of the number of dots or with a recurrence relation: In the limit, the ratio between the two numbers, dots and line segments is Relations to other figurate numbers[edit] with and where T is a triangular number.

An O(ND) Difference Algorithm and Its Variations BibTeX @ARTICLE{Myers86ano(nd), author = {Eugene W. Myers}, title = {An O(ND) Difference Algorithm and Its Variations}, journal = {Algorithmica}, year = {1986}, volume = {1}, pages = {251--266}} Years of Citing Articles Bookmark OpenURL Abstract The problems of finding a longest common subsequence of two sequences A and B and a shortest edit script for transforming A into B have long been known to be dual problems. Citations Analyzing Network Characteristics Using JavaScript And The DOM, Part 1 Rethinking Mobile Tutorials: Which Patterns Really Work? Pattern libraries are a great source of inspiration and education for designers. But common practice doesn’t always equal best practice. In this post, we’ll look at why many common tutorial patterns are ineffective and how you can leverage game design principles to increase user engagement. After the release of the first edition of Mobile Design Pattern Gallery, Intuit asked me to speak with its mobile team. Read more... After Editorially: The Search For Alternative Collaborative Online Writing Tools I’m going to let you in on a little secret: the best writers, be it your favorite authors or those that write for Smashing Magazine, don’t do it alone. Having worked with several editors — and having been a technical editor myself — I’ve really come to appreciate this aspect of the writing process. Read more... What You Need To Know About WordPress 3.9 Read more... Understanding CSS Timing Functions Read more... Read more... Read more...

Reed's law Reed's law is the assertion of David P. Reed that the utility of large networks, particularly social networks, can scale exponentially with the size of the network. The reason for this is that the number of possible sub-groups of network participants is 2N − N − 1, where N is the number of participants. the number of participants, N, orthe number of possible pair connections, N(N − 1)/2 (which follows Metcalfe's law). so that even if the utility of groups available to be joined is very small on a peer-group basis, eventually the network effect of potential group membership can dominate the overall economics of the system. Derivation[edit] Quote[edit] From David P. "[E]ven Metcalfe's law understates the value created by a group-forming network [GFN] as it grows. Criticism[edit] Other analysts of network value functions, including Andrew Odlyzko and Eric S. See also[edit] References[edit] External links[edit]

Peterson's algorithm Peterson's algorithm (AKA Peterson's solution) is a concurrent programming algorithm for mutual exclusion that allows two processes to share a single-use resource without conflict, using only shared memory for communication. It was formulated by Gary L. Peterson in 1981.[1] While Peterson's original formulation worked with only two processes, the algorithm can be generalized for more than two,[2] as shown below. The algorithm[edit] The algorithm uses two variables, flag and turn. The algorithm does satisfy the three essential criteria to solve the critical section problem, provided that changes to the turn, flag[0], and flag[1] variables propagate immediately and atomically. Mutual exclusion[edit] P0 and P1 can never be in the critical section at the same time: If P0 is in its critical section, then flag[0] is true. Progress[edit] Bounded waiting[edit] Filter algorithm: Peterson's algorithm for N processes[edit] The filter algorithm generalizes Peterson's algorithm for N processes. [edit]

Logical Friday | Mint Digital's tech blog | Page 2 Collabify – everyone curates the party playlist May 10, 2012 § Last night was the first Music/Tech meetup. Because this was the Music/Tech meetup, we had to have music playing, and it had to be done in a needlessly complicated way. « Read the rest of this entry » Finally, a legitimate use for 3D CSS March 28, 2012 § Production sites using 3D transforms are still quite rare these days. « Read the rest of this entry » Cross domain font woes in Firefox March 21, 2012 § We love using custom fonts with CSS @font-face declarations and have done so on a number of our recent projects. You’re building a site, everything is going well with the styling. « Read the rest of this entry » You fight like a dairy farmer! March 14, 2012 § When I was a kid I used to love playing The Secret of Monkey Island. My favourite part of the game was the insult sword-fighting, where, instead of strength, a sharp wit was the only way to overcome your opponent. « Read the rest of this entry » -webkit isn’t breaking the web.

Metcalfe's law Two telephones can make only one connection, five can make 10 connections, and twelve can make 66 connections. Metcalfe's law states that the value of a telecommunications network is proportional to the square of the number of connected users of the system (n2). First formulated in this form by George Gilder in 1993,[1] and attributed to Robert Metcalfe in regard to Ethernet, Metcalfe's law was originally presented, circa 1980, not in terms of users, but rather of "compatible communicating devices" (for example, fax machines, telephones, etc.)[2] Only more recently with the launch of the Internet did this law carry over to users and networks as its original intent was to describe Ethernet purchases and connections.[3] The law is also very much related to economics and business management, especially with competitive companies looking to merge with one another. Network effects[edit] Limitations[edit] Business practicalities[edit] Modified models[edit] See also[edit] References[edit]

John Graham-Cumming: Monte Carlo simulation of One Banana, Two Banana to develop a card counting strategy The children's game One Banana, Two Banana is a high stakes game of probability theory in action. Or something like that. Actually, it's a fun game where you have to take probability into account when deciding what to do. Conceptually, the game is simple. The total distance they move on the board (winning is a simple first past the post system) is the sum of the number of bananas on the banana cards. There are six banana skin cards to start with and as they are removed from the pack they are placed on a special card for all to see. So I wrote a little program that simulates One Banana, Two Banana games (or at least board positions) and see what the expected score is depending on the number of cards that the player chooses to pick. First, here's the code: # The simulation runs through all the possible card positions and# plays a large number of random draws for each possible number of# cards a player might draw. use strict;use warnings; # This is a two dimensional array. my @skins;

Terminal Concepts in GNU/Linux Copyright © 2003 Charles M. "Chip" Coldwell. Terminal Concepts in Linux Introduction Although it is rarely done today, one can connect a video terminal with a null modem cable to a serial port on a Linux box and get an interactive shell with very little effort. dt:12345:respawn:/sbin/agetty -L ttyS0 9600 vt510 to /etc/inittab, and then run telinit q as root to get init to re-read the /etc/inittab file, and you will be greeted by a login prompt on the terminal screen. The ease with which we can do this task that we almost never want to do is due to the long legacy of Unix that Linux inherited. Most computer users sophisticated (or perhaps old) enough to know what a character cell terminal is probably think of them as relics of the past before the GUI revolutionized the user interface. The controlling terminal is one of the properties listed by the ps command, in the column headed TTY below: $ ps PID TTY TIME CMD 26841 pts/1 00:00:00 bash 26897 pts/1 00:00:00 ps Timing and voltages Bit errors

Thinking Networks II First presented to The Developing Group on 3 June 2006 (an earlier version, Thinking Networks I, was presented on on 5 June 2004) Thinking Networks II James Lawley Contents 1. a. 4. Note: There are three types of description in this paper: i. ii. iii. 1. I'll start with a tribute to Fritjof Capra who made an early and significant contribution to bringing the importance of networks to my attention when he asked: "Is there a common pattern of organization that can be identified in all living systems? The kinds of networks we shall be considering are complex adaptive or complex dynamic networks. However, none of this would be very interesting if it wasn't for the fact that inspite of their complexity, inspite of the adaptive and dynamic nature of these networks, recent research has shown them to have remarkably consistentpatterns of organisation. "We're accustomed to thinking in terms of centralized control, clear chains of command, the straightforward logic of cause and effect.

Damn Cool Algorithms: Levenshtein Automata Posted by Nick Johnson | Filed under python, coding, tech, damn-cool-algorithms In a previous Damn Cool Algorithms post, I talked about BK-trees, a clever indexing structure that makes it possible to search for fuzzy matches on a text string based on Levenshtein distance - or any other metric that obeys the triangle inequality. Today, I'm going to describe an alternative approach, which makes it possible to do fuzzy text search in a regular index: Levenshtein automata. Introduction The basic insight behind Levenshtein automata is that it's possible to construct a Finite state automaton that recognizes exactly the set of strings within a given Levenshtein distance of a target word. Of course, if that were the only benefit of Levenshtein automata, this would be a short article. Construction and evaluation The diagram on the right shows the NFA for a Levenshtein automaton for the word 'food', with maximum edit distance 2. Because this is an NFA, there can be multiple active states. Indexing

Dagger vs. Guice - Floating Sun If you are familiar with dependency injection and you are in Java-land, you've probably heard of Google Guice. You may even have heard of this new D-I framework from the fine folks at Square, called Dagger. We have a sizeable codebase that uses Guice heavily, but I'm a sucker for shiny new things so I started playing with Dagger to see what it would take to migrate away from Guice. Read on to learn more. Why Dagger? Works on Android! All this sounds good, so what are were some of the problems I ran into? Pain Points Dagger has several restrictions on what can be injected and where. No cyclic dependencies Cyclic dependencies are generally frowned upon and should be avoided. Injectable objects MUST have @Inject constructor Dagger will not inject objects that are not annotated with @Inject. @Provides ThirdPartyFoo provideThirdPartyFoo() { return new ThirdPartyFoo(); } No shortcut to bind interfaces to implementations @Provides@Singleton Foo provideFoo(FooImpl fooImpl) return fooImpl; } Conclusion

Related: