In the Zone: How Gamers Experience The Real Chernobyl
Great article. I’ve experienced this in LA, particularly, after playing the GTA series
(tags: pripyat gaming tourism reality virtual-reality via:oceanclub games)
Justin's Linklog Posts
Shapecatcher: Draw the Unicode character you want!
‘This is a tool to help you find Unicode characters. Finding a specific character whose name you don’t know is cumbersome. On shapecatcher.com, all you need to know is the shape of the character!’ Handy.
(tags: shapes drawing unicode characters language recognition web)
Unchi-kun Candy – Japanese Lucky Poop Candy
What doesn’t look like Christmas more than a smiling piece of poop, called unchi in Japanese? Because the shape of unchi looks similar to that of mochi used for shrine offerings, and because the sound “unchi” like the Japanese word for luck, this treat is actually a lucky gift — at least that is how you can explain yourself when you give it as a gift. Each Unchi-kun comes packed with poop candy, taken out from the bottom. Once finished eating, you can open the slot in the back with a box-cutter and turn it into a bank.
Want one!(tags: unchi-kun unchi pile-of-poo emoji unicode cute funny japan j-list sweets food gross candy)
Bletchley Park Trust erects “Berlin Wall” to cut off on-site computer history museum – Boing Boing
The Bletchley Park trust have erected a fence, nicknamed “The Berlin Wall,” between their well-funded museum and its poorer on-site neighbour, the UK National Museum of Computing, which houses the hand-built replica of the codebreaking Colossus computer. The trust received an £8m lottery-funded grant and set about shitcanning long-serving volunteers, cutting off the computer history museum, and generally behaving like greedy jerks, systematically alienating long-term supporters. Oh, and there was that Snowden business.
WTF. Stupid antics.-
Good benchmark data on the performance of JVM exceptions
(tags: java jvm exceptions benchmarking performance optimization coding)
-
Oh Apple, you asshats. This is some seriously shitty programming. iMessage on iOS devices caches the “iMessage-capable” flag for all numbers, indefinitely, so if you switch from iPhone to Android, messages from your friends’ iPhones won’t get delivered to you henceforth — and to add insult to injury, it claims they do with a “Delivered.” status appearing under the message. This is happening to me right now…
(tags: apple sms messaging phones mobile imessage android fail bad-programming bugs)
-
an Android-based stingray (IMSI catcher) detector that uses machine learning to detect the presence of stingray devices which can be used to eavesdrop on cellular communication.
In pre-launch right now. Via EthanZ via Antoin(tags: imsi-catcher stingray surveillance via:ethanz snooping spying privacy mobile)
-
+1. What has happened at Google? Did they fire ever employee in the UX department?
Spark – A small web framework for Java
A Sinatra-like minimal web framework built on Java 8 lambdas:
public class HelloWorld { public static void main(String[] args) { get("/hello", (request, response) -> { return "Hello World!"; }); } }
(tags: via:sampullara web java sinatra lambdas closures java8 spark)
Building a Global, Highly Available Service Discovery Infrastructure with ZooKeeper
This is the written version of a presentation [Camille Fournier] made at the ZooKeeper Users Meetup at Strata/Hadoop World in October, 2012 (slides available here). This writeup expects some knowledge of ZooKeeper.
good advice from one of the ZK committers.(tags: zookeeper service-discovery architecture distcomp camille-fournier availability wan network)
“Replicated abstract data types: Building blocks for collaborative applications”
cited at https://news.ycombinator.com/item?id=7737423 as ‘one of my favorite papers on CRDTs and provides practical pseudocode for learning how to implement CRDTs yourself’, in a discussion on cemerick’s “Distributed Systems and the End of the API”: http://writings.quilt.org/2014/05/12/distributed-systems-and-the-end-of-the-api/
(tags: distcomp networking distributed crdts algorithms text data-structures cap)
Android 4.4 KitKat Problems: HTC UK Speaks Out About HTC One Update Issues
Good advice on improving battery life with the KitKat 4.4.2 point release on a HTC One. I had serious battery problems, but they seem to have been resolved by following this advice
(tags: wifi kitkat android 4.4.2 htc-one htc battery blinkfeed mobile phones)
Transform any text into a patent application
‘An apparatus and device for staring into vacancy. The devices comprises a good cage, a narrow gangway, an electric pocket, a flower-bedecked cage, an insensitive felt.’ (The Hunger Artist by Kafka)
The Big List of Local Multiplayer Games
authoritative!
(tags: couch games gaming local-multiplayer multiplayer)
-
Mock Boto: ‘a library that allows your python tests to easily mock out the boto library.’ Supports S3, Autoscaling, EC2, DynamoDB, ELB, Route53, SES, SQS, and STS currently, and even supports a standalone server mode, to act as a mock service for non-Python clients. Excellent! (via Conor McDermottroe)
(tags: python aws testing mocks mocking system-tests unit-tests coding ec2 s3)
python languages concurrency go threading gevent scalability disqus realtime hn)
Database Migrations Done Right
The rule is simple. You should never tie database migrations to application deploys or vice versa. By minimising dependencies you enable faster, easier and cleaner deployments.
A solid description of why this is a good idea, from an ex-Guardian dev.(tags: migrations database sql mysql postgres deployment ops dependencies loose-coupling)
-
some cute brooches/jewellery here, for the next time I need to pick a nice gift
(tags: julie-moon art magic-pony jewellery brooches gifts)
Building a large scale CDN with Apache Traffic Server
via Ilya Grigorik: ‘Great under-the-hood look at how Comcast built and operates their internal CDN for delivering video (on-demand + live). Some highlights: switched to own (open-source) stack; ~250 servers pushing ~1.5Pb of data/day with ~5Pb of storage capacity.’
(tags: cdn comcast video presentations apache traffic-server vod)
An analysis of Facebook photo caching
excellent analysis of caching behaviour at scale, from the FB engineering blog (via Tony Finch)
(tags: via:fanf caching facebook architecture photos images cache fifo lru scalability)
-
good advice. next time I go over, I’ll have to get a Clipper card. Also: ‘Brunch is its own section because I have never encountered a place that takes brunch so seriously.’
(tags: brunch sf travel california tips san-francisco clipper-card)
Alexey Shipilev on Java’s System.nanoTime()
System.nanoTime is as bad as String.intern now: you can use it, but use it wisely. The latency, granularity, and scalability effects introduced by timers may and will affect your measurements if done without proper rigor. This is one of the many reasons why System.nanoTime should be abstracted from the users by benchmarking frameworks, monitoring tools, profilers, and other tools written by people who have time to track if the underlying platform is capable of doing what we want it to do. In some cases, there is no good solution to the problem at hand. Some things are not directly measurable. Some things are measurable with unpractical overheads. Internalize that fact, weep a little, and move on to building the indirect experiments. This is not the Wonderland, Alice. Understanding how the Universe works often needs side routes to explore. In all seriousness, we should be happy our $1000 hardware can measure 30 nanosecond intervals pretty reliably. This is roughly the time needed for the Internet packets originating from my home router to leave my apartment. What else do you want, you spoiled brats?
(tags: benchmarking jdk java measurement nanoseconds nsecs nanotime jvm alexey-shipilev jmh)
-
aka. “zero-shot learning”. ok starting point
(tags: machine-learning zero-shot unsupervised algorithms ml)
-
Ilya Grigorik describes the design of the Bitcoin/altcoin block chain algorithm. Illuminating writeup
(tags: algorithms bitcoin security crypto blockchain ilya-grigorik)
-
The aim of the docker plugin is to be able to use a docker host to dynamically provision a slave, run a single build, then tear-down that slave. Optionally, the container can be committed, so that (for example) manual QA could be performed by the container being imported into a local docker provider, and run from there.
The holy grail of Jenkins/Docker integration. How cool is that…(tags: jenkins docker ops testing ec2 hosting scaling elastic-scaling system-testing)
-
an OSI layer 6 presentation for encoding/decoding messages in binary format to support low-latency applications. […] SBE follows a number of design principles to achieve this goal. By adhering to these design principles sometimes means features available in other codecs will not being offered. For example, many codecs allow strings to be encoded at any field position in a message; SBE only allows variable length fields, such as strings, as fields grouped at the end of a message. The SBE reference implementation consists of a compiler that takes a message schema as input and then generates language specific stubs. The stubs are used to directly encode and decode messages from buffers. The SBE tool can also generate a binary representation of the schema that can be used for the on-the-fly decoding of messages in a dynamic environment, such as for a log viewer or network sniffer. The design principles drive the implementation of a codec that ensures messages are streamed through memory without backtracking, copying, or unnecessary allocation. Memory access patterns should not be underestimated in the design of a high-performance application. Low-latency systems in any language especially need to consider all allocation to avoid the resulting issues in reclamation. This applies for both managed runtime and native languages. SBE is totally allocation free in all three language implementations. The end result of applying these design principles is a codec that has ~25X greater throughput than Google Protocol Buffers (GPB) with very low and predictable latency. This has been observed in micro-benchmarks and real-world application use. A typical market data message can be encoded, or decoded, in ~25ns compared to ~1000ns for the same message with GPB on the same hardware. XML and FIX tag value messages are orders of magnitude slower again. The sweet spot for SBE is as a codec for structured data that is mostly fixed size fields which are numbers, bitsets, enums, and arrays. While it does work for strings and blobs, many my find some of the restrictions a usability issue. These users would be better off with another codec more suited to string encoding.
(tags: sbe encoding protobuf protocol-buffers json messages messaging binary formats low-latency martin-thompson xml)
Observations of an Internet Middleman
That leaves the remaining six [consumer ISPs peering with Level3] with congestion on almost all of the interconnect ports between us. Congestion that is permanent, has been in place for well over a year and where our peer refuses to augment capacity. They are deliberately harming the service they deliver to their paying customers. They are not allowing us to fulfil the requests their customers make for content. Five of those congested peers are in the United States and one is in Europe. There are none in any other part of the world. All six are large Broadband consumer networks with a dominant or exclusive market share in their local market. In countries or markets where consumers have multiple Broadband choices (like the UK) there are no congested peers.
Amazing that L3 are happy to publish this — that’s where big monopoly ISPs have led their industry.(tags: net-neutrality networking internet level3 congestion isps us-politics)
interview with Google VP of SRE Ben Treynor
interviewed by Niall Murphy, no less ;). Some good info on what Google deems important from an ops/SRE perspective
(tags: sre ops devops google monitoring interviews ben-treynor)
Faster BAM Sorting with SAMtools and RocksDB
Now this is really really clever. Heap-merging a heavyweight genomics format, using RocksDB to speed it up.
There’s a problem with the single-pass merge described above when the number of intermediate files, N/R, is large. Merging the sorted intermediate files in limited memory requires constantly reading little bits from all those files, incurring a lot of disk seeks on rotating drives. In fact, at some point, samtools sort performance becomes effectively bound to disk seeking. […] In this scenario, samtools rocksort can sort the same data in much less time, using no more memory, by invoking RocksDB’s background compaction capabilities. With a few extra lines of code we configure RocksDB so that, while we’re still in the process of loading the BAM data, it runs additional background threads to merge batches of existing sorted temporary files into fewer, larger, sorted files. Just like the final merge, each background compaction requires only a modest amount of working memory.
(via the RocksDB facebook group)(tags: rocksdb algorithms sorting leveldb bam samtools merging heaps compaction)
Coding For Life (Battery Life, That Is)
great presentation on Android mobile battery life, and what to avoid
(tags: presentations via:sergio android mobile battery battery-life 3g wifi gprs hardware)
Oisin’s mobile app release checklist
‘This form is to document the testing that has been done on each app version before submitting to the App Store. For each item, indicate Yes if the testing has been done, Not Applicable if the testing does not apply (eg testing audio for an app that doesn’t play any), or No if the testing has not been done for another reason.’
(tags: apps checklists release coding ios android mobile ohurley)
“A New Data Structure For Cumulative Frequency Tables”
paper by Peter M Fenwick, 1993. ‘A new method (the ‘binary indexed tree’) is presented for maintaining the cumulative frequencies which are needed to support dynamic arithmetic data compression. It is based on a decomposition of the cumulative frequencies into portions which parallel the binary representation of the index of the table element (or symbol). The operations to traverse the data structure are based on the binary coding of the index. In comparison with previous methods, the binary indexed tree is faster, using more compact data and simpler code. The access time for all operations is either constant or proportional to the logarithm of the table size. In conjunction with the compact data structure, this makes the new method particularly suitable for large symbol alphabets.’ via Jakob Buchgraber, who’s implementing it right now in Netty ;)
(tags: netty frequency-tables data-structures algorithms coding binary-tree indexing compression symbol-alphabets)
-
Patent trolls have sued or threatened to sue tens of thousands of end-users. For example, Innovatio attacked cafes, bakeries, and even a funeral parlor for using off-the-shelf Wi-Fi routers. And the notorious scanner troll, MPHJ, targeted small businesses and nonprofits around the country for using ordinary office equipment. As a recent paper explained: “Mass suits against technology customers have become too common, involving building block technologies like wi-fi, scanning, email and website technologies.” The growth in patent suits against customers reveals the importance of the Limelight case. A ruling that made it even easier to sue customers (by allowing suits against someone who performs just some steps of a patent) would encourage patent trolls to launch more abusive litigation campaigns. We hope the Supreme Court will restore the sensible rule that only a single entity (or its agents) can infringe a patent.
(tags: patents uspto swpats eff consumer law legal patent-infringement scanners wifi printers)
Hanging on the telephone – has anyone got it right on the new ban on text driving?
Some good legal commentary on this new Irish law.
There has been much hand-wringing and concern about whether or not the 2014 Regulations prohibit the use of Google Maps or Hailo, for example. They don’t, but this does not mean that drivers should feel free to use non-texting functions of their phones while driving – holding a mobile phone (which could include a tablet) while driving remains prohibited, whatever the use it is being put to. Moreover, offences of dangerous and careless driving and driving without due care and attention could cover a wide range of bad driving, and could include, for example, driving while zooming in and out of maps on your phone or sending stickers on WhatsApp.
(tags: ireland law driving safety mobile-phones texting google-maps satnav)
-
‘better dates and times for Python’, to fix the absurd proliferation of slightly-incompatible Python date/time types and APIs. unfortunately, http://imgs.xkcd.com/comics/standards.png applies….
(tags: python libraries time dates timestamps timezones apis proliferation iso-8601)
Holdings: Guinness’s Brewery Dublin
‘Guinness’s Brewery Dublin. Malt House, malt on floor; sign’ – One of the photos taken by my great-grandfather, Thomas H. Mason, around the turn of the century from the NLI collection
(tags: nli ireland photos t-h-mason history dublin guinness maltings beer)
Published image: ‘An Irish Village’.
‘Cart, man/woman; 2 men and boy serving beer outside, + sign ‘Rich King Spirits’. Ragged attire’ – One of the photos taken by my great-grandfather, Thomas H. Mason, around the turn of the century from the NLI collection
-
One of the photos taken by my great-grandfather, Thomas H. Mason, around the turn of the century from the NLI collection
-
One of the photos taken by my great-grandfather, Thomas H. Mason, around the turn of the century from the NLI collection
(tags: ireland history science chemistry crystals t-h-mason photos)
-
One of the SmartStack developers at AirBNB responds to Consul.io’s comments. FWIW, we use SmartStack in Swrve and it works pretty well…
(tags: smartstack airbnb ops consul serf load-balancing availability resiliency network-partitions outages)
A Closer Look At OC’s Anti-Vaccination Cluster
In communities such as San Clemente, Laguna Beach, Laguna Niguel, Aliso Viejo, Mission Viejo and Capistrano Beach, where Dr. Bob Sears practices, there are clusters of unvaccinated children. Last year, at 15 of the 40 elementary schools in the Capistrano Unified School District, more than 10 percent of kindergartners had [Personal Belief exemptions], according to data from the California Department of Public Health. At one public charter school, Journey, 56 percent of kindergartners were unvaccinated, at least partially, due to their parents’ beliefs.
This is going to end horribly. Typical OC(tags: orange-county health vaccination laguna-beach oc dr-bob-sears kindergarten measles mumps rubella pertussis epidemiology)
-
Today we’re open sourcing Secor, a zero data loss log persistence service whose initial use case was to save logs produced by our monetization pipeline. Secor persists Kafka logs to long-term storage such as Amazon S3. It’s not affected by S3’s weak eventual consistency model, incurs no data loss, scales horizontally, and optionally partitions data based on date.
(tags: pinterest hadoop secor storm kafka architecture s3 logs archival)
Coping with the TCP TIME-WAIT state on busy Linux servers
extensive blog post
(tags: networking linux tcp performance time-wait sysctls tuning)
Flood IO Offering Network Emulation
Performance-testing-as-a-service company Flood.IO now offering emulation of various crappy end-user networks: GSM, DSL, GPRS, 3G, 4G etc. Great idea.
(tags: flood.io performance networking internet load-testing testing jmeter gatling tests gsm 3g mobile simulation)
-
Disqus’ realtime architecture — nginx PushStream module doing the heavy lifting, basically. See https://gist.github.com/dctrwatson/0b3b52050254e273ff11 for the production nginx configs they use. I am very impressed that push-stream has grown to be so solid; it’s a great way to deal with push from the sounds of it. http://blog.disqus.com/post/51155103801/trying-out-this-go-thing now notes that some of the realtime backends are in Go. https://speakerdeck.com/dctrwatson/c1m-and-nginx (“C1M and Nginx”) is a more up to date presentation. It notes that PushStream supports “EventSource, WebSocket, Long Polling, and forever iframe”. More sysctls and nginx tuning in that prez.
(tags: sysctl nginx tuning go disqus realtime push eventsource websockets long-polling iframe python)
‘The Design And Implementation Of Modern Column-Oriented Database Systems’
paper, PDF; Daniel Abadi et al.
(tags: papers pdf columnar-stores column-oriented databases storage architecture algorithms)
‘Pickles & Spores: Improving Support for Distributed Programming in Scala
‘Spores are “small units of possibly mobile functional behavior”. They’re a closure-like abstraction meant for use in distributed or concurrent environments. Spores provide a guarantee that the environment is effectively immutable, and safe to ship over the wire. Spores aim to give library authors some confidence in exposing functions (or, rather, spores) in public APIs for safe consumption in a distributed or concurrent environment. The first part of the talk covers a simpler variant of spores as they are proposed for inclusion in Scala 2.11. The second part of the talk briefly introduces a current research project ongoing at EPFL which leverages Scala’s type system to provide type constraints that give authors finer-grained control over spore capturing semantics. What’s more, these type constraints can be composed during spore composition, so library authors are effectively able to propagate expert knowledge via these composable constraints. The last part of the talk briefly covers Scala/Pickling, a fast new, open serialization framework.’
(tags: pickling scala presentations spores closures fp immutability coding distributed distcomp serialization formats network)
BBC News – Microsoft ‘must release’ data held on Dublin server
Messy. I can’t see this lasting beyond an appeal.
Law enforcement efforts would be seriously impeded and the burden on the government would be substantial if they had to co-ordinate with foreign governments to obtain this sort of information from internet service providers such as Microsoft and Google, Judge Francis said. In a blog post, Microsoft’s deputy general counsel, David Howard, said: “A US prosecutor cannot obtain a US warrant to search someone’s home located in another country, just as another country’s prosecutor cannot obtain a court order in her home country to conduct a search in the United States. “We think the same rules should apply in the online world, but the government disagrees.”
(tags: microsoft regions law us-law privacy google cloud international-law surveillance)
Russia passes bill requiring bloggers to register with government
A bill passed by the Russian parliament on Tuesday says that any blogger read by at least 3,000 people a day has to register with the government telecom watchdog and follow the same rules as those imposed by Russian law on mass media. These include privacy safeguards, the obligation to check all facts, silent days before elections and loose but threatening injunctions against “abetting terrorism” and “extremism.”
Russian blogging platforms have responded by changing view-counter tickers to display “2500+” as a max.(tags: russia blogs blogging terrorism extremism internet regulation chilling-effects censorship)
-
as used in the Apollo guidance computer systems — hand-woven by “little old ladies”. Amazing
(tags: core-memory memory rope-core guidance apollo space nasa history 1960s via:hn)
How I used Heartbleed to steal a site’s private crypto key
good writeup from Robin Xu
(tags: robin-xu heartbleed rsa private-keys openssl hacking security tls ssl)
Making runbooks more useful by exposing them through monitoring
Nice example of an ops runbook wiki for a service
(tags: runbooks ops devops monitoring sysadmin documentation wiki)
-
Ubuntu, C*, HAProxy, MySQL, RDS, multiple AWS regions.
(tags: hailo cassandra ubuntu mysql rds aws ec2 haproxy architecture)
They called it “big iron” for a reason: the Cray Motor-Generator Unit
I think the deal with the Motor-Generator Unit was that the Cray 1 needed not just enormous amounts of power (over a hundred kilowatts!), but also very stable power. So it ran from a huge electric generator connected directly to a huge electric motor, the motor running from dirty grid power and the generator, in turn, feeding the computer’s own multi-voltage PSU. The Cray 1 itself weighed a mere 2.4 tonnes, but all this support stuff added several more tonnes.
via RobS.(tags: via:rob-synnott cray history big-iron motors power electricity generators)
Go: Best Practices for Production Environments
how Soundcloud deploy their Go services, after 2.5 years of Go in production
(tags: go tips deployment best-practices soundcloud ops)
-
‘Location Codes for Irish Addresses’. Looks like, as expected, this will not have no-cost licensing terms; companies and non-profit orgs will all have to pay Capita Business Support Services Ireland for access. boo.
(tags: eircode mapping addressing geocoding ireland open-source licensing postcodes)
Why your company shouldn’t use Git submodules
‘It is not uncommon at all when working on any kind of larger-scale project with Git to find yourself wanting to share code between multiple different repositories – whether it be some core system among multiple different products built on top of that system, or perhaps a shared utility library between projects. At first glance, Git submodules seem to be the perfect answer for this: they come built-in with Git, they act like miniature repositories (so people are already familiar with how to change them), et cetera. They even support pointing at specific versions of the shared code, so if one project doesn’t want to deal with integrating the “latest and greatest” version, it doesn’t have to. It’s after you’ve actually worked with submodules for a while that you start to notice just how half-baked Git’s submodules system really is.’
(tags: git source-control revision-control submodules storage)
Eyes Over Compton: How Police Spied on a Whole City
The law-enforcement pervasive-surveillance CCTV PVR.
In a secret test of mass surveillance technology, the Los Angeles County Sheriff’s Department sent a civilian aircraft* over Compton, California, capturing high-resolution video of everything that happened inside that 10-square-mile municipality. Compton residents weren’t told about the spying, which happened in 2012. “We literally watched all of Compton during the times that we were flying, so we could zoom in anywhere within the city of Compton and follow cars and see people,” Ross McNutt of Persistence Surveillance Systems told the Center for Investigative Reporting, which unearthed and did the first reporting on this important story. The technology he’s trying to sell to police departments all over America can stay aloft for up to six hours. Like Google Earth, it enables police to zoom in on certain areas. And like TiVo, it permits them to rewind, so that they can look back and see what happened anywhere they weren’t watching in real time.
(via New Aesthetic)(tags: pvr cctv law-enforcement police compton los-angeles law surveillance future)
-
Blog post from the ES team. They use “evil tests” — basically unit/system tests, particularly using randomized error-injecting mock infrastructure. Good practices; I’ve done the same myself quite recently for Swrve’s realtime infrastructure
(tags: elasticsearch resiliency network-partitions reliability testing mocking error-injection)
Meet Ireland’s first bitcoin politician
Ossian Smyth — Green Party internet spokesman and representative for communications, energy, and natural resources, with a top wheeze: “I think it is one of the most transparent ways of receiving donations. No one would know how much money can be donated into a bank account, but with bitcoin anyone can go to the block chain and look at the wallet.” excellent ;)
(tags: ossian-smyth bitcoin fundraising greens politics ireland dublin green-party internet)
OpenPostCode demolishes the planned “Eircode” postcode system
Comprehensively ripped to shreds. Bottom line: ‘Postcodes will be largely meaningless to anyone without access to the pay-walled database. It is another tax on business.’
(tags: postcodes ireland eircode addressing geocoding mapping maps open-data)
Netflix comes out strongly against Comcast
In sum, Comcast is not charging Netflix for transit service. It is charging Netflix for access to its subscribers. Comcast also charges its subscribers for access to Internet content providers like Netflix. In this way, Comcast is double dipping by getting both its subscribers and Internet content providers to pay for access to each other.
FIGHT!(tags: netflix comcast network-neutrality cartels competition us-politics business isps)
co-founder of the Boston Beer Company swears by active dry yeast as a hangover-avoidance remedy
what [Joe] Owades knew was that active dry yeast has an enzyme in it called alcohol dehydrogenases (ADH). Roughly put, ADH is able to break alcohol molecules down into their constituent parts of carbon, hydrogen, and oxygen. Which is the same thing that happens when your body metabolizes alcohol in its liver. Owades realized if you also have that enzyme in your stomach when the alcohol first hits it, the ADH will begin breaking it down before it gets into your bloodstream and, thus, your brain.
Plausible!(tags: beer science health yeast alcohol adh medicine enzymes stomach food)
-
At Comcast, our applications need convenient, low-latency access to important reference datasets. For example, our XfinityTV websites and apps need to use entertainment-related data to serve almost every API or web request to our datacenters: information like what year Casablanca was released, or how many episodes were in Season 7 of Seinfeld, or when the next episode of the Voice will be airing (and on which channel!). We traditionally managed this information with a combination of relational databases and RESTful web services but yearned for something simpler than the ORM, HTTP client, and cache management code our developers dealt with on a daily basis. As main memory sizes on commodity servers continued to grow, however, we asked ourselves: How can we keep this reference data entirely in RAM, while ensuring it gets updated as needed and is easily accessible to application developers? The Sirius distributed system library is our answer to that question, and we’re happy to announce that we’ve made it available as an open source project. Sirius is written in Scala and uses the Akka actor system under the covers, but is easily usable by any JVM-based language.
Also includes a Paxos implementation with “fast follower” read-only slave replication. ASL2-licensed open source. The only thing I can spot to be worried about is speed of startup; they note that apps need to replay a log at startup to rebuild state, which can be slow if unoptimized in my experience. Update: in a twitter conversation at https://twitter.com/jon_moore/status/459363751893139456 , Jon Moore indicated they haven’t had problems with this even with ‘datasets consuming 10-20GB of heap’, and have ‘benchmarked a 5-node Sirius ingest cluster up to 1k updates/sec write throughput.’ That’s pretty solid!(tags: open-source comcast paxos replication read-only datastores storage memory memcached redis sirius scala akka jvm libraries)
AWS Elastic Beanstalk for Docker
This is pretty amazing. nice work, Beanstalk team. not sure how well it integrates with the rest of AWS though
(tags: aws amazon docker ec2 beanstalk ops containers linux)
TDD is dead. Long live testing
Oh god. I agree with DHH. shoot me now.
Test-first units leads to an overly complex web of intermediary objects and indirection in order to avoid doing anything that’s “slow”. Like hitting the database. Or file IO. Or going through the browser to test the whole system. It’s given birth to some truly horrendous monstrosities of architecture. A dense jungle of service objects, command patterns, and worse. I rarely unit test in the traditional sense of the word, where all dependencies are mocked out, and thousands of tests can close in seconds. It just hasn’t been a useful way of dealing with the testing of Rails applications. I test active record models directly, letting them hit the database, and through the use of fixtures. Then layered on top is currently a set of controller tests, but I’d much rather replace those with even higher level system tests through Capybara or similar. I think that’s the direction we’re heading. Less emphasis on unit tests, because we’re no longer doing test-first as a design practice, and more emphasis on, yes, slow, system tests.
(tags: tdd rails testing unit-tests system-tests integration-testing ruby dhh mocks)
All at sea: global shipping fleet exposed to hacking threat | Reuters
Hackers recently shut down a floating oil rig by tilting it, while another rig was so riddled with computer malware that it took 19 days to make it seaworthy again; Somali pirates help choose their targets by viewing navigational data online, prompting ships to either turn off their navigational devices, or fake the data so it looks like they’re somewhere else; and hackers infiltrated computers connected to the Belgian port of Antwerp, located specific containers, made off with their smuggled drugs and deleted the records.
(via Mikko Hypponen)(tags: via:mikko security hacking oilrigs shipping ships maritime antwerp piracy malware)
Search Results – (Author:Thomas H Mason)
Photographs taken by my great-grandfather, Thomas H. Mason, in the National Library of Ireland’s newly-digitized online collection
(tags: family thomas-h-mason history ireland photography archive nli)
Syria’s lethal Facebook checkpoints
An anonymous tip from a highly reliable source: “There are checkpoints in Syria where your Facebook is checked for affiliation with the rebellious groups or individuals aligned with the rebellion. People are then disappeared or killed if they are found to be connected. Drivers are literally forced to load their Facebook/Twitter accounts and then they are riffled through. It’s happening daily, and has been for a year at least.”
(tags: boing-boing war facebook social-media twitter internet checkpoints syria)
The ancient Egyptian word for ‘cat’ was pronounced ‘miaow’
and many other cool-but-true factoids
(tags: fun quora interesting via:dorothy factoids true urban-legends facts)
-
kellabyte’s hack in progress — ‘an asynchronous HTTP server framework written in C. The goal of Haywire is to learn how to create a server with a minimal feature set that can handle a high rate of requests and connections with as low of latency and resource usage as possible. Haywire uses the event loop based libuv platform layer that node.js is built on top of (also written in C). libuv abstracts IOCP on Windows and epoll/kqueue/event ports/etc. on Unix systems to provide efficient asynchronous I/O on all supported platforms.’ Outperforms libevent handily, it seems. Apache-licensed.
(tags: server http asynchronous libuv haywire kellabyte c events open-source asl2)
spoofing the samsung smart tv internet check
If this kind of bullshit — a HTTP GET of an XML file from www.samsung.com — is how the Samsung Smart TV firmware decides if the internet is working or not, I dread to think how crappy the rest of the code is. (At least in Netnote we performed a bunch of bigco-domain DNS lookups before giving up…)
(tags: smart-tv samsung fail xml http internet embedded-software firmware crap-code)
ImperialViolet – No, don’t enable revocation checking
…because it doesn’t stop attacks. Turning it on does nothing but slow things down. You can tell when something is security theater because you need some absurdly specific situation in order for it to be useful.
(tags: cryptography crypto heartbleed ssl security tls https internet revocation crls)
-
*Really* intriguing slide deck on how Asia and Africa have invented new ways of operating a business via the internet, and are turning globalisation upside down (via Yoz)
(tags: via:yoz africa asia globalisation internet web mobile payment business ecommerce global)
Using AWS in the context of Australian Privacy Considerations
interesting new white paper from Amazon regarding recent strengthening of the Aussie privacy laws, particularly w.r.t. geographic location of data and access by overseas law enforcement agencies…
(tags: amazon aws security law privacy data-protection ec2 s3 nsa gchq five-eyes)
For world’s biggest troll, first patent case ends up in tatters
Love it. Intellectual Ventures suffers a major bloody nose in IV/Capital One patent-trolling litigation
(tags: trolls patent-trolls patents swpats capital-one intellectual-ventures)
Notes On Concurrent Ring Buffer Queue Mechanics
great notes from Nitsan Wakart, who’s been hacking on ringbuffers a lot in JAQ
(tags: jaq nitsanw atomic concurrency data-structures ring-buffers queueing queues algorithms)
Uplink Latency of WiFi and 4G Networks
It’s high. Wifi in particular shows high variability and long latency tails
-
vim-flake8 is a Vim plugin that runs the currently open file through Flake8, a static syntax and style checker for Python source code. It supersedes both vim-pyflakes and vim-pep8. Flake8 is a wrapper around PyFlakes (static syntax checker), PEP8 (style checker) and Ned’s MacCabe script (complexity checker).
Recommended by several pythonistas of my acquaintance!(tags: vim python syntax error-checking errors flake8 editors ides coding)
-
Nice-looking new tool from Hashicorp; service discovery and configuration service, built on Raft for leader election, Serf for gossip-based messaging, and Go. Some features: * Gossip is performed over both TCP and UDP; * gossip messages are encrypted symmetrically and therefore secure from eavesdropping, tampering, spoofing and packet corruption (like the incident which brought down S3 for days: http://status.aws.amazon.com/s3-20080720.html ); * exposes both a HTTP interface and (even better) DNS; * includes explicit support for long-distance WAN operation as well as on LANs. It all looks very practical and usable. MPL-licensed. The only potential risk I can see is that expecting to receive config updates from a blocking poll of the HTTP interface needs some good “best practice” docs, to ensure that people don’t mishandle the scenario where there is a network partition between your calling code and the Consul server/agent. Without any heartbeating protocol behind the scenes, HTTP is vulnerable to “hung connections” which would result in a config change being silently missed by the client until the connection eventually is timed out, either by the calling code or the client-side kernel. This could potentially take minutes to occur, which in some usage scenarios could be a big, unforeseen problem.
(tags: configuration service-discovery distcomp raft consensus-algorithms go mpl open-source dns http gossip-protocol hashicorp)
Druid | How We Scaled HyperLogLog: Three Real-World Optimizations
3 optimizations Druid.io have made to the HLL algorithm to scale it up for production use in Metamarkets: compacting registers (fixes a bug with unions of multiple HLLs); a sparse storage format (to optimize space); faster lookups using a lookup table.
(tags: druid.io metamarkets scaling hyperloglog hll algorithms performance optimization counting estimation)
HyperLogLog – Intersection Arithmetic
‘In general HLL intersection in StreamLib works. |A INTERSECT B| = |A| + |B| – |A UNION B|. Timon’s article on intersection is important to read though. The usefulness of HLL intersection depends on the features of the HLLs you are intersecting.’
(tags: hyperloglog hll hyperloglogplus streamlib intersections sets estimation algorithms)
Structural Integrity | 99% Invisible
‘The student (who has since been lost to history) was studying Citicorp Center as part of his thesis and had found that the building was particularly vulnerable to quartering winds (winds that strike the building at its corners). Normally, buildings are strongest at their corners, and it’s the perpendicular winds (winds that strike the building at its face) that cause the greatest strain. But this was not a normal building. LeMessurier had accounted for the perpendicular winds, but not the quartering winds. He checked the math, and found that the student was right. He compared what velocity winds the building could withstand with weather data, and found that a storm strong enough to topple Citicorp Center hits New York City every 55 years. But that’s only if the tuned mass damper, which keeps the building stable, is running. LeMessurier realized that a major storm could cause a blackout and render the tuned mass damper inoperable. Without the tuned mass damper, LeMessurier calculated that a storm powerful enough to take out the building his New York every sixteen years.’
(tags: william-lemessurier architecture danger risk buildings nyc citicorp-center wind mass-dampers physics)
Linode announces new instance specs
‘TL;DR: SSDs + Insane network + Faster processors + Double the RAM + Hourly Billing’
(tags: hosting linode ssd performance linux ops datacenters)
-
Fcron is a scheduler. It aims at replacing Vixie Cron, so it implements most of its functionalities. But contrary to Vixie Cron, fcron does not need your system to be up 7 days a week, 24 hours a day : it also works well with systems which are running only occasionnally (contrary to anacrontab). In other words, fcron does both the job of Vixie Cron and anacron, but does even more and better :)) …
Thanks Craig!(tags: via:chughes cron fcron unix linux ops scheduler automation scripts)
-
They’ve done the classic website-redesign screwup — omitted redirects from the old URLs.
Sam Silverwood-Cope, director of Intelligent Positioning, said: “They’ve ignored the legacy of the old Ryanair.com. It’s quite startling. They are doing it just before their busiest time of the year.” A change in [URLs] without proper redirects means many results found by Google now simply return error pages, he added. “Unless redirects get put in pretty soon, the position is going to get worse and worse.”
(tags: ryanair inept fail funny via:christinebohan web google search redirects)
-
Scarfolk is a town in North West England that did not progress beyond 1979. Instead, the entire decade of the 1970s loops ad infinitum. Here in Scarfolk, pagan rituals blend seamlessly with science; hauntology is a compulsory subject at school, and everyone must be in bed by 8pm because they are perpetually running a slight fever. “Visit Scarfolk today. Our number one priority is keeping rabies at bay.” For more information please reread.
(tags: scarfolk 1970s england history funny humour public-information pagan morbid)
-
OpenBSD are going wild ripping out “arcane VMS hacks” in an attempt to render OpenSSL’s source code comprehensible, and finding amazing horrors like this: ‘Well, even if time() isn’t random, your RSA private key is probably pretty random. Do not feed RSA private key information to the random subsystem as entropy. It might be fed to a pluggable random subsystem…. What were they thinking?!’
(tags: random security openssl openbsd coding horror rsa private-keys entropy)
-
This is something Jenkins have come up to randomize and distribute load, in order to avoid the “thundering-herd” bug. Good call
(tags: jenkins randomization load-balancing load thundering-herd ops capacity sleep)
Shared Space and other bad junction designs lead to crashes and injuries
Just because something is “Dutch”, that doesn’t mean it’s good. The Netherlands has many excellent examples, but you have to be very selective about what serves as a model. Cyclists fare best where their interactions with motor vehicles are limited and controlled. They fare best where infrastructure ensures that minor mistakes do not result in injuries. Anywhere that we rely upon everyone behaving perfectly but where we do not protect the most vulnerable, there will be injuries. Good design takes human nature into account and removes the causes of danger from those who are most vulnerable.
via Tony Finch(tags: cycling design junctions shared-space dutch holland roads safety crashes)
-
A sane Google Protocol Buffers library for Ruby. It’s all about being Buf; ProtoBuf.
(tags: protobuf google protocol-buffers ruby coding libraries gems open-source)
-
When I said that we expected better of OpenSSL, it’s not merely that there’s some sense that security-driven code should be of higher quality. (OpenSSL is legendary for being considered a mess, internally.) It’s that the number of systems that depend on it, and then expose that dependency to the outside world, are considerable. This is security’s largest contributed dependency, but it’s not necessarily the software ecosystem’s largest dependency. Many, maybe even more systems depend on web servers like Apache, nginx, and IIS. We fear vulnerabilities significantly more in libz than libbz2 than libxz, because more servers will decompress untrusted gzip over bzip2 over xz. Vulnerabilities are not always in obvious places – people underestimate just how exposed things like libxml and libcurl and libjpeg are. And as HD Moore showed me some time ago, the embedded space is its own universe of pain, with 90’s bugs covering entire countries. If we accept that a software dependency becomes Critical Infrastructure at some level of economic dependency, the game becomes identifying those dependencies, and delivering direct technical and even financial support. What are the one million most important lines of code that are reachable by attackers, and least covered by defenders? (The browsers, for example, are very reachable by attackers but actually defended pretty zealously – FFMPEG public is not FFMPEG in Chrome.) Note that not all code, even in the same project, is equally exposed. It’s tempting to say it’s a needle in a haystack. But I promise you this: Anybody patches Linux/net/ipv4/tcp_input.c (which handles inbound network for Linux), a hundred alerts are fired and many of them are not to individuals anyone would call friendly. One guy, one night, patched OpenSSL. Not enough defenders noticed, and it took Neel Mehta to do something.
(tags: development openssl heartbleed ssl security dan-kaminsky infrastructure libraries open-source dependencies)
-
‘a command line tool for Amazon’s Simple Storage Service (S3). Written in Python, easy_install the package to install as an egg. Supports multithreaded operations for large volumes. Put, get, or delete many items concurrently, using a fixed-size pool of threads. Built on workerpool for multithreading and boto for access to the Amazon S3 API. Unix-friendly input and output. Pipe things in, out, and all around.’ MIT-licensed open source. (via Paul Dolan)
(tags: via:pdolan s3 s3funnel tools ops aws python mit open-source)
-
The intuition behind Hydra is something like this, “I have a lot of data, and there are a lot of things I could try to learn about it — so many that I’m not even sure what I want to know.” It’s about the curse of dimensionality — more dimensions means exponentially more cost for exhaustive analysis. Hydra tries to make it easy to reduce the number of dimensions, or the cost of watching them (via probabilistic data structures), to just the right point where everything runs quickly but can still answer almost any question you think you might care about.
Code: https://github.com/addthis/hydra Getting Started blog post: https://www.addthis.com/blog/2014/02/18/getting-started-with-hydra/(tags: hyrda hadoop data-processing big-data trees clusters analysis)
Stalled SCP and Hanging TCP Connections
a Cisco fail.
It looks like there’s a firewall in the middle that’s doing additional TCP sequence randomisation which was a good thing, but has been fixed in all current operating systems. Unfortunately, it seems that firewall doesn’t understand TCP SACK, which when coupled with a small amount of packet loss and a stateful host firewall that blocks invalid packets results in TCP connections that stall randomly. A little digging revealed that firewall to be the Cisco Firewall Services Module on our Canterbury network border.
(via Tony Finch)(tags: via:fanf cisco networking firewalls scp tcp hangs sack tcpdump)
Akamai’s “Secure Heap” patch wasn’t good enough
‘Having the private keys inaccessible is a good defense in depth move. For this patch to work you have to make sure all sensitive values are stored in the secure area, not just check that the area looks inaccessible. You can’t do that by keeping the private key in the same process. A review by a security engineer would have prevented a false sense of security. A version where the private key and the calculations are in a separate process would be more secure. If you decide to write that version, I’ll gladly see if I can break that too.’ Akamai’s response: https://blogs.akamai.com/2014/04/heartbleed-update-v3.html — to their credit, they recognise that they need to take further action. (via Tony Finch)
(tags: via:fanf cryptography openssl heartbleed akamai security ssl tls)
-
Colm MacCarthaigh writes about a simple sharding/load-balancing algorithm which uses randomized instance selection and optional additional compartmentalization. See also: continuous hashing, and http://aphyr.com/posts/278-timelike-2-everything-fails-all-the-time
(tags: hashing load-balancing sharding partitions dist-sys distcomp architecture coding)
Open Crypto Audit Project: TrueCrypt
phase I, a source code audit by iSEC Partners, is now complete. Bruce Schneier says: “I’m still using it”.
(tags: encryption security crypto truecrypt audits source-code isec matthew-green)
-
In the PNAS paper, Brad Bushman and colleagues looked at 107 couples over 21 days and found that people experiencing uncharacteristically low blood sugar were more likely to display anger toward their spouse. (The researchers measured this by having subjects stick needles into voodoo dolls representing their significant others.)
(tags: hangry hunger food eating science health blood-sugar voodoo-dolls glucose)
insane ESB health and safety policy
Where it is not possible to avoid reversing, it is ESB policy that staff driving on behalf of the company or anybody on company premises should reverse into car spaces/bays, allowing them to drive out subsequently.
BUT WHYYYYYYYYYY(tags: esb health-n-safety policies crazy funny driving reversing lol safety)
Cloudflare demonstrate Heartbleed key extraction
from nginx. ‘Based on the findings, we recommend everyone reissue + revoke their private keys.’
(tags: security nginx heartbleed ssl tls exploits private-keys)
When two-factor authentication is not enough
Fastmail.FM nearly had their domain stolen through an attack exploiting missing 2FA authentication in Gandi.
An important lesson learned is that just because a provider has a checkbox labelled “2 factor authentication” in their feature list, the two factors may not be protecting everything – and they may not even realise that fact themselves. Security risks always come on the unexpected paths – the “off label” uses that you didn’t think about, and the subtle interaction of multiple features which are useful and correct in isolation.
(tags: gandi 2fa fastmail authentication security mfa two-factor-authentication mail)
Of Money, Responsibility, and Pride
Steve Marquess of the OpenSSL Foundation on their funding, and lack thereof:
I stand in awe of their talent and dedication, that of Stephen Henson in particular. It takes nerves of steel to work for many years on hundreds of thousands of lines of very complex code, with every line of code you touch visible to the world, knowing that code is used by banks, firewalls, weapons systems, web sites, smart phones, industry, government, everywhere. Knowing that you’ll be ignored and unappreciated until something goes wrong. The combination of the personality to handle that kind of pressure with the relevant technical skills and experience to effectively work on such software is a rare commodity, and those who have it are likely to already be a valued, well-rewarded, and jealously guarded resource of some company or worthy cause. For those reasons OpenSSL will always be undermanned, but the present situation can and should be improved. There should be at least a half dozen full time OpenSSL team members, not just one, able to concentrate on the care and feeding of OpenSSL without having to hustle commercial work. If you’re a corporate or government decision maker in a position to do something about it, give it some thought. Please. I’m getting old and weary and I’d like to retire someday.
(tags: funding open-source openssl heartbleed internet security money)
-
a system for building agents that perform automated tasks for you online. They can read the web, watch for events, and take actions on your behalf. Huginn’s Agents create and consume events, propagating them along a directed event flow graph. Think of it as Yahoo! Pipes plus IFTTT on your own server. You always know who has your data. You do.
MIT-licensed open source, built on Rails.(tags: ifttt automation huginn ruby rails open-source agents)
Why no SSL ? — Varnish version 4.0.0 documentation
Poul-Henning Kemp details why Varnish doesn’t do SSL — basically due to the quality and complexity of open-source SSL implementations:
There is no other way we can guarantee that secret krypto-bits do not leak anywhere they should not, than by fencing in the code that deals with them in a child process, so the bulk of varnish never gets anywhere near the certificates, not even during a core-dump.
Now looking pretty smart, post-Heartbleed.(tags: ssl tls varnish open-source poul-henning-kemp https http proxies security coding)
Basho LevelDB supports tiered storage
Tiered storage is turning out to be a pretty practical trick to take advantage of SSDs:
The justification for two types/speeds of storage arrays is simple. leveldb is extremely write intensive in its lower levels. The write intensity drops off as the level number increases. Similarly, current and frequently updated data tends to be in lower levels while archival data tends to be in higher levels. These leveldb characteristics create a desire to have faster, more expensive storage arrays for the high intensity lower levels. This branch allows the high intensity lower levels to be on expensive storage arrays while slower, less expensive storage arrays to hold the higher level data to reduce costs.
(tags: caching tiered-storage storage ssds ebs leveldb basho patches riak iops)
Forbes on the skeleton crew nature of OpenSSL
This is a great point:
Obviously, those tending to the security protocols that support the rest of the Web need better infrastructure and more funding. “Large portions of the software infrastructure of the Internet are built and maintained by volunteers, who get little reward when their code works well but are blamed, and sometimes savagely derided, when it fails,” writes Foster in the New Yorker. […] “money and support still tend to flow to the newest and sexiest projects, while boring but essential elements like OpenSSL limp along as volunteer efforts,” he writes. “It’s easy to take open-source software for granted, and to forget that the Internet we use every day depends in part on the freely donated work of thousands of programmers.” We need to find ways to pay for work that is currently essentially donated freely. One promising project is Bithub, from Whisper Systems, where people who make valuable contributions to open source projects are rewarded (with Bitcoin of course). But the pool of Bitcoin is still donation based. The Internet has helped create a culture of free, but what we may need to recognize is that we get what we pay for. Well-funded companies pulling critical code from open source projects for their sites should have formal fee arrangements, rather than the volunteer group simply hoping these users will pony up some Benjamins for “prominent logo placement” on a website most people had never heard of before Heartbleed.
(tags: open-source openssl free sponsorship forbes via:karl-whelan)
The Heartbleed Hit List: The Passwords You Need to Change Right Now
Good list
-
An excellent list of aspects of the Heartbleed OpenSSL bug which need to be thought about/talked about/considered
(tags: heartbleed openssl bugs exploits security ssl tls web https)
Does the heartbleed vulnerability affect clients as severely?
‘Yes, clients are vulnerable to attack. A malicious server can use the Heartbleed vulnerability to compromise an affected client.’ Ouch.
R3: Announcing the next generation of Amazon EC2 Memory-optimized instances
pricing announced, and available in most regions
Scalable Atomic Visibility with RAMP Transactions
Great new distcomp protocol work from Peter Bailis et al:
We’ve developed three new algorithms—called Read Atomic Multi-Partition (RAMP) Transactions—for ensuring atomic visibility in partitioned (sharded) databases: either all of a transaction’s updates are observed, or none are. […] How they work: RAMP transactions allow readers and writers to proceed concurrently. Operations race, but readers autonomously detect the races and repair any non-atomic reads. The write protocol ensures readers never stall waiting for writes to arrive. Why they scale: Clients can’t cause other clients to stall (via synchronization independence) and clients only have to contact the servers responsible for items in their transactions (via partition independence). As a consequence, there’s no mutual exclusion or synchronous coordination across servers. The end result: RAMP transactions outperform existing approaches across a variety of workloads, and, for a workload of 95% reads, RAMP transactions scale to over 7 million ops/second on 100 servers at less than 5% overhead.
(tags: scale synchronization databases distcomp distributed ramp transactions scalability peter-bailis protocols sharding concurrency atomic partitions)
-
wow, WFMU’s “Beware of the Blog” did a really good job of assembling these classic 1960s Cambodian psych mp3s, featuring Sinn Sisamouth and Ros Sereysothea among others. I still love the start of Ma Pi Naok….
(tags: mp3 download music cambodia psychedelia wfmu 1960s sinn-sisamouth ros-sereysothea)
MICA: A Holistic Approach To Fast In-Memory Key-Value Storage [paper]
Very interesting new approach to building a scalable in-memory K/V store. As Rajiv Kurian notes on the mechanical-sympathy list: ‘The basic idea is that each core is responsible for a portion of the key-space and requests are forwarded to the right core, avoiding multiple-writer scenarios. This is opposed to designs like memcache which uses locks and shared memory. Some of the things I found interesting: The single writer design is taken to an extreme. Clients assist the partitioning of requests, by calculating hashes before submitting GET requests. It uses Intel DPDK instead of sockets to forward packets to the right core, without processing the packet on any core. Each core is paired with a dedicated RX/TX queue. The design for a lossy cache is simple but interesting. It does things like replacing a hash slot (instead of chaining) etc. to take advantage of the lossy nature of caches. There is a lossless design too. A bunch of tricks to optimize for memory performance. This includes pre-allocation, design of the hash indexes, prefetching tricks etc. There are some other concurrency tricks that were interesting. Handling dangling pointers was one of them.’ Source code here: https://github.com/efficient/mica
(tags: mica in-memory memory ram key-value-stores storage smp dpdk multicore memcached concurrency)
Google’s Open Bidder stack moving from Jetty to Netty
Open Bidder traditionally used Jetty as an embedded webserver, for the critical tasks of accepting connections, processing HTTP requests, managing service threads, etc. Jetty is a robust, but traditional stack that carries the weight and tradeoffs of Servlet’s 15 years old design. For a maximum performance RTB agent that must combine very large request concurrency with very low latencies, and often benefit also from low-level control over the transport, memory management and other issue, a different webserver stack was required. Open Bidder now supports Netty, an asynchronous, event-driven, high-performance webserver stack. For existing code, the most important impact is that Netty is not compatible with the Servlet API. Its own internal APIs are often too low-level, not to mention proprietary to Netty; so Open Bidder v0.5 introduces some new, stack-neutral APIs for things like HTTP requests and responses, cookies, request handlers, and even simple HTML templating based on Mustache. These APIs will work with both Netty and Jetty. This means you don’t need to change any code to switch between Jetty and Netty; on the other hand, it also means that existing code written for Open Bidder 0.4 may need some changes even if you plan to keep using Jetty. [….] Netty’s superior efficiency is very significant; it supports 50% more traffic in the same hardware, and it maintains a perfect latency distribution even at the peak of its supported load.
This doc is noteworthy on a couple of grounds: 1. the use of Netty in a public API/library, and the additional layer in place to add a friendlier API on top of that. I hope they might consider releasing that part as OSS at some point. 2. I also find it interesting that their API uses protobufs to marshal the message, and they plan in a future release to serialize those to JSON documents — that makes a lot of sense.(tags: apis google protobufs json documents interoperability netty jetty servlets performance java)
The University Times: TCD Provost Under Pressure To “Re-think” Identity Initiative
Students, staff and alumni put pressure on Provost to reconsider changes to Trinity College Dublin’s name and coat of arms.
alumni scholars from 2004 and 1994 who had been invited back for the dinner shouted ‘Dublin’ after the Provost welcomed them back to “Trinity College”.
Daring Fireball: Rethinking What We Mean by ‘Mobile Web’
We shouldn’t think of “the web” as only what renders in web browsers. We should think of the web as anything transmitted using HTTP and HTTPS. Apps and websites are peers, not competitors. They’re all just clients to the same services.
+1. Finally, a Daring Fireball post I agree with! ;)(tags: daring-fireball apps web http https mobile apple android browsers)
The little ssh that (sometimes) couldn’t – Mina Naguib
A good demonstration of what it looks like when network-level packet corruption occurs on a TCP connection
(tags: ssh sysadmin networking tcp bugs bit-flips cosmic-rays corruption packet)
DRI wins their case at the ECJ!
Great stuff!
The Court has found that data retention “entails a wide-ranging and particularly serious interference with the fundamental rights to respect for private life and to the protection of personal data” and that it “entails an interference with the fundamental rights of practically the entire European population”. TJ McIntyre, Chairman of Digital Rights Ireland, said that “This is the first assessment of mass surveillance by a supreme court since the Snowden revelations. The ECJ’s judgement finds that untargeted monitoring of the entire population is unacceptable in a democratic society.” […] Though the Directive has now been struck down, the issue will remain live in all the countries who have passed domestic law to implement the data retention mass surveillance regime. Digital Rights Ireland’s challenge to the Irish data retention system will return to the High Court in Dublin for the next phase of litigation.
(tags: dri digital-rights ireland eu ecj surveillance snooping law data-retention)
-
a cron job monitoring tool that keeps an eye on your periodic processes and notifies you when something doesn’t happen. Daily backups, monthly emails, or cron jobs you need to monitor? Dead Man’s Snitch has you covered. Know immediately when one of these processes doesn’t work.
via Marc. VERY high resolution scans of original Apollo 11 and Apollo 14 charts
the Apollo 11 ALO and LM Descent Monitoring charts are tidied up and downloadable
(tags: apollo space history memorabilia images scans science nasa)
Garbage Collection Optimization for High-Throughput and Low-Latency Java Applications
LinkedIn talk about the GC opts they used to optimize the Feed. good detail
(tags: performance optimization linkedin java jvm gc tuning)
Great comment from the “banking uses eventual consistency” thread…
‘In the grand scheme of things, insurance trumps consistency.’ Love it.
(tags: banking banks insurance eventual-consistency databases consistency transactions nosql)
S3 as a single-web-page application engine
neat hack. Pity it returns a 403 error code due to the misuse of the ErrorDocument feature though
(tags: s3 javascript single-page web html markdown hacks)
-
Tracking Irish News Stories Over Time; Irish NewsDiffs archives changes in articles after publication. Currently, we track rte.ie and irishtimes.com.
(tags: rte irish-times diffing diffs changes tracking newspapers news ireland history)
Here’s Why You’re Not Hiring the Best and the Brightest
Jeff Atwood’s persuasive argument that remote working needs to be the norm in tech work:
There’s an elephant in the room in the form of an implied clause: Always hire the best people… who are willing to live in San Francisco. Substitute Mountain View, New York, Boston, Chicago, or any other city. The problem is the same. We pay lip service to the idea of hiring the best people in the world — but in reality, we’re only hiring the best people who happen to be close by.
(tags: recruiting remote hiring business coding work remote-work telecommuting jobs silicon-valley jeff-atwood)
The First Few Milliseconds of an HTTPS Connection
in excruciating detail
(tags: https tls ssl security http protocols packets networking)
-
For EVERY youtube video, I always open the video and then immediately punch the slider bar to about 30 percent. For example, in this video, it should have just started at :40. Everything before :40 was a waste. This holds true for nearly every video in the universe.
Via Joe Drumgoole — it’s true!(tags: via:joedrumgoole videos youtube skip wadsworth-constant fast-forward funny)
-
Advice from a developer who helped rebuild Walmart.ca with Scala and Play
This is really good advice.(tags: walmart scala java languages coding relearning play akka)
-
open source, system-level exploration: capture system state and activity from a running Linux instance, then save, filter and analyze. Think of it as strace + tcpdump + lsof + awesome sauce. With a little Lua cherry on top.
This sounds excellent. Linux-based, GPLv2.(tags: debugging tools linux ops tracing strace open-source sysdig cli tcpdump lsof)
Manhattan, our real-time, multi-tenant distributed database for Twitter scale | Twitter Blogs
Impressive, but a fierce whiff of “NIH” off of this
(tags: manhattan consistency database twitter eventual-consistency nosql voldemort cassandra riak time-series)
European Parliament passes strong net neutrality law, along with major roaming reforms
European fans of the open internet can breathe a sigh of relief: the European parliament has passed a major package of telecoms law reform, complete with amendments that properly define and protect net neutrality. The amendments were introduced by the Socialist, Liberal, Green and Left blocs in the European Parliament after the final committee to tweak the package – the industry committee – left in a bunch of loopholes that would have allowed telcos to start classifying web services of their choice as “specialized services” that they can treat differently. […] Now the whole package gets passed through to the next Parliament (elections are coming up in May), then the representatives of European countries for final approval.
(tags: netneutrality eu ep europe neelie-kroes freedom isps telecom)
-
Finally got around to migrating this old CPAN module to github
(tags: cpan github ipc-dirqueue perl open-source hacks git svn)
-
an easily embeddable, decentralized, k-ordered unique ID generator. It can use the same encoded ID format as Twitter’s Snowflake or Boundary’s Flake implementations as well as any other customized encoding without too much effort. The fauxflake-core module has no external dependencies and is meant to be about as light as possible while still delivering useful functionality. Essentially, if you want to be able to generate a unique identifier across your infrastructure with reasonable assurances about collisions, then you might find this useful.
From the same guy as the excellent Guava Retrier library; java, ASL2-licensed open source.(tags: open-source java asl2 fauxflake tools libraries unique-ids ids unique snowflake distsys)
-
Another cool library from Roy Holder: ‘an Apache 2.0 licensed general-purpose retrying library, written in Python, to simplify the task of adding retry behavior to just about anything.’ Similar to his Guava-Retrier java lib, but using a decorator.
(tags: retrying python libraries tools backoff retry error-handling)
Redis adds support for HyperLogLog
good comment thread on HN, discussing hlld and bloomd as well
(tags: hll bloom-filters hyperloglog redis data-structures estimation cardinality probabilistic probability hashing random)
LastPass Sentry Warns You When Your Online Accounts Have Been Breached
This is a brilliant feature. It just sent a warning to a friend about an old account he was no longer using
7 Hidden Dublin Secrets You Probably Never Knew About
from Pól Ó Conghaile’s “Secret Dublin”. great stuff
(tags: dublin pol-o-conghaile history secrets ireland pranks)
-
must give this a try. performance will be the issue I suspect
(tags: metrics java annotations jersey hacking coding jetty)
How Gmail Happened: The Inside Story of Its Launch 10 Years Ago Today
the inside story of the great work done by Paul Buchheit, Kevin Fox, and Sanjeev Singh to reinvent email in 2004
(tags: history gmail email smtp mua paul-buchheit kevin-fox launches google web)
-
this HN thread on the age-old UDP vs TCP question is way better than the original post — lots of salient comments
(tags: udp tcp games protocols networking latency internet gaming hackernews)
-
‘a.k.a. Faster == Better’. Slides from a talk given at Facebook on 19th March 2014 by Norman Maurer
(tags: netty java performance optimization facebook slides presentations)
Daylight saving time linked to heart attacks, study finds
Switching over to daylight saving time, and losing one hour of sleep, raised the risk of having a heart attack the following Monday by 25 per cent, compared to other Mondays during the year, according to a new US study released today. […] The study found that heart attack risk fell 21 per cent later in the year, on the Tuesday after the clock was returned to standard time, and people got an extra hour’s sleep.
One clear answer: we need 25-hour days. More details: http://www.sciencedaily.com/releases/2014/03/140329175108.htm —Researchers used Michigan’s BMC2 database, which collects data from all non-federal hospitals across the state, to identify admissions for heart attacks requiring percutaneous coronary intervention from Jan. 1, 2010 through Sept. 15, 2013. A total of 42,060 hospital admissions occurring over 1,354 days were included in the analysis. Total daily admissions were adjusted for seasonal and weekday variation, as the rate of heart attacks peaks in the winter and is lowest in the summer and is also greater on Mondays and lower over the weekend. The hospitals included in this study admit an average of 32 patients having a heart attack on any given Monday. But on the Monday immediately after springing ahead there were on average an additional eight heart attacks. There was no difference in the total weekly number of percutaneous coronary interventions performed for either the fall or spring time changes compared to the weeks before and after the time change.
(tags: daylight dst daylight-savings time dates calendar science health heart-attacks michigan hospitals statistics)
Steve Jobs on the disease of believing that 90% of the work is having a great idea
Good quote
(tags: steve-jobs quotes entrepreneurs startups making products building ideas concepts apple history)
DNS results now being manipulated in Turkey
Deep-packet inspection and rewriting on DNS packets for Google and OpenDNS servers. VPNs and DNSSEC up next!
(tags: turkey twitter dpi dns opendns google networking filtering surveillance proxying packets udp)
Phusion Passenger now supports the new Ruby 2.1 Out-Of-Band GC
a reasonable workaround for Ruby’s GC problems in web apps
(tags: ruby gc ops performance phusion passenger rails unicorn out-of-band web-services)
Duplicity + S3: easy, cheap, encrypted, automated full-disk backups for your servers
actually sounds quite nice
(tags: backups s3 aws servers duplicity ops duply unix linux)
-
This is a couple of years old, but I like this:
Turbo Boyer-Moore is disappointing, its name doesn’t do it justice. In academia constant overhead doesn’t matter, but here we see that it matters a lot in practice. Turbo Boyer-Moore’s inner loop is so complex that we think we’re better off using the original Boyer-Moore.
A good demo of how large values of O(n) can be slower than small values of O(mn).(tags: algorithms search strings coding big-o string-search searching)
-
in a field as critical and competitive as smartphones, Google’s R&D strategy was being dictated, not by the company’s board, or by its shareholders, but by a desire not to anger the CEO of a rival company.
This is utterly bananas and anti-competitive. (via Des Traynor)(tags: via:destraynor wage-fixing apple google tech paris r-and-d steve-jobs jean-marie-hullot france competition poaching assholes)
[#1259] Add optimized queue for SCMP pattern and use it in NIO and nativ… · 6efac61 · netty/netty
Interesting — Netty has imported an optimized ASL2-licensed MPSC queue implementation from Akka (presumably for performance raisins)
(tags: performance optimization open-source mpsc queues data-structures netty akka java)
Ruby Garbage Collection: Still Not Ready for Production
disastrous GC bugs in Ruby, requiring horrible kludgy workarounds
-
[via Boing Boing:] A new, exhaustive report from Human Rights Watch details the way the young state of modern Ethiopia has become a kind of pilot program for the abuse of “off-the-shelf” surveillance, availing itself of commercial products from the US, the UK, France, Italy and China in order to establish an abusive surveillance regime that violates human rights and suppresses legitimate political opposition under the guise of a anti-terrorism law that’s so broadly interpreted as to be meaningless. The 137 page report [from Human Rights Watch] details the technologies the Ethiopian government has acquired from several countries and uses to facilitate surveillance of perceived political opponents inside the country and among the diaspora. The government’s surveillance practices violate the rights to freedom of expression, association, and access to information. The government’s monopoly over all mobile and Internet services through its sole, state-owned telecom operator, Ethio Telecom, facilitates abuse of surveillance powers.
(tags: human-rights surveillance ethiopia spying off-the-shelf spyware big-brother hrw human-rights-watch)
Chinese cops cuff 1,500 in fake base station spam raid
The street finds its own uses for things, in this case Stinger/IMSI-catcher-type fake mobile-phone base stations:
Fake base stations are becoming a particularly popular modus operandi. Often concealed in a van or car, they are driven through city streets to spread their messages. The professional spammer in question charged 1,000 yuan (£100) to spam thousands of users in a radius of a few hundred metres. The pseudo-base station used could send out around 6,000 messages in just half an hour, the report said. Often such spammers are hired by local businessmen to promote their wares.
(via Bernard Tyers)(tags: stingers imsi-catcher mobile-phones mobile cellphones china spam via:bernard-tyers)
-
The most grave issue is that each recording likely amounted to a serious criminal offence. Under Irish law, the recording of a telephone conversation on a public network without the consent of at least one party to the call amounts to an “interception”, a criminal offence carrying a possible term of imprisonment of up to five years. […] Consequently, unless gardai were notified that their calls might be recorded then a large number of criminal offences are likely to have been committed by and within the Garda Siochana itself.
(tags: gubu surveillance gardai ags tjmcintyre bugging tapping phones ireland politics)
-
A cool-looking new debugging tool for C/C++ from Mozilla.
Many, many people have noticed that if we had a way to reliably record program execution and replay it later, with the ability to debug the replay, we could largely tame the nondeterminism problem. This would also allow us to deliberately introduce nondeterminism so tests can explore more of the possible execution space, without impacting debuggability. Many record and replay systems have been built in pursuit of this vision. (I built one myself.) For various reasons these systems have not seen wide adoption. So, a few years ago we at Mozilla started a project to create a new record-and-replay tool that would overcome the obstacles blocking adoption. We call this tool rr.
Low runtime overhead; easy deployability; targeted at 32-bit (?!) Linux; OSS. (via Bryan O’Sullivan)(tags: via:bos mozilla debugging coding firefox rr record replay gdb c++ linux)
-
AIB now have a dedicated customer-support forum on Boards.ie. That is a *great* idea
Microservices and nanoservices
A great reaction to Martin Fowler’s “microservices” coinage, from Arnon Rotem-Gal-Oz: ‘I guess it is easier to use a new name (Microservices) rather than say that this is what SOA actually meant’; ‘these are the very principles of SOA before vendors does pushed the [ESB] in the middle.’ Others have also chosen to define microservices slightly differently, as a service written in 10-100 LOC. Arnon’s reaction: “Nanoservice is an antipattern where a service is too fine-grained. A nanoservice is a service whose overhead (communications, maintenance, and so on) outweighs its utility.” Having dealt with maintaining an over-fine-grained SOA stack in Amazon, I can only agree with this definition; it’s easy to make things too fine-grained and create a raft of distributed-computing bugs and deployment/management complexity where there is no need to do so.
(tags: architecture antipatterns nanoservices microservices soa services design esb)
-
slightly ruined by the inclusion of some “deliberately Turing-complete” systems
(tags: turing computation software via:jwz turing-complete accidents automatons)