HNHacker News
TopNewBestAskShowJobs

bograt

97 karma · joined November 4, 2015

submissionscomments
bograt··on Show HN: Base24 binary-to-text encoding for humans
In a similar vein, this is an encoding I designed specifically for 256 bit keys; my design includes checksumming and some consideration to consistent verbalization:

https://github.com/tomgibara/keycode

bograt··on A new way to make quadratic equations easy
I have been using a technique that's almost identical to this for years, based simply on observing that the roots are symmetric around the min/maximum: differentiate, set to zero, then difference of squares.

This cannot be an unrecorded technique can it?

bograt··on Piano Genie: An Intelligent Musical Interface
This doesn't invalidate the point you're making, but saying that it's 'basically impossible to play a wrong note on a diatonic harmonica' is simply false, as anyone hearing me play one will attest to.
bograt··on What happens if you mistakenly apply for British citizenship?
> I don’t think the government did anything wrong.

I think that rather depends on whether you regard the role of government here to assist its (future) citizens, or censure them (narrowly avoiding arrest and detention in this case) for what appear to be minor violations of immigration law.

bograt··on Magic Leap One Creator's Edition First Look
> For AR though we need multiple apps to share the same 3D space all running at the same time

This is something that I've given some practical thought to. The approach that I considered was to treat each application process as a client to a '3D space' service through which it could add and modify defined geometry.

Failure/slowness of any given application would leave the existing application geometry in-situ within the 3D environment and avoid the most jarring extremes of user experience. I imagined that the service interface itself would mandate the availability of simplified geometries together with meta information. This would allow the service to appropriately degrade the 3D rendered environment to maintain high framerates.

I think this approach could be effective and would not require a new OS.

bograt··on Italy Wikipedia shuts down in protest at proposed EU copyright law
> Perhaps, but if anything the UK's own government and press were major offenders in this regard.

It's quite possible that this behaviour by the UK political classes is what hastened to movement towards Brexit. I personally think that many people in the UK were aware of the behaviour, by both major parties, of using the EU to impose laws for which they lacked democratic support technocratically. Since there was no electable party that stood in contrast to this, the electorate took its opportunity by evicting the EU instead. Seen in this light, Brexit is as much a reflection of a failure of national politics, as it is of continental politics.

The mantra 'taking back control' of many Brexit supporters is perhaps better seen as citizens wanting to stop their government from acting in ways they don't vote for, than as the government taking back control from the EU.

The dissembling (as I see it) of politicians from across the EU on this law (and others before it) indicates that this is not a problem that is restricted to the UK.

bograt··on A newcomer’s (angry) guide to R
I'm not sure I understand this, and I'm genuinely interested in why it would be.

I find zero indexing logical: zero is the first natural number and is thus a fine candidate for being the first ordinal.

In my experience most mathematical series lose nothing in terms of elegance or readability by being indexed from zero instead of using more traditional indexing from one.

bograt··on What is code
I have to concede that I still talk in this now outmoded manner. I have to make a conscious effort to switch to modern gender neutral language (eg. they) when speaking or writing to anyone outside my family and friends.

> English language changed to expunge the ambiguity.

I think it's more accurate to say it adopted different ambiguities. The use of 'they' can create ambiguities of number, and just switching between he/she leaves the same ambiguity (is the gendering intentional or not?) albeit in a gender balanced way.

As a side-note, 'he' was used to refer to people, who could be regarded as interchangeable (man or woman) and 'she' was reserved for 'uniquely individual' things, which is why countries and ships (as two examples) are referred to as such. At least, this was may understanding when growing up and I've never lost this habit.

bograt··on Wikipedia: List of lists of lists
> The solution to this paradox was to use a set of axioms (most commonly the Zermelo-Fraenkel axioms) which do not allow the construction of such a contradictory set ...

Or one can adopt a non-well-founded set theory that admits such a set.

bograt··on Notice to stakeholders: withdrawal of the UK and EU rules on .eu domain names
That's a fair comment. I hadn't considered that perspective.

