I say this often. Code is for people, and the qualities of great code parallel those of great writing: clarity, efficiency, and a sort of profound obviousness and inevitability.
The job of software architects is the role Heidegger ascribes to man when he calls us "shepherds of Being". To understand the world as it is, and find the right abstractions to describe it. To constantly evolve those abstractions toward better ones, clearer ones, to seek out ways to represent things that make solutions seem obvious and inevitable.
A mathematics professor once said to me that as time went by, the definitions in mathematics became more complex while the theorems became simpler. "Why is that?", I asked, and he replied, "It's progress!" This is the sort of progress that the software architect seeks as well: to set up the problem so excellently that the solutions are smooth and the process is enlightening.
Great writing, and great code, are first and foremost about great ideas. About brilliant ideas that change how you view the world for the better.
Dozens of tech companies around the world that were established in the last 4-5 years were done so entirely for the purpose of being fronts for spy agencies to engage in the vast collection of data.
This extends also to shipping, licensing, and auditing companies.
Somehow they’ve managed to assemble the worlds 2nd largest cargo fleet in terms of dry weight tonnage, all verifiable on https://marinetraffic.com btw, and yet they appear on NO LISTING ANYWHERE for the top 100 cargo companies.
That company is a front for the Chinese military, because if you do a reverse WHOIS search you will see http://pacbasin.com was also registered by the same organization...it is an autonomous drone hardware and extended flight operations firm. There is more to say there, but I will leave it at that.
Other firms that have been espionage operations since day one, or were acquired at some point and repurposed as spy outfits. This list includes both Western and Eastern powers:
Diffing means computing the longest common subsequence (LCS); the edit script is everything that's not part of the LCS. The proposed algorithm greedily finds a matching element. However it may be that it would be better to skip this element, and not incorporate it into your sequence.
Consider the following sequences (here each letter represents a line).
AAAB
BAAA
Where the first one is "left" and the second one is "right".
The LCS is AAA. The minimal edit script from left to right is:
1. Insert B at beginning.
2. Delete B at end.
The proposed O(N) algorithm finds B as the first matching line, and thereby exhaust `left`. So it finds the common subsequence of just "B" and its edit script is:
Here's a piece of speculation.
If you have no time for these harsh words, I'm sure you have your mouse at the ready. I am sorry you cannot crumple the page and toss this into the wastebasket if you'd like. Anything except more hand wringing on the internet. Without further ado...
The US propaganda machine has been telling everyone who will listen that "the Russians influenced the election" endlessly for the past year.
Are there hard statistics on this? Is there a methodology, mechanism, or theory describing how effective this manipulation has been, and exactly how we get from a survey to a Trump? I am asking honestly. Because please, please, let's focus on what is quantifiable, if we focus on anything there.
Lose talk, anecdotes, and accusations are not sufficient, nor even necessary, if there are hard statistics on the mechanisms of manipulation.
Let's talk about those, then, and cease this glib gab and mindless anger at what we already know is a pretty shitty business. (Facebook)
My guess is that there are no hard facts. If Facebook didn't want regulation, they might argue forcefully this way - that the troll C.A. did not effectively do much of anything to influence the election.
My guess is that Facebook wants to be regulated. It will gain cultural validity, put up a barrier to entry against competitors,
and cement for the history books this story that "unregulated social media"/"the unregulated internet" "used to allow bad actors to
influence our democratic process."
From then on we will have one social network, Facebook, and everyone will be taught from high school to law school, that such regulations
are necessary to protect our free society from undo influence. Few will question this. The machine will grow. It feeds on ignorance.
(What I really think is that even if C.A. did effect the election, we still should not allow Facebook regulatory capture as incumbent. It is worth the cost of manipulation to have the possibility of Facebook being wiped out in the future. - And above all, to avoid having it enshrined and regulated at the same time as a valid, trusted news source. Then it will really reach its full "potential" ... as a propaganda piece for the US rich and powerful.)
Back to the present:
This Cambridge Analytica (C.A.) story breaks, and almost nobody is talking about whether or not it had any measurable effect on the election at all. Wired ran a companion piece that I can no longer find - a sideline story, stating that "it" (C.A.'s actions) basically had no effect on the election, but this story was not marketed or highlighted. What was marketed was this "big story" that C.A. took user data. The fact that it did nothing of consequence (that I have seen) is a tiny link at the bottom. I can no longer find it in the barrage of stories talking about what happened in broad, anecdotal, scared up, strokes.
(And again, even if C.A. did make an impact, Facebook regulatory capture and validity enshrinement is the one of the worst outcomes imaginable. )
These are war drums we are hearing. And the marching orders are against freedom of information on the internet generally. Facebook will come out regulated, "made safer" (and it will in turn become a better shill for the powers that be) but the real prize is that the rest of the internet is supposed to be regulated too, and the regulators will have unfettered access to whatever they want. The NSA has nothing like what it will have once the hand wringers make the internet safe for democracy.
That is the game plan.
New articles on "bad facebook" "bad Russia" and "bad cambridge analytica" (the last, just next week's scapegoat once facebook is whitewashed and regulated) is all theater in order to get us there.
I recommend everyone stop talking about, and stop worrying about, this stupid sideshow and pay attention to what they are trying to really do to us.
To be clear, I can't really think less of Facebook. It's a social hack which sweeps up data.... for entities that find it useful... But I'd expect it's use in manipulating elections to go up, with increasing regulation (increase in perceived validity).
The biggest manipulator is and always will be our political-media machine. Facebook is just going through the process of being publicly inducted.
Facebook is going to come out stronger from this. The narrative will say "after fire and brimstone, years in doubt, Facebook goes through the trial of its life, and comes out smarter, nicer, and above all, more regulated, for the benefit of us all."
In practice, society will have Facebook as the permanent social media app, and others basically banned as dangerous.
If that is what you want, then keep up the hand wringing over Cambridge Analytica.
This sort of thing went stale for me a long time ago. If you cry out "fix it" "fix it" to the government, they will fix it alright. Fixed. As in permanent, unchangeable, and all powerful. Facebook. The only safe social news platform. Good luck to you.
The job of software architects is the role Heidegger ascribes to man when he calls us "shepherds of Being". To understand the world as it is, and find the right abstractions to describe it. To constantly evolve those abstractions toward better ones, clearer ones, to seek out ways to represent things that make solutions seem obvious and inevitable.
A mathematics professor once said to me that as time went by, the definitions in mathematics became more complex while the theorems became simpler. "Why is that?", I asked, and he replied, "It's progress!" This is the sort of progress that the software architect seeks as well: to set up the problem so excellently that the solutions are smooth and the process is enlightening.
Great writing, and great code, are first and foremost about great ideas. About brilliant ideas that change how you view the world for the better.