Benki → All Posts

⇠ previous page next page ⇢

“The Reactive Extensions (Rx) is a library for composing asynchronous and event-based programs using observable sequences and LINQ-style query operators. Using Rx, developers represent asynchronous data streams with Observables, query asynchronous data streams using LINQ operators, and parameterize the concurrency in the asynchronous data streams using Schedulers. Simply put, Rx = Observables + LINQ + Schedulers.

“Whether you are authoring a traditional desktop or web-based application, you have to deal with asynchronous and event-based programming from time to time. Desktop applications have I/O operations and computationally expensive tasks that might take a long time to complete and potentially block other active threads. Furthermore, handling exceptions, cancellation, and synchronization is difficult and error-prone.

“Using Rx, you can represent multiple asynchronous data streams (that come from diverse sources, e.g., stock quote, tweets, computer events, web service requests, etc.), and subscribe to the event stream using the IObserver interface. The IObservable interface notifies the subscribed IObserver interface whenever an event occurs.

“Because observable sequences are data streams, you can query them using standard LINQ query operators implemented by the Observable type. Thus you can filter, project, aggregate, compose and perform time-based operations on multiple events easily by using these static LINQ operators. In addition, there are a number of other reactive stream specific operators that allow powerful queries to be written. Cancellation, exceptions, and synchronization are also handled gracefully by using the extension methods provided by Rx.”

“resize event

“Fired when an element’s width or height changes. Because browsers only provide this event for the window element, for other elements a polling loop is initialized, running every jQuery.resize.delay milliseconds to see if elements’ dimensions have changed.”

Free books by Mark Watson.

  • Artificial Intelligence Programming in Ruby
  • Loving Lisp, or the Savvy Programmer’s Secret Weapon
  • Practical Semantic Web and Linked Data Applications, Common Lisp Edition
  • Practical Semantic Web and Linked Data Applications, Java, Scala, Clojure, and JRuby Edition
  • Practical Artificial Intelligence Programming in Java
  • The Software Development Book

“The HTML5 Studio has fourteen demos that show off some fanciful sides of HTML5, CSS3 and friends.

“Peek around, look under the covers at the source, and feel free to reuse the code in your own applications and sites.”

“The article introduces the pattern of Optimization by Proxy (OBP), which can be found in many large scale distributed systems, including human societies. The pattern occurs when a computationally limited algorithm uses a proxy property as a shortcut indicator for the presence of a hard to measure target quality. When intelligent actors with different motivations control part of the data, the existence of the algorithm reifies the proxy into a separate attribute to be manipulated with the goal of altering the algorithm’s results. This concept is then applied to Google and the many ways it interacts with the various groups of actors on the web. The second part of this article contains examination of how OBP contributes towards the degrading of the content of the web, and how this relates to the Friendly Artificial Intelligence concept of ‘paperclipping’.”

“Spedye is meant to handle all TLS/SSL traffic for a website – it is based upon the ideas in Bump’s Stud, but extended to include converting SPDY connections into normal HTTP requests.

“Spedye aims to make adopting the SPDY protocol extremely easy for all kinds of websites.”

“There are some tasks that are common to every web application. For example, taking data from the server, rendering it to the screen, then updating that information when it changes.

“Since the tools provided to do this by the browser are quite primitive, you end up writing the same code over and over. Ember.js provides tools that let you focus on your app instead of writing the same code you’ve written a hundred times.

“Because we’ve built dozens of applications ourselves, we’ve gone beyond the obvious low-level event-driven abstractions, eliminating much of the boilerplate associated with propagating changes throughout your application, and especially into the DOM itself.

“To help manage changes in the view, Ember.js comes with a templating engine that will automatically update the DOM when the underlying objects change.”

„Durch das Spardiktat hat sich die griechische Krise weiter verschärft. Der Schuldenstand ist seit 2010 von 143 % auf 153 % des BIP gewachsen statt zu sinken. Krankenhäuser und Schulen schließen, immer mehr Menschen sind auf Lebensmittelhilfen angewiesen. Erstmals seit 1945 kehrt der Hunger ins Land zurück. Spätestens jetzt sei klar, so Harald Schumann, dass es unmöglich ist, sich aus einer solchen Krise herauszusparen. Die Griechenlandpolitik, wie sie die Regierung Merkel betreibt, sei daher unverantwortlich. Einseitige Schuldzuschreibungen an Griechenland seien zudem unangebracht. Deutsche Unternehmen hätten jahrelang an Griechenland massiv verdient, sowohl durch fragwürdige Waffenlieferungen in Milliardenhöhe als auch durch Korruption, wie der Fall Siemens zeigt. Ein Herausdrängen Griechenlands aus der Eurozone hätte katastrophale Folgen für die Griechen.“

