Stormed
August 2nd
Some Music for your Ears
I forget sometimes that this is my damn blog. And if I want to embed a crap tonne of music... I can do that!
Nao - Zillionaire
Easily one of my favourite songs found via Julie Adenuga's show on Beats 1
Off the same EP, Inhale Exhale has a bassline that I love.
JME - Man Dont' Care (ft. Giggs)
I can't help but like a song that has this lyric:
Nostradamus couldn't see me
Expelliarmus couldn't stop me
Nice reminder of how much I like Grime.
Stormzy - Know Me From
Love the gimmick filled one-take video... surprisingly catchy song too.
If that's his mom by the way, +100 points.
Tinariwen - Chaghayabou
Just listen to this.
Miles Davis - Tutu
I may be the last person in the world to hear this, but daaaamn.
Alright. That's all for now. Expect more of these though. I'm far too lazy to make a radio show, but, I do enjoy the hell out of sharing new music.
Web Design - The First 100 Years
Damnit. Maciej Cegłowski is an annoyingly excellent writer. One day, in the far future, when I care more about writing I aspire to write half as well as him.
He just put up a transcript of a talk, called Web Design - The First 100 years. As is usual with him, I highly recommend it.
Other pieces of excellence of excellence from him:
- The Internet with a Human Face
- The Alameda-Weehawken Burrito Tunnel, a story of engineering triumph.
- The official Pinboard Twitter account.
There's much much more. The best news, for me personally, is that there's a substantial archive at Idle Words that I've yet to explore. Though, I find myself rationing, afraid for a time when I will have read everything.
Help send him to Antarctica will you? It'll help forestall that fateful day.
Imaginary Tool: Disjoint Function Detector
An antipattern one runs into on a pretty regular basis is the overly-extended function:
def doFoo()
code to do foo>
end
Evolves over time, and becomes
def doFoo(special=false)
if special
<do something>
end
<code to do foo>
end
But in the worst case, it evolves further and becomes
def doFoo(special=false)
if (special)
<do special>
else
<do foo>
end
end
At this point, it's pretty obvious that these shouldn't be in the same function. They don't express common functionality anymore really.
I want a tool that will tell me if there's a parameter to a function that creates two disjoint sets of control flow. This would be a good indication that something about the function needs to be refactored!
Now Listening on Repeat
Oof. So good.
PoC||GTFO 0x08
International Journal of Proof-of-Concept or Get The Fuck Out (PoC||GTFO or PoC or GTFO) posted issue 0x08 this month.
What an interesting piece of work. I found 0x08 brought me a little bit of joyful glee when I read this technical note:
“This issue is a polyglot that can be meaningfully interpreted as a ZIP, a PDF and a Shell script featuring the weird cryptosystem described in 8:12. We are the technical debt collectors! ”
... and it actually worked.
Other fantastic pieces in this issue:
- An article written by Scott Bauer, Pascal Cuoq, and John Regehr wherein they show how a backdoor can be constructed (proof of concept provided for
sudo
) out of a known mis-compilation. A rant on the nature of academia which I am incredibly sympathetic to:
The scientific community has a structural problem. In computer science, we do not require researchers to build real systems that can be scrutinized. We do not have a mechanism for thorough review, so we generally do not bother publishing work that breaks another paper. Our field just doesn’t consider a broken paper to be particularly notable.
Academics in computer science are too often doomed to talk nonsense unless we fix these issues. Further, researchers in our field are continuing to verge towards irrelevance if they simply follow the system of incentives that makes it a better career move to drop a paper and file a patent than do the work of building real systems and determining real truths about our machines.
Given how much I've enjoyed the percentage of this issue of PoC||GTFO, it looks like I really ought to dig into the back-catalogue.
Somehow, I've become very interested in computer security writing. Though I'm not sure what working in computer security would be like, I have to say, I enjoy reading about it quite a bit. I've noticed that my Twitter feed is at least a quarter people from info-sec.
What Is Code?
Paul Ford has written an absolute epic, called What Is Code?
Lots and lots of good stuff in it.
Java was supposed to supplant C and run on smart jewelry. Now it runs application servers, hosts Lisplike languages, and is the core language of the Android operating system. It runs on billions of things. It won. C and C++, which it was designed to supplant, also won. A lot of things keep winning because computers keep getting more plentiful. It’s weird.
Also:
Compilation is one of the denser subjects in computer science, because the lower down you go, the more opportunities there are to do deep, weird things that can speed up code significantly—and faster is cheaper and better. You can write elegant, high-level code like F. Scott Fitzgerald, and the computer will compile you into Ernest Hemingway. But compilers often do several passes, turning code into simpler code, then simpler code still, from Fitzgerald, to Hemingway, to Stephen King, to Stephenie Meyer, all the way down to Dan Brown, each phase getting less readable and more repetitive as you go.
A great read. Takes a long time though. 30,000 words!