Seven Microservices Anti-Patterns — One common mistake people made with SOA was misunderstanding how to achieve the reusability of services. Teams mostly focused on technical cohesion rather than functional regarding reusability. For example, several services functioned as a data access layer (ORM) to expose tables as services; they thought it would be highly reusable. This created an artificial physical layer managed by a horizontal team, which caused delivery dependency. Any service created should be highly autonomous – meaning independent of each other.
This World of Ours (PDF) — funny and accurate skewering of the modern security researcher. In the real world, threat models are much simpler (see Figure 1). Basically, you’re either dealing with Mossad or not-Mossad. If your adversary is not-Mossad, then you’ll probably be fine if you pick a good password and don’t respond to emails from ChEaPestPAiNPi11s@virus-basket.biz.ru. If your adversary is the Mossad, YOU’RE GONNA DIE AND THERE’S NOTHING THAT YOU CAN DO ABOUT IT. The Mossad is not intimidated by the fact that you employ https://.
Ligra — a lightweight graph processing framework for shared memory. It is particularly suited for implementing parallel graph traversal algorithms where only a subset of the vertices are processed in an iteration.
Tinder and Hook-Up Culture (Vanity Fair) — “There have been two major transitions” in heterosexual mating “in the last four million years,” he says. “The first was around 10,000 to 15,000 years ago, in the agricultural revolution, when we became less migratory and more settled,” leading to the establishment of marriage as a cultural contract. “And the second major transition is with the rise of the Internet.”
Networks Increasing Ad Stuffing — TV audiences (as determined by Nielsen C3 measurements: TV watched both live and three days after the show was first aired on catch-up services) are down 9% year on year, yet ad loads on some networks are up as much as 10% on last year. The dinosaurs are hungry.
Theft, Lies, and Facebook Video (Medium) — inexcusable that Facebook, a company with a market cap of $260 BILLION, launched their video platform with no system to protect independent rights holders. It wouldn’t be surprising if Facebook was working on a solution now, which they can roll out conveniently after having made their initial claims at being the biggest, most important thing in video. In the words of Gillian Welch, “I wanna do right, but not right now.“
The Web We Have to Save — Nearly every social network now treats a link just the same as it treats any other object — the same as a photo, or a piece of text — instead of seeing it as a way to make that text richer. You’re encouraged to post one single hyperlink and expose it to a quasi-democratic process of liking and plussing and hearting: Adding several links to a piece of text is usually not allowed. Hyperlinks are objectivized, isolated, stripped of their powers.
California Regulator Pushing for All Cars to be Electric (Bloomberg) — Nichols really does intend to force automakers to eventually sell nothing but electrics. In an interview in June at her agency’s heavy-duty-truck laboratory in downtown Los Angeles, it becomes clear that Nichols, at age 70, is pushing regulations today that could by midcentury all but banish the internal combustion engine from California’s famous highways. “If we’re going to get our transportation system off petroleum,” she says, “we’ve got to get people used to a zero-emissions world, not just a little-bit-better version of the world they have now.” How long until the same article is written, but about driverless cars?
LLVM for Grad Students — fast intro to why LLVM is interesting. LLVM is a great compiler, but who cares if you don’t do compilers research? A compiler infrastructure is useful whenever you need to do stuff with programs.
Data-flow Graphing in Python (Matt Keeter) — not shared because data-flow graphing is sexy new hot topic that’s gonna set the world on fire (though, I bet that’d make Matt’s day), but because there are entire categories of engineering and operations migraines that are caused by not knowing where your data came from or goes to, when, how, and why. Remember Wirth’s “algorithms + data structures = programs”? Data flows seem like a different slice of “programs.” Perhaps “data flow + typos = programs”?
Japan’s Robot Hotel is Serious Business (Engadget) — hotel was architected to suit robots: For the porter robots, we designed the hotel to include wide paths.” Two paths slope around the hotel lobby: one inches up to the second floor, while another follows a gentle decline to guide first-floor guests (slowly, but with their baggage) all the way to their room. Makes sense: at Solid, I spoke to a chap working on robots for existing hotels, and there’s an entire engineering challenge in navigating an elevator that you wouldn’t believe.
bokken — GUI to help open source reverse engineering for code.
A Conversation with Michael Lopp — My job is to my get myself out of a job. I’m aggressively pushing things I think I could be really good at and should actually maybe own to someone else who’s gonna get a B at it, but they’re gonna get the opportunity to go do that. […] Delegation is helping someone else to learn. I’m all about the humans. If I don’t have happy, productive, growing engineers, I have exactly no job. That investment in the growth, in the happiness, the engineers being productive, that’s like my primary job.
serve2d — serve2 allows you to serve multiple protocols on a single socket. Example handlers include proxy, HTTP, TLS (through which HTTPS is handled), ECHO and DISCARD. More can easily be added, as long as the protocol sends some data that can be recognized. The proxy handler allows you to redirect the connection to external services, such as OpenSSH or Nginx, in case you don’t want or can’t use a Go implementation.
GitXiv — In recent years, a highly interesting pattern has emerged: Computer scientists release new research findings on arXiv and just days later, developers release an open-source implementation on GitHub. This pattern is immensely powerful. One could call it collaborative open computer science (COCS). GitXiv is a space to share collaborative open computer science projects. Countless Github and arXiv links are floating around the Web. It’s hard to keep track of these gems. GitXiv attempts to solve this problem by offering a collaboratively curated feed of projects. Each project is conveniently presented as arXiv + Github + Links + Discussion
Buzz: An Extensible Programming Language for Self-Organizing Heterogeneous Robot Swarms (arXiv) — Swarm-based primitives allow for the dynamic management of robot teams, and for sharing information globally across the swarm. Self-organization stems from the completely decentralized mechanisms upon which the Buzz run-time platform is based. The language can be extended to add new primitives (thus supporting heterogeneous robot swarms), and its run-time platform is designed to be laid on top of other frameworks, such as Robot Operating System.
Visualising GoogleNet Classes — fascinating to see squirrel monkeys and basset hounds emerge from nothing. It’s so tempting to say, “this is what the machine sees in its mind when it thinks of basset hounds,” even though Boring Brain says, “that’s bollocks and you know it!”
Speed as a Habit — You don’t have to be militant about it, just consistently respond that today is better than tomorrow, that right now is better than six hours from now. This is chock full of good advice, and the occasional good story.
Punctuated Equilibrium in the Large-Scale Evolution of Programming Languages (PDF) — Here we study the large-scale historical development of programming languages, which have deeply marked social and technological advances in the last half century. We analyse their historical connections using network theory and reconstructed phylogenetic networks. Using both data analysis and network modeling, it is shown that their evolution is highly uneven, marked by innovation events where new languages are created out of improved combinations of different structural components belonging to previous languages. These radiation events occur in a bursty pattern and are tied to novel technological and social niches. The method can be extrapolated to other systems and consistently captures the major classes of languages and the widespread horizontal design exchanges, revealing a punctuated evolutionary path. (via Jarkko Hietaniemi)
Netflix and the Conservation of Attractive Profits (Stratechery) — Note the common element to all three of these companies: all have managed to modularize the production/delivery of their service which has allowed them to move closer to the customer. To put it another way, all of this new value is being created by specialized CRM companies: Airbnb for travelers, Uber for commuters, and Netflix for the bored.
Go as Open Source — keynote from this year’s Gophercon. I’ve been pondering lately how successful open source projects go beyond “anyone can scratch their itch,” and instead actively manage the tendency for scope creep. We’d rather have a small number of features that enable, say, 90% of the target use cases, and avoid the orders of magnitude more features necessary to reach 99% or 100%.
The Universal Data Structure — Given the abysmal state of of today’s software engineering, I believe that a full embrace of the universal hash will result in better, simpler programs. Your weekly dose of snark.