“Boot to Gecko aims to create a complete, standalone operating system for the open web.”

“The socialbookmarkosphere is abuzz with talk of “rainbow tables”, what they mean for password security, and why they prove that Microsoft did a shoddy job of securing Windows for Workgroups 15 years ago. This really freaks me out. If the “advanced” pole of your threat model is “rainbow tables”, stop working on your social shopping cart calendar application right now: I can’t trust you with my Reddit karma score, let alone my credit card number.”

“This page contains links to Podcasts of readings of Latin and (ancient) Greek texts. Although many have been produced under the auspices of Haverford College, those recorded and placed in the public domain by others are also listed. If you would like to have your Classics Podcast listed here, please email bmulliga[at]haverford[dot]edu.”

“Linux system administrators often receive complaints about the performance of their systems. It can be rather difficult to track down these problems and to find why, when, and how often they happen. Being able to zoom in on the processes that are responsible, and to see what has happened in the past, is very valuable. The atop utility was written with just these things in mind.”

“Functional Java is an open source library that seeks to improve the experience of using the Java programming language in a production environment. The library implements several advanced programming concepts that assist in achieving composition-oriented development. Functional Java is written using vanilla Java 1.5 syntax and requires no external supporting libraries. The JAR file will work with your Java 1.5 project without any additional effort.”

“Sim Daltonism is a color blindness simulator for Mac OS X. It filters in real-time the area around the mouse pointer and displays the result ” as seen by a color blind person ” in a floating palette.

“Since there are many types of color blindness, Sim Daltonism allow you to choose the one you want to see.”

„Wenn man die Rhetorik vieler Schweizer Lokalpolitiker hört, dann gehört die Warnung vor sozialistischen oder gar kommunistischen Umtrieben seit Jahrzehnten zum politischen Inventar der bürgerlichen Parteien. Dabei ist bereits das Prinzip der Eidgenossenschaft selbst das wohl sozialistischste Regierungs- und Politikmodell aller Staaten: In einer direkten Demokratie sind Volksabstimmungen erlaubt. Jeder Bürger darf kandidieren. Die meisten Kandidaten für politische Ämter stammen deshalb aus dem Volk, nicht aus Parteikadern. Im Bundesrat regieren die Parteien zusammen, nicht gegeneinander.“

“As I’ve discussed previously, there are a number of good reasons why Haskell is not suitable for teaching introductory functional programming. Chief among these is laziness, which in the context of a pure functional language has fatal side effects. First, Haskell suffers from a paucity of types. It is not possible in Haskell to define the type of natural numbers, nor the type of lists of natural numbers (or lists of anything else), nor any other inductive type! (In Carollian style there are types called naturals and lists, but that’s only what they’re called, it’s not what they are.) Second, the language has a problematic cost model. It is monumentally difficult to reason about the time, and especially space, usage of a Haskell program. Worse, parallelism arises naturally in an eager, not a lazy, language—for example, computing every element of a finite sequence is fundamental to parallel computing, yet is not compatible with the ideology of laziness, which specifies that we should only compute those elements that are required later.

“The arguments in favor of laziness never seem convincing to me. One claim is that the equational theory of lazy programs is said to be more convenient; for example, beta reduction holds without restriction. But this is significant only insofar as you ignore the other types in the language. As Andrzej Filinski pointed out decades ago, whereas lazy languages have products, but not sums, eager languages have sums, but not products. Take your pick. Similarly, where lazy languages rely on strictness conditions, eager languages rely on totality conditions. The costs and benefits are dual, and there seems to be no reason to insist a priori on one set of equations as being more important than the other.”

“Aleph is a Clojure framework for asynchronous communication, built on top of Netty and Lamina.

“What is Aleph good for?

“Aleph allows the creation of both clients and servers that can communicate using an array of protocols (HTTP, WebSockets, TCP, UDP, and others), and represents that communication via a single abstraction, channels. Thanks to the underlying libraries and the event-driven approach to communication, these clients and servers can be highly scalable.”

⇠ previous page next page ⇢