I've mothballed my blog.
All the posts are here; comments are disabled.
Taking a break from personal online things.
All the posts are here; comments are disabled.
Taking a break from personal online things.
The only major recommendation I made was that we should devise a system of tapping the telephone lines of the Irish Republic. Lines across the border were well covered, but vital Provisional IRA communications flowed back and forth from the west coast of the Republic to Dublin. I devised a scheme for intercepting the microwaves from the attic of the British Embassy in Dublin using a device no larger than a packing case, but although MI5 endorsed the plan, the Foreign Office vetoed it.
Many of the intercepts to and from foreign embassies in Washington were acquired as a result of secret agreements between the NSA and the major US telecommunications companies, such as Western Union. Under the NSA program codenamed Shamrock, the companies agreed to illegally hand over to NSA couriers, on a daily basis, copies of all the cables sent to, from and through the US.
One of GCHQ's largest ventures into the world of vacuuming up telephone calls was launched in Cornwall in 1967. At Goonhilly Downs on the Lizard peninsula there was a satellite receiving station for one of the world's first commercial communications satellites, Intelsat. Displaying a certain amount of barefaced cheek, GCHQ built a duplicate receiving station about sixty miles down the road, near the village of Morwenstow, on the site of a former RAF wartime airfield. Here it could scoop up the same telephone traffic by simply collecting the ‘spillage’ as commercial satellites beamed messages down to earth. This station, with its distinctive domes and satellite dishes littered along the Cornish clifftops, was initially called CSO Morwenstow, and later changed its name to GCHQ Bude. Morwenstow was a classic Anglo-American intelligence venture. NSA paid for most of the infrastructure and the technology, while GCI-IQ contributed the land and paid for the staff and running costs. The massive flow of intelligence it received was shared and processed jointly.If you read those five books you'd have a good sense of the work of these organizations.
var Timeout time.Duration Timeout = time.Duration(conf("timeout", 100)) * time.Millisecond cache := memcache.New(Servers...) cache.Timeout = Timeout * time.Millisecond commit 6769d6679019623a6749783ea285043d9449d009 Author: John Graham-Cumming Date: Mon Jul 1 13:04:05 2013 -0700 Sort the output of $(wildcard) as it is unsorted in GNU Make 3.82+ The Makefile was relying on the output of $(wildcard) to be sorted. This is important because the XXXXXXXXXXXX rules have files that are numbered and must be handled in order. The XXXXXXX relies on this order to build the rules in the correct order (and set the order attributes in the JSON files). This worked with GNU Make 3.81 In GNU Make 3.82 the code that globs has been changed to add the GLOB_NOSORT option and so the output of $(wildcard) is no longer ordered and the build would break. For example, make clean-out && make would fail because the XXXXXXXXXXXXXXXX (which is used for the XXXXX action) which appears in XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX would not have been parsed before the XXXXX action was used in some other XXXXX file. That would generate a fatal error. The solution is simple: wrap the $(wildcard) in $(sort). The actual change uses a $(foreach) loop because it's necessary to keep the directories in the order specified in the Makefile and the files within the directory are sorted by the $(sort $(wildcard ...)). The directory order is important because XXXXXXXXXXXX must be processed before the other rule directories because it contains XXXXXXXXXXXXXXXXXXXXXXXXXXX which sets the XXXXXXXXXX thresholds.The first line gives a brief summary of the commit. But the rest explains in detail why this change was made (a change in GNU Make 3.82 in this case), why the change in GNU Make 3.82 caused a problem, verification of what actually changed that caused the problem, how to reproduce the problem and finally a note about the specific implementation. The final note is there so that someone looking at the commit later can understand what I was thinking and assumptions that went into the change.
commit 86db749caf52b20c682b3230d2488dad08b7b7fe Author: John Graham-Cumming Date: Mon Jul 1 10:14:49 2013 -0700 Handle SIGABRT and force a panic It can be useful to crash XXXXXXX via a signal to get a stack trace of every running goroutine. To make this reliable have added handling of SIGABRT. If you do, kill -ABRT A panic is generated with message "panic: SIGABRT called" followed by a stack trace of every goroutine.
| MD5 | SHA1 | RC4 | |
|---|---|---|---|
| Native Go (pre-1.1) | 404 MB/s | 123 MB/s | 111 MB/s |
| Via OpenSSL | 607 MB/s | 636 MB/s | 744 MB/s |
| Go 1.1 | 602 MB/s | 383 MB/s | 662 MB/s |
| Go 1.1 vs. OpenSSL | 0.99x | 0.6x | 0.89x |
Our intent was not to criticise; indeed we have admiration for scientists who have to cope with the difficult problems we describe. One thesis of the article is that errors occur within many systems and does not arise from incompetence or lack of care. Developing a computer system is a complex process and problems will, almost invariably, occur. By providing the ability for code to be easily perused improvement will happen. This is the result detailed in both the boxes in the article: the Met Office data is more accurate, admittedly by a small amount, and because of feedback to developers the geophysical software was considerably improved.Recently, an important paper in economics has been in the news because its conclusions turn out to be inaccurate for a number of reasons. One of those reasons is a programming error using the popular Microsoft Excel program. This error, in an unreleased spreadsheet, highlights just how easy it is to make a mistake in a 'simple' program and how closed programs make reproducing results difficult.
[...] the relationship between government debt and real GDP growth is weak for debt/GDP ratios below a threshold of 90 percent of GDP. Above 90 percent, median growth rates fall by one percent, and average growth falls considerably more.They point to a serious problem with growth rates once the debt/GDP ratio is above 90%. As this is an important economic topic at the moment other economists have attempted to replicated their findings from the original data. One such reproduction is Does High Public Debt Consistently Stifle Economic Growth? A Critique of Reinhart and Rogoff which finds:
Herndon, Ash and Pollin replicate Reinhart and Rogoff and find that coding errors, selective exclusion of available data, and unconventional weighting of summary statistics lead to serious errors that inaccurately represent the relationship between public debt and GDP growth among 20 advanced economies in the post-war period. They find that when properly calculated, the average real GDP growth rate for countries carrying a public-debt-to-GDP ratio of over 90 percent is actually 2.2 percent, not -0:1 percent as published in Reinhart and Rogo ff. That is, contrary to RR, average GDP growth at public debt/GDP ratios over 90 percent is not dramatically different than when debt/GDP ratios are lower.The coding error referred to there is a mistake in an Excel spreadsheet that excluded data for certain countries. And the original authors have admitted that that this reproduction is correct:
On the first point, we reiterate that Herndon, Ash and Pollin accurately point out the coding error that omits several countries from the averages in figure 2. Full stop. HAP are on point. The authors show our accidental omission has a fairly marginal effect on the 0-90% buckets in figure 2. However, it leads to a notable change in the average growth rate for the over 90% debt group.All this brought to mind my own discovery of errors in code (first error, second error) written by the Met Office. Code that was not released publicly.