I'm aware of several TLDs that require evidence of residency/trade within the geographic region for the purpose of registration, but I don't think any of them require it in perpetuity for renewals; it's this that seems problematic to me. In principle, URLs are based on a degree of immutability: saying that a domain name must change when circumstances change seems at odds with the architectural fundamentals of the web, in which case I question the value of establishing a .eu domain at all.

bograt··on Notice to stakeholders: withdrawal of the UK and EU rules on .eu domain names
I don't think that is true.

From section 2 of the commission's notice:

... as of the withdrawal date ... the Registry for .eu will be entitled to revoke such domain name on its own initiative and without submitting the dispute to any extrajudicial settlement of conflicts ...

bograt··on Notice to stakeholders: withdrawal of the UK and EU rules on .eu domain names
Those who want the UK to remain in the EU will see this as just one damaging consequence of the UK's decision to leave. Conversely, Brexiteers will see this as an example of maladministration by an EU bureaucracy, and another demonstration of why the UK needs to exit. Sadly, there will be no consensus.

Putting aside the politics, this seems like a very poor decision. Historically, I believe most registering authorities have made great efforts to grandfather-in prior domains, for practical reasons apparent to most visitors of this site.

Additionally, shoddy treatment of 10% of current registrees will do nothing to increase the perceived value of an .eu domain. I also note that it appears the EU commission didn't even discuss the policy with the company that manages the .eu domain:

https://eurid.eu/en/news/ec-releases-communication-concernin...

bograt··on Probabilistic Filters By Example
Having quickly read the paper, the deletion guarantees seem slightly weak.

An item's position in the table is derived from two things: a fingerprint (a constant-sized hash) and second hash (ranging over the table). Nothing prevents two or more items from colliding on both hashes and therefore being indistinguishable from each other.

If the number of items in such a collision exceeds twice the fixed bucket size then deletion may result in false negatives.

In most practical applications there will be no useful way to bound the number of collisions. The paper shows results with bucket sizes of 4 and 8, but I don't know what the real-world probabilities of breaching these limits would be.

bograt··on Probabilistic Filters By Example
I'm familiar with both cuckoo hashing and Bloom filters but had not until now seen a demonstration of cuckoo filters; they look very useful. But there is one stated fact that I'm finding hard to believe:

> Cuckoo filters improve on Bloom filters by supporting deletion

The page implies that this is achieved by removing the fingerprint from the hash table, but presumably one cannot guarantee that another key doesn't share the same fingerprint. This would result in a false negative for that key and violate an essential characteristic of the data structure.

Perhaps there's a nuance of the implementation I've missed.

bograt··on Paperclip optimizer
It took me hours to beat that game, I often had to leave it running while I got on with other tasks, but I enjoyed it greatly, though I didn't have the appetite to play through the next universe.

The way it leads you in with a simple "Make paperclip" button and, through consistently surprising twists, leads you to the task of exploring the entire universe (albeit in decision making form) is extremely well done.

I was particularly charmed when the musical lament began for the drones I'd lost in battle.

bograt··on Generating all permutations, combinations, and power set of a string (2012)
In Java there are libraries for this (as with most things): https://github.com/tomgibara/permute
bograt··on Megacities, not nations, are the world’s dominant, enduring social structures
> Most public transport revenue also comes from the capital

This is incorrect. 40% of 'Transport for London' (TfL) spending comes from fares, and approx. 27% from government [0]. That represents a real cash subsidy of £3.1B per year for londoners.

The disparity in infrastructure spending per resident is even more stark [1]. London receives more than half of all such spending in England despite containing less than a sixth of its population.

[0] https://tfl.gov.uk/corporate/about-tfl/how-we-work/how-we-ar... [1] http://www.theguardian.com/news/datablog/2014/aug/07/london-...

bograt··on The Wrong Abstraction
My own observation is that programmers have a marked tendency to assume that because two methods have similar or identical behaviour, that this implies they should share an implementation. In large code bases, its common to find methods that have identical implementations 'by chance'. By which I mean that the commonality is a side effect of requirements that could readily change.

In my opinion, the best defence against this is good documentation: if a two methods have clearly documented behaviours, then even if their implementations have been fused, a subsequent programmer will have more context (and more confidence) reduplicating the code in response to further changes.

