background preloader

Architectural Styles and the Design of Network-based Software Architectures

Architectural Styles and the Design of Network-based Software Architectures

Calcul des prédicats Un article de Wikipédia, l'encyclopédie libre. Le calcul des prédicats du premier ordre, ou calcul des relations, ou logique du premier ordre, ou tout simplement calcul des prédicats est une formalisation du langage des mathématiques proposée par les logiciens de la fin du XIXe siècle et du début du XXe siècle. Le trait caractéristique de la logique du premier ordre est l'introduction : Ceci permet de formuler des énoncés tels que « Tout x est P » et « Il existe un x tel que pour tout y, x entretient la relation R avec y » en symboles : et Le calcul des prédicats du premier ordre égalitaire adjoint au calcul des prédicats un symbole de relation, l'égalité, dont l'interprétation est obligée : c'est l'identité des éléments du modèle, et qui est axiomatisée en conséquence. Le calcul des propositions est la partie du calcul des prédicats qui concerne ce qui ne contient pas les notions de variables, de fonctions et de prédicats et donc pas les quantificateurs . On se donne pour alphabet : ou . ?

Développement mobile multiplateforme en C et C++ avec MoSync SDK Vous êtes développeur C et/ou C++ et vous avez envie de créer des applications mobiles. Vous avez besoin, si vous ne les connaissez pas déjà, d'aller apprendre d'autres langages comme le Java (pour Android, BlackBerry, J2ME), l'objective-C (pour l'iOS), ou le C# (pour Windows Phone 7); étant donné qu'avec le C++ seul, vous êtes limité à Bada, à Symbian et à Windows Mobile (ces deux derniers n'ayant plus vraiment le vent en poupe). Vous pouvez aussi vous rabattre sur les technologies Web comme le HTML 5, le JavaScript et le CSS3 associées à des bibliothèques comme Phonegap pour parvenir à vos fins mais vous serez limités au niveau des accès aux fonctionnalités natives du téléphone. Depuis 2004, la start-up suédoise Mobile Sorcery devenue MoSync AB a commencé le développement d'un Framework cross plateforme de développement mobile. MoSync SDK est disponible sur Windows et Mac. Voici en vrac une liste globale des fonctionnalités disponibles dans le MoSync SDK : Vous avez aimé ce tutoriel ?

Introduction to non-blocking I/O Programs that use non-blocking I/O tend to follow the rule that every function has to return immediately, i.e. all the functions in such programs are nonblocking. Thus control passes very quickly from one routine to the next. You have to understand the overall picture to some extent before any one piece makes sense. Many objects need to wait for time to pass or for an external event to occur, but because their methods must return immediately, they can't do the obvious or natural thing. To illustrate this, let's consider a simple networking class that lets you send a file to a remote machine, assuming the connection is all set up. But in the world of nonblocking programming, you can't do this, because it loops until some external event happens (i.e. the socket accepts the whole file), which is a major no-no. You can imagine the user code calling this in a simple loop, as in the following example, which prints the file to stdout as if it were a network connection: See also:

High-Performance Server Architecture The purpose of this document is to share some ideas that I've developed over the years about how to develop a certain kind of application for which the term "server" is only a weak approximation. More accurately, I'll be writing about a broad class of programs that are designed to handle very large numbers of discrete messages or requests per second. Network servers most commonly fit this definition, but not all programs that do are really servers in any sense of the word. For the sake of simplicity, though, and because "High-Performance Request-Handling Programs" is a really lousy title, we'll just say "server" and be done with it. I will not be writing about "mildly parallel" applications, even though multitasking within a single program is now commonplace. Some people will inevitably take issue with some of my comments and suggestions, or think they have an even better way. The rest of this article is going to be centered around what I'll call the Four Horsemen of Poor Performance:

Interaction design pattern A design pattern is a formal way of documenting a solution to a common design problem. The idea was introduced by the architect Christopher Alexander for use in urban planning and building architecture, and has been adapted for various other disciplines, including teaching and pedagogy, development organization and process, and software architecture and design.[1] Interaction design patterns are a way to describe solutions to common usability or accessibility problems in a specific context.[2] They document interaction models that make it easier for users to understand an interface and accomplish their tasks.[3] History[edit] Applying a pattern language approach to interaction design was first suggested in Norman and Draper's book User Centered System Design (1986). The Apple Computer's Macintosh Human Interface Guidelines also quotes Christopher Alexander's works in its recommended reading. Interaction design pattern libraries[edit] Mobile Interaction Pattern Libraries[edit] See also[edit]

The C10K problem [Help save the best Linux news source on the web -- subscribe to Linux Weekly News!] It's time for web servers to handle ten thousand clients simultaneously, don't you think? After all, the web is a big place now. And computers are big, too. In 1999 one of the busiest ftp sites, cdrom.com, actually handled 10000 clients simultaneously through a Gigabit Ethernet pipe. And the thin client model of computing appears to be coming back in style -- this time with the server out on the Internet, serving thousands of clients. With that in mind, here are a few notes on how to configure operating systems and write code to support thousands of clients. Contents Related Sites See Nick Black's execellent Fast UNIX Servers page for a circa-2009 look at the situation. In October 2003, Felix von Leitner put together an excellent web page and presentation about network scalability, complete with benchmarks comparing various networking system calls and operating systems. Book to Read First I/O frameworks 1. 2.

Double dispatch In software engineering, double dispatch is a special form of multiple dispatch, and a mechanism that dispatches a function call to different concrete functions depending on the runtime types of two objects involved in the call. In most object-oriented systems, the concrete function that is called from a function call in the code depends on the dynamic type of a single object and therefore they are known as single dispatch calls, or simply virtual function calls. Dan Ingalls first described how to use double dispatching in Smalltalk, calling it multiple polymorphism.[1] Overview[edit] The general problem addressed is how to dispatch a message to different methods depending not only on the receiver but also on the arguments. To that end, systems like CLOS implement multiple dispatch. Use cases[edit] Double dispatch is useful in situations where the choice of computation depends on the runtime types of its arguments. A common idiom[edit] Example in Ruby[edit] Double dispatch in C++[edit]

Developer Network The Architecture of Open Source Applications (Volume 2): nginx nginx (pronounced "engine x") is a free open source web server written by Igor Sysoev, a Russian software engineer. Since its public launch in 2004, nginx has focused on high performance, high concurrency and low memory usage. Additional features on top of the web server functionality, like load balancing, caching, access and bandwidth control, and the ability to integrate efficiently with a variety of applications, have helped to make nginx a good choice for modern website architectures. Currently nginx is the second most popular open source web server on the Internet. 14.1. These days the Internet is so widespread and ubiquitous it's hard to imagine it wasn't exactly there, as we know it, a decade ago. One of the biggest challenges for a website architect has always been concurrency. To illustrate the problem with slow clients, imagine a simple Apache-based web server which produces a relatively short 100 KB response—a web page with text or an image. Isn't Apache Suitable? 14.2.

GotW.ca Home Page

Fieldings' dissertation online by vikasjee Apr 26

Related: