"concurrency" entries

Four short links: 4 March 2015

Four short links: 4 March 2015

Go Microservices, Watch Experience, Multithreading Bugs, and Spooks Ahoy

  1. Microservices in Go — tale of rewriting a Ruby monolith as Go microservices. Interesting, though being delivered at Gophercon India suggests the ending is probably not unhappy.
  2. Watch & Wear (John Cross Neumann) — Android watch as predictor of the value and experience of an Apple Watch. I believe this is the true sweet spot for meaningful wearable experiences. Information that matters to you in the moment, but requires no intervention. Wear actually does this extremely well through Google Now. Traffic, Time to Home, Reminders, Friend’s Birthdays, and Travel Information all work beautifully. […] After some real experience with Wear, I think what is more important is to consider what Apple Watch is missing: Google Services. Google Services are a big component of what can make wearing a tiny screen on your wrist meaningful and personal. I wouldn’t be surprised after the initial wave of apps through the app store if Google Now ends up being the killer app for Apple Watch.
  3. Solving 11 Likely Problems In Your Multithreaded Code (Joe Duffy) — a good breakdown of concurrency problems, including lower-level ones than high-level languages expose. But beware. If you try this [accessing variables with synchronisation] on a misaligned memory location, or a location that isn’t naturally sized, you can encounter a read or write tearing. Tearing occurs because reading or writing such locations actually involves multiple physical memory operations. Concurrent updates can happen in between these, potentially causing the resultant value to be some blend of the before and after values.
  4. Obama Sharply Criticizes China’s Plans for New Technology Rules (Reuters) — In an interview with Reuters, Obama said he was concerned about Beijing’s plans for a far-reaching counterterrorism law that would require technology firms to hand over encryption keys, the passcodes that help protect data, and install security “backdoors” in their systems to give Chinese authorities surveillance access. Goose sauce is NOT gander sauce! NOT! Mmm, delicious spook sauce.
Four short links: 21 March 2014

Four short links: 21 March 2014

PHP++, Planning, BitCoin, and Concurrency

  1. Hack — PHP with types, generics, collections, lambdas. From Facebook.
  2. Solve Hard Things EarlyBuild great habits around communication and decision-making when everyone still knows each other well.
  3. Marginally Useful (Paul Ford) — The last two decades have suggested a post-scarcity economy, where infinite copies of attractive digital things have a price approaching $0. Maybe that was merely a passing moment that we will look back upon with wonder once limited coins enforce scarcity—once the owner of a piece of digital art can look upon it with satisfaction and know with total, cryptographic certainty that because he paid for it, it belongs to him and no one else.
  4. Go Pipelines and Cancellation — Go’s fascinating me, as an example of a language designed for concurrency and syntactic familiarity.

Velocity: Toward the real-time business

Velocity 2013 Speaker Series

I want to start by thanking John and Steve for the warm welcome. They’ve created something very amazing with Velocity, and I’m excited to be a part of it.

It might seem a bit odd to talk about What’s Next at the beginning of a conference, but I figure the best time to go to the bank and ask for a loan is when you actually have some money.

What we’ve been talking about at Velocity, especially the DevOps side of things, is only the tip of the iceberg when it comes to how businesses are changing. And that shift is from the sequential to the concurrent. It used to be that we threw things over a series of walls, from Product Management to Design, to Development, to QA, to Production, to Customer Service and so on. That was an old world of software and one-year development cycles.

Read more…

Go Programming Language for System Administration

OSCON 2013 Speaker Series

Go is the first major systems language to emerge in over a decade, even though computing continues to change at a rapid pace—computers are smaller, faster, and can execute operations in parallel via multi core processors. Even languages like Python and Ruby have grown in popularity in recent years among system administrators, operations, and DevOps personnel. Yet, as a relatively new kid on the block, Go is a versatile and robust language that has plenty to offer.

Let’s go through the list:

Open: It’s Open Source—Go has been open source software since November 2009, reaching Version 1 in March of 2012. It includes a language specification, standard libraries, and custom tools. Being open, Go has long-term stability.

Concurrency: Go provides support for concurrent execution and communication. There is no need to learn multiple ways of dealing with threads. Go greatly simplifies threading by providing goroutines and channels.

Fast compilation: Go compiles at a break-neck speed. It has robust dependency analysis and a rigid dependency specification to avoid wasting time with unused dependencies.

One binary to rule them all: Have you ever had to distribute your script or binary to multiple systems, then worry about libraries and dependencies in general? With Go, you simply don’t have to worry about dependencies. Gc, Go’s default compiler statically links its binaries. You can use go build to compile your code and then distribute it to multiple machines with minimal effort.

Feature rich standard library: The language has a great standard library and many third party Go packages maintained at Bitbucket, Github, Launchpad, or Google Project Hosting.

Readability: Go ceases the debate about the best style of programming by providing a code formatter tool (gofmt) and enforcing it in its standard library. The code you write today will be much easier to read and maintain in a few months or even years by simply sticking to gofmt.

And, Go is a language that grows with you. Take the tour

Four short links: 15 May 2012

Four short links: 15 May 2012

Mobile Money, Actors in java, Actors in python, and a Decision-Making Tool

  1. Mobile Money (The Economist) — Many people know that “mobile money”—financial transactions on mobile phones—has taken off in Africa. How far it has gone, though, still comes as a bit of a shock. Three-quarters of the countries that use mobile money most frequently are in Africa, and mobile banking in some of them has reached extraordinary levels.
  2. Akka — Apache-licensed Java high-performance concurrency library built around the concept of “actors“. (via Hacker News)
  3. Pykka — actors in Python. (via Hacker News)
  4. Loom.io Project — help crowdfund a collaborative decision-making tool. They’re using it as they build the tool, and it’s the implementation of a process they use in real life. I know many organisations who need a free open-source web application that helps groups make better decisions together. You should probably read more about the interesting company Enspiral which is behind loom.io.

Editorial Radar: Functional languages

The benefits of functional languages and functional language techniques.

O'Reilly editors Mike Loukides and Mike Hendrickson discuss the advantages of functional programming languages and how functional language techniques can be deployed with almost any language.

Four short links: 24 August 2011

Four short links: 24 August 2011

STM in Python, Static Web is Back, Cyberwar, and Virtual Language Education

  1. STM in PyPy — a proposal to add software transactional memory to the all-Python Python interpreter as a way of simplifying concurrent programming. I first learned about STM from Haskell’s Simon Peyton-Jones at OSCON. (via Nelson Minar)
  2. Werner Vogels’ Static Web Site on S3 — nice writeup of the toolchain to publish a web site to static files served from S3.
  3. China Inadvertently Reveals State-Sponsored Hacking — if UK, US, France, Israel, or Chinese citizens believe their government doesn’t have malware and penetration teams working on extracting information from foreign governments, they’re dreaming.
  4. MyChinese360 — virtual foreign language instruction in Mandarin, including “virtual visits” to Chinese landmarks. The ability to get native speakers virtually into the classroom makes the Internet a huge asset for rural schools. (via Lucy Gray)