bograt··on The Wrong Abstraction
I broadly agree with this, but draw a slightly different conclusion: that the imperative when growing a large code base is proper tooling/planning for dependency management. If good dependency management is cheap, programmers will use it, and even if some dependencies are volatile, side-effects can be bounded by the dependency graph.
bograt··on What Could Have Entered the Public Domain on January 1, 2016?
The problem with this analysis is that, if such a course of "ever-extending copyright protections" were pursued, it would run the 'well of creativity' dry.

The 'creative commons' is a recognition that cultural works are not created ex nihilo but by building on the works of previous generations; as creators benefit, so must they contribute.

bograt··on Why ContentEditable is Terrible (2014)
I don't accepts axiom 1 as valid.

  1. The mapping between DOM content and Visible content should be well-behaved.
I don't see why the same edit, applied to two documents with visually identical renderings, should again produce two identical renders.

As a simple example, take document (a) consisting of the words 'an axiom' styled white on a white background, and document (b) an empty document with default styling of black text on a white background. Both would appear blank.

Now apply an edit, say inserting the text 'a fallacy' into both documents. After the edit, document (a) can be expected to remain blank while document (b) can be expected to show 'a fallacy'.

bograt··on A decade into a project to digitize U.S. immigration forms, just one is online
I have experience of developing large software systems for both government and corporations, in the UK.

Large IT systems fail in many ways, small and large and I don't think it's possible to isolate a single root cause but I do have one observation which I think is often overlooked.

When a company like Amazon or Google release a new service or a new product, they generally have the luxury of choosing which customer requirements they want to meet. The more customers they satisfy, the more customers they can hope to win.

This freedom means that these companies can follow the common trajectory of releasing a simple realization of their product which is then honed by iteration. But companies contracted to produce government and corporate systems rarely have this freedom in my experience, but for different reasons.

In the case of government systems it is politically (and often morally) unacceptable to exclude specific classes of end users from a system; the requirement to make a system available to nearly 100% of possible users while at the same time catering for the labyrinthine complexities of local and national government is simply very difficult.

In corporate environments, there is a similar pressure to meet 100% of customer needs, but in this case the users are often staff and though the problem is similar at a technical level, the source of the pressure is different:

Google is a large corporation, and when it releases a product like Gmail, users can choose to use it, or not: they can't singly demand changes, so Google has the power to stand up to users and, in short, be a good custodian of the user experience.

When developing software for corporate customers, this relationship is inverted, and very often, every wrinkle in every corporate business process is expected to be modelled in the software. As a contractor, you know you could produce better software for the corporation, if they were willing to adapt some of their processes in the same way customer adapt their behaviour to using Gmail, but they have the power.

The result is the same in both cases: excess complexity.

bograt··on Details of UK website visits 'to be stored for year'
IANAL but I've been chewing my way through the ~300 pages of the published draft bill. What catches my attention is that the bill appears does not appear to sufficiently constrain the Secretary of State's powers to oblige a "telecommunications provider" to render technical capabilities deemed necessary to "assist in the in the implementation of warranted activity".

Here, the definition of "telecommunications provider" seems (to my understanding) so broad as to cover any provider of an online service, paraphrasing section 193:

"Communication" is "anything comprising speech, music, sounds, visual images or data of any description" and "signals serving either for the impartation of anything between persons, between a person and a thing or between things or for the actuation or control of any apparatus."

And a "telecommunication service" includes "any case where a service consists in or includes facilitating the creation, management or storage of communications transmitted".

Section 189 titled Maintenance of technical capability allows the Secretary of State to make obligations on telecommunication services including (paraphrasing again):

* relating to apparatus * relating to the removal of electronic protection applied by a relevant operator to any communications or data * relating to the handling or disclosure of any material or data

in addition to requiring them to "provide facilities or services of a specified description"; the specification apparently being deferred until notice is served on the service provider.

Conversely, the Secretary of State is required to consult before serving a "technical capability notice" and section 190 lays out a number of considerations for the Secretary of State including "technical feasibility", "likely cost", "likely benefit" etc.

But other than these apparently very weak constraints, it appears to provide carte blanche for the Secretary of State to demand new technical capabilities of any service provider for the warranted access and interception of any user data they store or transmit.