background preloader

Development

Facebook Twitter

Droid RAZR Android Development. Deconstructing Deferred. I apologize for the incomplete post.

Deconstructing Deferred

I pressed the wrong button and the first half of this post went out by accident, somewhat unreviewed. I'm happy enough about what got sent for ideas 1-3, although I had wanted to insert some more links into the Twisted docs and code for Deferred. Here is the rest, starting with the section on Chaining, which hadn't fully fleshed out when I accidentally posted.

Idea 4: Chaining Deferreds This is a five-star idea! Def sync_and_read_bookmarks(): sync_bookmarks() But how do we write this if all operations return Deferreds? D = sync_bookmarks() d.addCallback(lambda unused_result: read_bookmarks()) return d What is happening here? (A note about the ugly lambda: it is needed because all callbacks are called with a result value, but read_bookmarks() takes no arguments. Here's the code. Def callback(self, result): for (cb, eb) in self.callbacks: if isinstance(result, Failure): cb = eb # Use errback try: Cap'n Proto: Introduction. Cap’n Proto is an insanely fast data interchange format and capability-based RPC system.

Cap'n Proto: Introduction

Think JSON, except binary. Or think Protocol Buffers, except faster. In fact, in benchmarks, Cap’n Proto is INFINITY TIMES faster than Protocol Buffers. This benchmark is, of course, unfair. It is only measuring the time to encode and decode a message in memory. But doesn’t that mean the encoding is platform-specific? NO! Doesn’t that make backwards-compatibility hard? Not at all! Won’t fixed-width integers, unset optional fields, and padding waste space on the wire? Yes. When bandwidth really matters, you should apply general-purpose compression, like zlib or Snappy, regardless of your encoding format. Are there other advantages? Glad you asked! Incremental reads: It is easy to start processing a Cap’n Proto message before you have received all of it since outer objects appear entirely before inner objects (as opposed to most encodings, where outer objects encompass inner objects).

Nu7hatch/gmail. Go for System Administrators - blog dot lusis. If I never directly touch a Go concurrency primitive, I’m convinced I’m going to write all my cli apps with it just for ease of deployment.

Go for System Administrators - blog dot lusis

This is something I said the other day. I figured it deserved a more detailed blog post. Most people who know me professionally know two things about me: I’m fairly pragmatic and somewhat conservative about technology decisionsI’m a language tourist This second one is something Bryan Berry attributed to me in an early FoodFight episode. I love learning new programming languages. So it’s weird that I find myself 18 years later having a working knowledge of ruby, python, perl, java and a few other languages to a lesser degree. This leads me to picking up Go.

If you haven’t heard of Go, there are countless articles, blog posts and a shitload of new tooling written in it. NUMA (Non-Uniform Memory Access): An Overview - ACM Queue. Christoph Lameter, Ph.D.

NUMA (Non-Uniform Memory Access): An Overview - ACM Queue

NUMA (non-uniform memory access) is the phenomenon that memory at various points in the address space of a processor have different performance characteristics. At current processor speeds, the signal path length from the processor to memory plays a significant role. Increased signal path length not only increases latency to memory but also quickly becomes a throughput bottleneck if the signal path is shared by multiple processors. The performance differences to memory were noticeable first on large-scale systems where data paths were spanning motherboards or chassis. These systems required modified operating-system kernels with NUMA support that explicitly understood the topological properties of the system's memory (such as the chassis in which a region of memory was located) in order to avoid excessively long signal path lengths.

Today, processors are so fast that they usually require memory to be directly attached to the socket that they are on. Haskell.cs.yale.edu/wp-content/uploads/2013/08/hask035-voellmy.pdf?haskellworkshop. The Evolution of a Haskell Programmer. Fritz Ruehr, Willamette University Freshman Haskell programmer.

The Evolution of a Haskell Programmer

TextBlob: Simplified Text Processing — TextBlob 0.5.0 documentation. Release v0.8.4.

TextBlob: Simplified Text Processing — TextBlob 0.5.0 documentation

(Changelog) TextBlob is a Python (2 and 3) library for processing textual data. It provides a simple API for diving into common natural language processing (NLP) tasks such as part-of-speech tagging, noun phrase extraction, sentiment analysis, classification, translation, and more. TextBlob stands on the giant shoulders of NLTK and pattern, and plays nicely with both. Features Noun phrase extractionPart-of-speech taggingSentiment analysisClassification (Naive Bayes, Decision Tree)Language translation and detection powered by Google TranslateTokenization (splitting text into words and sentences)Word and phrase frequenciesParsingn-gramsWord inflection (pluralization and singularization) and lemmatizationSpelling correctionJSON serializationAdd new models or languages through extensionsWordNet integration.

Its-not-software - steveyegge2. You don't work in the software industry.

its-not-software - steveyegge2

The software industry has been around a lot longer than ours, and it continues to thrive in parallel to ours. There's some overlap, just as the hardware and software industries have some overlap. But it's a lot less than you probably realize. Not knowing that we're not in the software industry is hurting you every day. For one thing, it's hurting you because you're applying old models and practices to a completely new and different industry, without thinking about them. But it's also hurting us in that any competitor who does understand that it's a different industry is going to start coding circles around us, to whatever extent they've figured it out.

Our Sister Industry So what's the software industry, and how do we differ from it? Well, the software industry is what you learn about in school, and it's what you probably did at your previous company. Servware. CodeLite Open Source C/C++ IDE.

Linux

Web. Kernel.