First Round Capital Holiday Video 2011 - Rebecca Black Parody - <AUTHOR> https://www.youtube.com/watch?v=HP4HiZt3DFE

<comment><USER2> "adding comments have been disabled"

...cause there was so much hate commenting lol

<comment><USER3> Why would you ever enable commenting for a youtube video? Whenever people argue about hn turning into reddit, remember there are many hundreds of additional levels deeper into hell before you reach local newspaper comments and youtube comments. Even the worst of /b/ is better.

</comment></comment><comment><USER4> This isn't even funny or cute. What were they thinking?</comment>


Ask HN: What technologies can we use to minimise data collected into PRISM - <AUTHOR>

We all now know the news about PRISM, so I was wondering on your thoughts on how we can stop the majority of our data going into PRISM.
So I thought this would be a good Forum to discuss the technical approaches to minimizing our Data making it into PRISM?
There are essential services and tasks that we all use and do and I was wondering what suggests we as a community can provide to minimize the Privacy Invasion.<p>Here are some examples:
Browsing: Tor
Email: Private Mail Server with PGP
Social Network / Media Sharing : Diaspora?
Storage: Mega?
Etc....
Looking forward your comments. <comment><USER2> Wasting less time on facebook will leave NSA emptyhanded! :)

<comment><AUTHOR> Yes, I guess removing Facebook account and completely stop using the service would definitely be an option.</comment></comment>


The quaternion square root is uncomputable - <AUTHOR> https://mathoverflow.net/questions/342041/is-it-possible-to-constructively-prove-that-every-quaternion-has-a-square-root <comment><AUTHOR> Comments by Dan Piponi: [https://twitter.com/sigfpe/status/1180146076579328000](https://twitter.com/sigfpe/status/1180146076579328000)</comment>


HackerRank Solves Hiring Crisis by Finding Programmers Where They Live (2014) - <AUTHOR> http://www.forbes.com/sites/anthonykosner/2014/06/12/hackerrank-solves-tech-hiring-crisis-by-finding-programmers-where-they-live/#1e8af6d81501 <comment><USER2> now for a new challenge..., how to find programmers who can actualy program >.></comment>


Ask HN: Anyone with a limited budget need a quick (one-off) web app? - <AUTHOR>

I've recently changed jobs (Rails dev), and have a few days of downtime to kill. If anyone with a small budget (>$1000) needs a quick site done, I'm up for it!<p>I do full stack Rails development professionally -- primarily sns/mobile games. <comment><USER2> Assuming that's "<$1,000"?

<comment><AUTHOR> Yeah, just saw that, and can't edit...</comment></comment>


Donate to the Internet Archive using bitcoin - <AUTHOR> http://www.archive.org/donate/

<comment><USER2> And for those interested, you can watch the donations so far here: [http://blockchain.info/address/494294730abf03c846988654f15d1...](http://blockchain.info/address/494294730abf03c846988654f15d1864469c737a)</comment>


Show HN: TrueCaptcha -Using Deep learning to solve text captchas - <AUTHOR> https://apitruecaptcha.org <comment><USER2> Those text captcha images make me kind of nostalgic. I spend most of my time clicking on crosswalks and traffic lights these days. Even if text captchas were prevalent, what is the good that this service would be providing?

<comment><AUTHOR> Anti-captcha.com and 2captcha.com are few examples of existing services that provide human based captcha solutions. We were just experimenting with image recognization and deep learning which led to this idea. This became a good learning experience :)

So-many websites ( ex: indian tax filing systems ) still implement captcha in submitting. This is a bottle neck to bulk submit results to such websites.

Please give it a try, by using the demo page. It FREE to use right now.

</comment></comment><comment><USER3> Is there a use case for this that doesn't violate the terms and conditions of the _victim_ website?... I can't think of any</comment>


Quipo Quiz: true or false quiz games - <AUTHOR> http://quipoquiz.com <comment><USER2> Kinda fun! I don't like this question/answer though:

> Musical hacking began with the invention of the cassette tape. / The answer > is TRUE. In the 1960s, the arrival of the cassette tape made it easy to > duplicate music at a very low cost.

I don't know what "Musical hacking" means, but my grandfather was messing around with reel-to-reel tape in the 1960s, like doing duets with himself. That doesn't require cheap cassette tapes - reel-to-reel was cheap enough for a non-professional to acquire.

At [https://en.wikipedia.org/wiki/Musique_concr%C3%A8te#Magnetic...](https://en.wikipedia.org/wiki/Musique_concr%C3%A8te#Magnetic_tape) you can see that people were experimenting with a lot of tape-based techniques, like micro-editing, in the 1950s.

Edit: Oh, I think I figured it out. They regard 'hacking' as equivalent to 'copyright infringement', and not as 'experimenting with the medium'.

<comment><AUTHOR> Thank you for your comment Dalke, we will check this question and try to change it to a better way to explain what we meant :) Have a nice day!</comment></comment>


Chrome extension Hola was used as a huge botnet - <AUTHOR> http://uk.businessinsider.com/hola-used-for-botnet-on-chrome-2015-5

<comment><USER2> I only ever heard of Hola being used to circumvent localised content restrictions such as on Netflix which is kind of a poetic justice, but it's a shame that there were undoubtedly some 'legitimate' (for want of a better word) users who will have been affected by this.

</comment><comment><AUTHOR> i deleted it asap i read that, is it even legal to do that?</comment>


Building a Tetris Clone in X86 Assembly, Pt. Ⅰ: Hello, World - <AUTHOR> https://cmcenroe.me/2015/09/11/tetrasm-1.html <comment><USER2> Tetris seems to be one of those games that people love to size-optimise in Asm; here's a few in the <512b category:

[http://www.pouet.net/prod.php?which=33942](http://www.pouet.net/prod.php?which=33942)

[http://www.pouet.net/prod.php?which=6951](http://www.pouet.net/prod.php?which=6951)

There was a competition too, based on a standard appearance and behaviour, and the winner is 363 bytes:

[https://files.scene.org/view/mags/hugi/compos/hc22fin.zip](https://files.scene.org/view/mags/hugi/compos/hc22fin.zip)

Vaguely related; chess game in 487 bytes:

[https://news.ycombinator.com/item?id=8954630](https://news.ycombinator.com/item?id=8954630)

</comment><comment><USER3> It's not 100% related but I had great fun building a very minimal Tetris clone in 6502 assembly, for the C=64, a couple of years ago (the code is "kinda" commented):

[https://github.com/cjauvin/tetris-464](https://github.com/cjauvin/tetris-464)

</comment><comment><USER4> Is anybody able to get the repo running? 'make qemu' simply shows a blank screen and exits. But the repo seems much farther along than the blog post.

<comment><USER5> The build defaults to debug, so `make qemu` also starts QEMU waiting for a debugger to attach. `make qemu BUILD=release` won't.

<comment><USER4> Thanks!

</comment></comment></comment><comment><USER6> there's no comment section there so i'd figure i'd ask here: what is that font that it outputs? is that part of BIOS or something? or part of boot loader or PXE server?

i assumed asm was the lowest level, is there some builtin font by default that can't be changed or something?

<comment><USER7> The default video bios mode is used as-is here, [https://en.wikipedia.org/wiki/Video_BIOS](https://en.wikipedia.org/wiki/Video_BIOS)

There is no terminal emulator here. This hello world text is written directly to video memory -- and yes, there is a character rom, so placing a string of words in memory OR'd with bits set for video attributes (the #defines there) make it color.

<comment><USER7> Furthermore, see an example of setting the mode explicitly from PC-DOS: [https://github.com/johannesl/EditANSi/blob/master/ea.asm#L23](https://github.com/johannesl/EditANSi/blob/master/ea.asm#L23) and [http://fleder44.net/312/notes/18Graphics/index.html](http://fleder44.net/312/notes/18Graphics/index.html)</comment></comment></comment>


Spikey Spheres - <AUTHOR> http://www.solipsys.co.uk/new/SpikeySpheres.html?HN_20161120 <comment><USER2> A teacher of mine told us, "Don't try to imagine 4D space. You can't. If you think you can imagine a 4D hypersphere, you're wrong. It's just not possible."

And everytime someone talks about how to imagine higher-dimensional space, I have to think back, and I'm convinced that my teacher was right. Our intuitive understanding of 2D and 3D just doesn't generalise to higher dimensions.

A hypersphere is nothing like a sphere, just like a sphere is nothing like a circle, which is again nothing like a line segment.

If you talk about multidimensional geometries, stick to the math, and don't try imagining it. Analogies to 2D or 3D objects (it's smooth, but like a spike) are pointless and don't lead to new insights. We really need to stick to precise, mathematical language if we want to work with higher dimensional geometry.

<comment><USER3> However there is a 4-dimensional sphere (3-sphere) that you can easily access: the possible rotations of any object in 3-dimensional space is topologically and metrically isomorphic to a (half of a) 3-sphere, in the same way as the rotations of an object in 2-dimensional space are isomorphic to a 1-sphere (circle).

Think of an object's current orientation as the "north pole" of our abstract 4-dimensional sphere. Rotating the object around any axis pushes you toward the equator, which you reach once you have rotated the object halfway around (the equator is made from all 180° turns, and is topologically a 2-sphere). Continuing to rotate the object takes you towards the "south pole", which is where you get if you rotate your object 360°. To get back to the north pole, rotate by 360° again.

Cf. [https://en.wikipedia.org/wiki/Versor](https://en.wikipedia.org/wiki/Versor) [https://en.wikipedia.org/wiki/Quaternions_and_spatial_rotati...](https://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation) and [https://en.wikipedia.org/wiki/Rotation_group_SO(3)](https://en.wikipedia.org/wiki/Rotation_group_SO\(3\))

* * *

One other way you can get at the 3-sphere is by taking a stereographic projection into all of 3-dimensional space (plus a point at infinity). If you have some 3-dimensional shapes drawn on the surface of your 3-sphere, these will get distorted under the stereographic projection, but locally angles will be preserved, just like a stereographic projection of the 2-sphere onto a piece of paper.

<comment><USER4> I think that your terminology "3-sphere" (which is standard) as synonymous with "4-dimensional sphere" (which is not) may be confusing. Of course the 3-sphere is 3-dimensional, hence the name; it is just that it is canonically embedded in 4-dimensional Euclidean space (and not in 3-dimensional, flat Euclidean space).

<comment><USER3> Fair enough. Hopefully nobody was confused. I was trying to meet the grandparent poster halfway. His comment was "[...] Don't try to imagine 4D space. You can't. If you think you can imagine a 4D hypersphere [...]"

</comment></comment></comment></comment><comment><USER5> High dimensions are indeed very, what shall I say, non-intuitive. Bellman introduced, or perhaps popularized, the term 'curse of dimensionality'. High dimensions may also comes with its blessing, 'concentration of measure' a phenomenon where randomness concentrates into events of certainty in high dimensions. I checked out their Wikipedia pages, while the former has a lucid description, the page on the latter is quite technical.

Both these notions play a significant role in topics like machine learning, statistics, function approximations etc. Its sometimes a delight sometimes sheer frustration to see these two phenomena play it out.

</comment><comment><USER6> One other mindblowing fact is that if you project the mass of the sphere onto a line that goes through the origin, you get a Gaussian distribution as the dimension goes to infinity.

If you're interested in more technical details about the weird geometry of balls, I can't recommend enough the first few pages of "An Elementary Introduction to Modern Convex Geometry" [1]. Ironically, the author's last name is Ball.

[1] [http://library.msri.org/books/Book31/files/ball.pdf](http://library.msri.org/books/Book31/files/ball.pdf)

<comment><USER7> It should be clarified that this fact refers to a ball of volume 1 in N dimensions. Since the volume is held constant, as the dimension goes to infinity, so does the radius.

<comment><USER8> Wait, isn't it the other way around? I.e. if you want to keep a volume of the ball constant as dimensions rise, don't you have to _reduce_ the radius?

(I'm a noob at this whole dimensions thing.)

<comment><USER9> Volume of a hyper-sphere of radius R reduces with increasing dimensions! [https://en.wikipedia.org/wiki/Volume_of_an_n- ball](https://en.wikipedia.org/wiki/Volume_of_an_n-ball)

To visualize, take a hyper-cube of length 1. It's volume is 1 unit for any n-dimensional hyper-cube. Scribe a hyper-sphere touching all the sides. How about its volume with increasing dimension? That decreases! (with respect to the cube). To visualize, think about the distance of the cube vertex from the centre, it increases with increasing dimension.

In other words, Most of the cube's volume is closer to its vertex, not in the ball in the centre!

<comment><USER8> Thanks! I'll need to spend some time trying to visualize it though, I'm nowhere near grokking it.

<comment><USER7> You can start by working out the ratio of volumes between a sphere of radius 1 and the enclosing cube in 1, 2, and 3 dimensions (i.e. a line segment, a circle, and a sphere, respectively). You'll see that the ratio starts at 1 and decreases as the dimension increases.

<comment><USER4> > You can start by working out the ratio of volumes between a sphere of radius > 1 and the enclosing cube in 1, 2, and 3 dimensions (i.e. a line segment, a > circle, and a sphere, respectively). You'll see that the ratio starts at 1 > and decreases as the dimension increases.

Be careful using low-dimensional phenomena as a guide to the asymptotic behaviour! If you take a sphere of radius 2, rather than radius 1, then the analogous ratio _increases_ for a while (until n = 5), but then decreases to 0.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> Another counterintuitive result in this vein is to think about randomly sampling uniformly distributed points in a sphere. As the dimension rises, the chance of finding a sample within, say, r/100 of the surface goes to infinity. In high dimensions, all of the mass of the sphere is concentrated at the edge.

<comment><USER11> Exactly! Now consider that deep networks that classify images are tasked with getting reliable statistics in very high dimensional spaces. Conv nets are being forced to map from high dimensional spaces down to a very low dimensional categorical decision. This is why weird classification errors you see in "adversarial examples" keep popping up. The learned classification boundaries are very spiky, and it's easy for the world to fall in between the spikes. More data can't solve it (at least not practically) because there are way too many gaps between the spikes.

A more tractable approach is to learn to use dynamics for perception rather than ("just") statistics. The dynamical physics of a ball rolling is much simpler (lower dimensional, more tractable) than a statistical view of millions of differently illuminated pixels hitting a camera.

(A colleague of mine has a blog post on this issue of "statistics and dynamics" at [http://blog.piekniewski.info/2016/11/01/statistics-and- dynam...](http://blog.piekniewski.info/2016/11/01/statistics-and-dynamics/))

<comment><USER12> Your point about dynamics kinda reminds me of Chomsky's critique of statistical approaches to AI, for example here: [http://norvig.com/chomsky.html](http://norvig.com/chomsky.html)

<comment><USER11> Yes, but in direct contrast to Chomsky (who would say there's not enough data/time for kids to learn from) I am saying that there is a ton of rich dynamical data in the world around us all the time. Plenty to learn from.

Just plug a webcam into an adequate system and allow it to learn dynamics by trying to predict what it will see next.

Chomsky is almost right for the wrong problem: there won't ever be enough human-labeled data for good generalization. ;)

<comment><USER12> I think what Chomsky was saying in that particular debate was that purely statistical methods do not lead to true understanding, as opposed to more phenomenological theory.

</comment></comment></comment></comment></comment><comment><USER12> I am not sure I would interpret this observation as spheres that are getting more spikey. Maybe what gets more spikey is the actual box, so the sphere has it easier to touch or even extend outside of it.

<comment><USER4> > I am not sure I would interpret this observation as spheres that are getting > more spikey. Maybe what gets more spikey is the actual box, so the sphere > has it easier to touch or even extend outside of it.

I think that this is not correct. In n dimensions, the cross section of a unit n-cube near the edge is a unit (n - 1)-cube, just as your intuition tells you. However, the cross section of a unit n-sphere near its intersection with the unit n-cube is a tiny, tiny (n - 1)-sphere (the radius of a cross section at height z = 1 − 𝜀 goes to 0 as n goes to ∞); this is the 'spikiness' that the author is discussing.

<comment><USER12> On the other hand, it seems to me (maybe I am wrong) that the solid n-dimensional angle of each corner of the n-cube is progressively smaller (as a ratio of full n-dimensional angle). So in that sense, each n-cube gets more spikey, and there is "less space" in each corner for each n-sphere that enclose the central n-sphere.

</comment></comment></comment><comment><USER13> For a more rigorous treatment (and many other gems on the border of highly practical and highly theoretical), see Richard Hamming's great book "The Art of Doing Science and Engineering", available for download from Bret Victor's website:

[http://worrydream.com/refs/Hamming- TheArtOfDoingScienceAndEn...](http://worrydream.com/refs/Hamming- TheArtOfDoingScienceAndEngineering.pdf)

</comment><comment><USER14> I did a quick "visualization" hack a while ago [http://nbviewer.jupyter.org/urls/gist.githubusercontent.com/...](http://nbviewer.jupyter.org/urls/gist.githubusercontent.com/syhw/9025964/raw/441645b476a2a997f27f5993e4da2988febe1ef3/SpikeySpheres)

</comment><comment><USER15> Fun.

I love that weird intuition trap you mention - the volume of a N dimensional sphere of radius R sphere goes to zero as N -> infinity.

[https://en.wikipedia.org/wiki/Volume_of_an_n- ball](https://en.wikipedia.org/wiki/Volume_of_an_n-ball)

<comment><USER3> This comes down to the definition of (hyper)volume. We use a (hyper)cube as our unit, but that's somewhat arbitrary.

We could alternately define (hyper)volume using a standard _n_ –simplex as the unit, then we would say the volume of an _n_ –ball → ∞ as _n_ → ∞.

</comment></comment><comment><USER11> To see some concrete examples of how this sort of phenomenon causes surprising failures in deep networks classifying images, see "Intriguing properties of neural networks"[1]

[1] [https://cs.nyu.edu/~zaremba/docs/understanding.pdf](https://cs.nyu.edu/~zaremba/docs/understanding.pdf)

</comment><comment><USER16> Very interesting! I've done a lot of work with higher-dimensional spaces in NLP and Machine Learning (creating feature vectors with tens of thousands of dimensions, and then calculating cosines between vectors to estimate document similarity), but these ideas about spikey geometry are new to me and very insightful. Thanks!

</comment><comment><USER17> _So one visualisation of a sphere in very high dimensions is not something smooth and round, but something that is somehow simultaneously very symmetrical, and yet also very spikey._

It's unlikely that this will help anyone, but I recently learned that the spiky protrusions a naval mine are called "Hertz horns": [http://www.popsci.com/blog-network/shipshape/terrible- thing-...](http://www.popsci.com/blog-network/shipshape/terrible-thing-waits- under-ocean)

So if for some reason you are trying to trying to make a loose analogy to the spikiness of hyperspheres to an older military mariner who has never seen a hedgehog, you could clarify by saying "you know, like the Hertz horns on a sea mine?"

</comment><comment><USER18> [https://en.wikipedia.org/wiki/Curse_of_dimensionality](https://en.wikipedia.org/wiki/Curse_of_dimensionality)</comment>


Maquette – Pure and simple virtual DOM library - <AUTHOR> http://maquettejs.org/ <comment><USER2> So with these virtual DOM libraries, after seeing a lot of them try to fill in this supposed niche, and seeing two this week including this one, I'm of the opinion that it should either be completely JS looking, e.g. a simple wrapper around createElement, or React looking, e.g. with JSX.

The ones that are in between, while potentially having nice syntax or a nice looking homepage, aren't enough to convince me to use them over React, mainly because 1) if I'm doing any production code, I want other engineers to be familiar with it and its pitfalls; 2) I want to make sure it'll be supported 6 months down the road; 3) engineers are familiar enough with JSX or with createElement, but some other syntax may be confusing and have corner cases that a bigger project like React hasn't thought of... I don't want a lookalike React.createElement because I can just use React.createElement; 4) many of these libraries are built with "performance" in mind, but does it really matter how many more times it can process a ToDoApp if it doesn't really affect user facing performance?

While this isn't a jab at this library specifically (although it hasn't had much _substantial_ development in a while...), but too many libraries are created to fill some supposed niche and then abandoned when they move to different pastures, and if you need to fix any of those corner cases you will inevitably run into, ideally you can submit a PR and get it fixed easily and with little delay.

<comment><USER3> I'm interested in tools like this because it allows me to build my front-end out of regular functions, which I can compose however I want using regular code. I never liked writing HTML or CSS in the first place.

<comment><USER2> Barring adding a build step, why couldn't you compose a function that returns JSX?

<comment><USER4> Or just skip JSX and use ReactDOM directly.[1] JSX is just sugar for the functions underneath, after all.

[1]: [https://facebook.github.io/react/docs/top-level- api.html#rea...](https://facebook.github.io/react/docs/top-level- api.html#reactdom)

<comment><USER3> Isn't that a lot like hyperscript? Maybe I like this or mercury or I one of the other varieties better for one reason or another. Is ReactDOM the best fit for everyone?

<comment><USER4> I've never used HyperScript, and I made no claims about anything being the ONE TRUE TOOL. I suggested that yladiz's recommendation would fit your described preferences better without injecting JSX.

</comment></comment></comment></comment></comment></comment><comment><USER5> I really dig Maquette. The library is easy to use, the documentation is good, and the interactive examples make it really easy to get running.

The Hyperscript notation Maquette uses is compatible with other vDOM implementations, so it's possible to use JSX [1], Jade/Pug [2], Handlebars, or any other templating solution that compiles to Hyperscript [3].

I personally prefer really "dumb" views and have my controllers attach events and link model data. Thanks to the modular design of Maquette, instead of the Maquette `createRender()` pattern I was able to use SpineJS for the Model and Controller portions of the app.

I used Maquette recently to create an API and Web UI for Bull job queue, which I'll be releasing this week as open-source. I did not run into any bugs or difficulties in Maquette, it was as efficient and straightforward as advertised.

Previously I've used Templatizer (precompiled Jade templates), but Maquette's feature to map and track lists of objects/elements spurred me to change. I'm sold on it for now but really appreciate the thriving competition of vDOM renderers.

[1]: [https://medium.com/maquette-news/maquette-2-2-now- supports-j...](https://medium.com/maquette-news/maquette-2-2-now-supports- jsx-7da7b0a1dc98#.s2tmxyyce)

[2]: [https://www.npmjs.com/package/gulp-pug- hyperscript](https://www.npmjs.com/package/gulp-pug-hyperscript)

[3]: [https://www.npmjs.com/browse/keyword/hyperscript](https://www.npmjs.com/browse/keyword/hyperscript)

</comment><comment><USER6> I find the virtual DOM is much easier to create using regular HTML syntax. I like Vue 2.0's approach where it creates a virtual DOM from the actual DOM itself.

Edit: I left a huge comment regarding POJOs and how the example on the homepage is pretty ugly, but I just found out that there's something called Hyperscript, and it's used to create a virtual DOM. So, while the example is in Hyperscript, Maquette also supports JSX.

I still don't understand the point of all of this I guess. Isn't it time we as JavaScript devs took a step back and thought "why do we need this?"

<comment><USER7> > _«why do we need this?»_

Obviously, because real DOM is (1) slow and prone to hard-to-predict reflows, (2) non-transactional, and (3) not going to change, due to backwards compatibility.

Thus the need to operate on a fast, cheap virtual DOM, and then apply the smallest sufficient change to the real DOM the users see.

</comment></comment><comment><USER8> Please add 'width: 100%;' to your '.homepage .row' CSS rule. In Firefox I see an annoying scollbar on bottom of the page

<comment><USER9> Thanks for reporting. I just added it to the sheet!

</comment></comment><comment><USER10> _" Maquette is a virtual DOM implementation that excels in speed."_ Waiting for some data to back that claim.

<comment><AUTHOR> Here is a Benchmark tool [https://vdom-benchmark.github.io/vdom- benchmark/](https://vdom-benchmark.github.io/vdom-benchmark/)

where you can input this "Custom URL": [https://vdom-benchmark.github.io/vdom- benchmark-maquette/](https://vdom-benchmark.github.io/vdom-benchmark- maquette/)

then open the Dev Tools and Run.

But looks like it fails tests, add '&test' to the URL in the new window.

Source: [https://twitter.com/andrestaltz/status/770307344513306624](https://twitter.com/andrestaltz/status/770307344513306624)

<comment><USER11> The main conclusion from this benchmark was that all 'modern' virtual DOM implementations are all capable of achieving 60fps on large pages on most devices. There is no point in picking the 'fastest' anymore, because users simply will not see the difference.

</comment></comment></comment><comment><USER12> So... it's mithril with a ton of the useful stuff ripped out, for a comparatively tiny reduction in size? Why would I want that?

<comment><USER13> There is something to be said for using APIs whose total surface area is close to the surface area that you need. If I want to use different parts of three libraries, but those libraries have excess functionality with a lot of overlap, then I have to deal with potentially conflicting expectations. I also have to worry that the subset of functionality I do use will go away or change because it's not the central focus of the library.

<comment><USER12> The thing is, if you're using a VDOM, you'll probably want the other stuff Mithril's got anyways. And the tight integration with the vdom renderer helps make sure that rerenders happen only when something actually changes, and that partial states don't render. For 3 megs, I'll take it.

<comment><USER13> One man's tight integration is another man's tight coupling.

<comment><USER12> You can actually disable a lot of that stuff. It's just like that by default. You can even write your own render loop, if you really want to.

</comment></comment></comment></comment></comment><comment><USER14> I created something similar recently, but more minimalistic, es6/jsx- encouraging and based on the real DOM (via morphdom).

[https://atmin.github.io/funponent/](https://atmin.github.io/funponent/)

</comment><comment><USER15> Looks well put; not sure just yet what it adds to the scene compared to snabbdom.

</comment><comment><USER16> Site design is gorgeous

</comment><comment><USER17> Love the site design, but will never use the library</comment>


Lisp Machine Manual, Hypertext Edition - <AUTHOR> http://common-lisp.net/project/bknr/static/lmman/frontpage.html

<comment><USER2> That's the LISP machine's LISP manual, not the machine manual. Here's a picture of the "MIT Space Cadet" keyboard for the thing, with SHIFT, CONTROL, TOP, GREEK, SUPER, HYPER, and META shifts. All combinations were possible and all could be bound to EMACS commands.

[http://makezineblog.files.wordpress.com/2009/02/lisp- machine...](http://makezineblog.files.wordpress.com/2009/02/lisp-machine- keyboard.jpg?w=600&h=450)

I used a Symbolics 3600 a few times, and I wasn't impressed. Franz LISP on a VAX, which generated object files, was more useful, and didn't have 45-minute garbage collections. The LISP machine "Let's put everything including the OS and compiler into one address space" was so l33t, but lead to huge GCs.

The whole LISP machine craze was from the era when the expert systems (anybody remember them?) profs were saying that strong AI was right around the corner. This was about 1983. That was followed by the "AI Winter".

<comment><USER3> Wow, a machine devoted to a programming language. That is pretty interesting. Were there other machines devoted to a single language like that?

<comment><USER4> Well, if you take some partisan grumblings, most hardware is devoted to C, but that's arguable: Frankly, C isn't as good a fit for those machines as the partisans make out, being rather too high-level to really take advantage of the vector opcodes and parallelism those systems offer.

Chuck Moore has made some CPUs which are really a nice fit for Forth, but I don't know if he considers them "Forth Machines" the way these computers were Lisp Machines.

<comment><USER2> Moore's little Forth CPUs were cute. They only needed about 4K gates. The original version got wrong answers on division if the divisor was odd, and they couldn't afford to redo the custom silicon, so it shipped that way, with errata.

Moore had an I/O system where the input device was three buttons, used in a chord fashion, and the output was color NTSC generated entirely by software by the Forth chip. The whole thing was a beautiful exercise in minimalism. As ICs got more gates, it was pointless.

As for most hardware being devoted to C, that is true to some extent. C assumes you have one big flat address space. That killed off segmented-memory machines (IA-32 can do some interesting things in segmented mode, but nobody uses those features). It also killed off stack machines such as old Burroughs mainframes, where addresses are more like directory paths ("process 22/array 15/subscript 10", with hardware subscript checking and hardware support for array growth and moving). The price we pay for this is decade after decade of buffer overflow security flaws.

<comment><USER4> > C assumes you have one big flat address space.

Which means you can't talk about caching in C. You used to be able to declare that some variables would live in registers, but if you try that now, compilers ignore you. (As they should, given how easy register scheduling is for a compiler.) But not being able to declare things about cache can hurt you in some loops.

I agree that near and far pointers were a blot on C and it's good that _that_ mess is gone, but the "Big flat address space" is just as much an abstraction as "In-order execution", and C can't let you peel back the covers on either. (Assembly doesn't always let you peel back the covers, either, but that's another topic.)

</comment></comment></comment></comment></comment><comment><USER5> Skimming the table of contents you can see how this led directly to the Common Lisp specification. CL is a successful narrowing of LM; all the chapters that didn't make the cut appear to be outdated cruft, or outside the scope of a portable standard, and currently either unnecessary, or provided by a shim 3rd party library. Well done, CL standardization committee!

<comment><USER6> The version of Lisp Machine Lisp documented in this manual implements Common Lisp.

Have a look at version 4 or 5 (on bitsavers) to get a feel for the precursor Lisp.

<comment><USER7> > The version of Lisp Machine Lisp (LML) documented in this manual implements > Common Lisp.

Not exactly. There is both Common Lisp and Lisp Machine Lisp. LML is the default language, but one can tell it to use CL. One can als call functions back and forth. They are two different Lisp dialects side by side.

Example: There is the LML DEFSTRUCT and the Common Lisp version CLI:DEFSTRUCT.

Later Symbolics made Symbolics Common Lisp and made it the default dialect on the machine. It then also supported Zetalisp (aka Lisp Machine Lisp), CLTL1 and some kind of ANSI COMMON Lisp.

</comment></comment></comment><comment><USER8> My friend Nick P. made me a wonderful orange "LISP CHINE NUAL" t-shirt -- he had to custom silk screen it to get the letters wrapped around the side properly!

I was wearing in in Dappermarkt in Amsterdam during Queen's Day (a day when everybody's supposed to wear orange), and some guy actually recognized it and came up and complemented me on it! I guessed that he must be a graduate student studying AI, and it turns out that he was, of course!

[https://www.facebook.com/photo.php?fbid=74206161754&set=t.50...](https://www.facebook.com/photo.php?fbid=74206161754&set=t.502061754&type=3&permPage=1)

Here's another photo, where I'm competing with Howard Rheingold and James Burke for the Loudest Shirt on the Boat Award:

[https://www.facebook.com/photo.php?fbid=83379246754&set=t.50...](https://www.facebook.com/photo.php?fbid=83379246754&set=t.502061754&type=3&permPage=1)</comment>


Ask YC: Open source HTML to PDF - <AUTHOR>

Any suggestions for a solution to producing PDF's automatically from dynamic output?<p>Something preferably able to produce output similar to manually "Printing to PDF" from a browser window... <comment><USER2> Depending on your use case, check out [Sphinx][1], which is used for the new [Python documentation][2]. Basically, you write your documentation in [reStructuredText][3] which Sphinx then renders into HTML or LaTeX. The LaTeX output can be trivially turned into a PDF and [looks great][4].

[1]: <http://sphinx.pocoo.org/>

[2]: <http://docs.python.org/>

[3]: <http://docutils.sourceforge.net/rst.html>

[4]: <http://sphinx.pocoo.org/sphinx.pdf>

</comment><comment><USER3> Flying Saucer (<https://xhtmlrenderer.dev.java.net/>) is a pretty badass solution for what you want. It's a Java library, but you can use it in Ruby or any other language that runs on the JVM pretty easily.

<comment><AUTHOR> This is impressive, thank you. Gotta love well-formed XHTML.

</comment></comment><comment><USER4> I'm not sure what your use case is, but we've had much better luck with generating LaTeX code that we compile to PDF (the trivial step) than with doing HTML to PDF.

<comment><AUTHOR> My use case is basically taking an automated web-based daily newsletter (html, css, images) and generating a PDF

</comment></comment><comment><USER5> <http://www.xhtml2pdf.com/>

Perhaps this python library?

</comment><comment><USER6> there are a good handful of options. what language would you prefer? or do you want some separate system?

<comment><AUTHOR> It doesn't necessarily need to be built into the language that the content is being produced in. I came across HTMLDOC, for example. I suppose anything that can run on linux.</comment></comment>


UX Ideas for GrubWithUs - <AUTHOR> http://blog.jasonshah.org/post/17268576222/ux-for-grubwithus-a-tale-of-a-hungry-man-looking-to

<comment><USER2> Good analysis. It's great that to be reminded that for as awesome as GrubWithUs seems at first glance, there are always ways it can be improved.

<comment><AUTHOR> Thanks, Greattypo! GWU is a great product for sure, but you're right, there's always room for improvement. Even with my own blog, the main content area needs to be larger, photos need to be easier to view, etc.

I think critiquing some of the leading startups really forces us to 1) appreciate best practices 2) think more critically about how to be better designers beyond picking the low hanging fruit.

</comment></comment><comment><USER3> I agree with the Grub Now button looking too much like a random image (or an ad) to be the main Call to Action button.

I think removing the bite-mark and adding it as an onclick effect would do lots for UX.

<comment><AUTHOR> Agreed, Rob!

I think on a higher level this also brings up the more general question of whether a unique, well styled UI element adds or detracts value. It is subjective and varies on a case by case basis. Perhaps a lesson to extrapolate is that taking such a risk with your primary action button can swing conversions a lot whereas taking that risk elsewhere on the page (eg Mailchimp's quirky status messages) adds personality and may help conversions without betting the house.

It would be great to compile a list or visualization of successful UI quirks.</comment></comment>


Anatomy of a Feature: Push Notification Architecture - <AUTHOR> http://khanlou.com/2014/09/anatomy-of-a-feature-push-notifications/

<comment><USER2> Great article although I think it's worth mentioning the pattern of checking the iOS system version for method availability (e.g., `if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)`) should be avoided.

I think it's a better practice to query the object in question if it responds to the desired selector. This way, if the method ever goes away (in say iOS 10), you won't send the wrong message to the object/class.</comment>


Crazy Details in Half-Life 2 - <AUTHOR> https://www.youtube.com/watch?v=SkSqM192cys <comment><AUTHOR> At 14:35, city 17 logo is '17' in an alien number system.</comment>


Apple: No Search Results for 'Wozniak' - <AUTHOR> http://www.apple.com/search/?q=wozniak

<comment><AUTHOR> No "history of Apple" page? He may not have played an active role for a long time, but it seems a sad property of corporations that they constantly whitewash the past.

Like: [http://www8.hp.com/us/en/hp-information/about- hp/history/his...](http://www8.hp.com/us/en/hp-information/about- hp/history/history.html)

<comment><USER4> Can you explain the relevance of the HP link? I'm not getting it. Is it supposed to be a positive example?

<comment><USER5> What's not to get ? HP and Apple are giant Silicon Valley companies started by two dudes in a garage. HP recognises/celebrates this on its website. Apple not so much.

</comment></comment></comment><comment><USER6> Well, there is for a David Wozniak, but I know you mean Steve :-)

What roles does Woz really have now-a-days in Apple's day to day?

Having met him a few times, he is amazing and for other things besides Apple too.

</comment><comment><USER7> I am getting three results for Wozniak:

1: Secure Coding Guide: Designing Secure User Interfaces

2: Starbuck - Movie Trailers - <USER3>

3: Showtimes - Starbuck - Movie Trailers - <USER3>

</comment><comment><USER8> It's times like these I wish HN had a downvote button. If the statement you're trying to make is that Wozniak is ignored and not given enough credit in the current Apple world, then come out and say that. Not this round about try-to- stir-some-shit bs.

<comment><USER9> This _is_ coming out and saying that.</comment></comment>


Tech Incubator Faces Challenges of Tackling Sexual Harassment Among Investors - <AUTHOR> http://www.npr.org/sections/alltechconsidered/2017/07/31/540578895/tech-incubator-faces-challenges-of-tackling-sexual-harassment-among-investors <comment><USER2> > "In the same way companies have HR departments and have a place to report > inappropriate behavior," Altman says, "the people in our program need a > place to report inappropriate behavior and I don't think that should be a > controversial thing." \- sama

Bingo - this is it exactly.</comment>


Godel's 2nd Incompleteness Theorem Explained in Words of One Syllable - <AUTHOR> http://www2.kenyon.edu/Depts/Math/Milnikel/boolos-godel.pdf

<comment><USER2> A math professor was giving a talk and stated that "given a false premise one can prove anything is true". A member of the audience then interrupted with "Ok then, 1 + 1 = 3, now prove that you are the pope."

The professor thought for a moment and began, "If 1 + 1 = 3 then 1 = 2 and since the pope and I are two then the pope and I are one."

<comment><USER3> Bertrand Russell is the Pope

"The story goes that Bertrand Russell, in a lecture on logic, mentioned that in the sense of material implication, a false proposition implies any proposition. ..."

[http://www.nku.edu/~longa/classes/mat385_resources/docs/russ...](http://www.nku.edu/~longa/classes/mat385_resources/docs/russellpope.html)

<comment><USER4> Russell's paradox?

<comment><USER5> Cute, but that's something different again.

<comment><USER4> My bad... This is new to me. What is the difference?

<comment><USER5> Russell's Paradox is the statement "Does the set of all sets that don't contain themselves contain itself?" (Parse that as "The set of (all sets that don't contain themselves)".)

Now, obviously, the set of all sets contains itself, and in naïve set theory that isn't a problem: In naïve set theory, a set is just an unordered collection of any objects you can define; a set that contains itself poses no logical problems in an of itself.

However, once you define the set of "all sets that don't contain themselves", you run into an immediate problem: If it does not contain itself, it must, in which case it cannot, and so on, in a neat infinite recursion.

This is a _real_ paradox, also known as a falsidical paradox, and a _real_ paradox indicates a _deep_ problem with the set of axioms it was derived from. (Banach-Tarski is _not_ a real paradox by my definition; it is merely called a paradox because it is a counter-intuitive result.) Russell's Paradox blew naïve set theory out of the water; later set theories, such as Zermelo- Fraenkel (more commonly just called ZF), were very careful to not allow sets to contain themselves.

</comment></comment></comment></comment></comment></comment><comment><USER6> Eh, this doesn't really explain Godel's 2nd Incompleteness theorem; it only describes it in a roundabout way. The entire piece could be shortened down to: in math, all false statements are possible (i.e. their impossibility cannot be proved), and it doesn't go into any reasoning behind it.

I'm not sure about Godel's 2nd, but his 1st theorem can be described and explained with one simple sentence: this statement cannot be proven. If it is proven, then a false statement is proven. If it cannot be proven, then the proving system is flawed.

<comment><USER7> I like George Boolos' explanation because it plays with my paradoxic sensebrain, with something like poetry. Why not call it a poem?

But I like your explanations too.

However, I think that the Goedel card is counter-played well by the Schrodinger one. "This statement cannot be proven" is only a false statement because you inspect it with your system. It might otherwise be completely true.

<comment><USER8> Ah, but "true" and "proven true" are two different things!

I'm sensing an epistemology thread developing...

<comment><USER7> Not so fast!

I am taking issue with the so-called "falsity" of the "this statement is false". If you imagine that statement, and imagine that what you imagine is probable in the extreme, outside of your imagination, free, and unmolested by your probings, then "this statement is false" is always, only, incidental.

And don't come back saying saying "false" and "proven false" are different. I can compare strings!

<comment><USER8> That's the thing though... I interpreted it as being a true statement, but one that cannot be "proven" to be true. I merely possess the strong belief that it is true.

Is your argument that the statement could possibly be false? Otherwise we're already in agreement... Nobody is suggesting the statement is false (I think).

Edit: to clarify, the statement in question is "this statement cannot be proven," not "this statement is false."

<comment><USER7> You are right about the statement in question. I got mixed up, but I think the principal of "same difference" applies :D

He says, "If it [the statement] is proven, then a _false_ statement is proven." (Proven true or false?)

I am not interpreting the statement "this statement cannot be proven" as true, as you do, or false.

What I argue is that one's interpretation has an effect, without which the statement is neither true nor false, but, as I claim, incidental. We can imagine the statement, but what we imagine is not the statement, even if it looks and smells like it.

Thus, the Schrodinger Card trumps the Goedel. The trick here is that I am standing outside of "the system", not permitting myself to enter paradox land. If you so much as look at me, I'll get sucked in.

</comment></comment></comment></comment></comment></comment><comment><USER9> This statement is false. True or false?

Does the set of all sets that don't contain themselves contain itself?

<comment><USER10> What's even crazier to me is that there are statements that aren't self- referential that are both not true and not false at the same time. For instance the continuum hypothesis [1], or anything to do with the axiom of choice, like the trippy Banach-Tarski paradox [2].

[1] <http://en.wikipedia.org/wiki/Continuum_hypothesis>

[2] <http://en.wikipedia.org/wiki/Banach%E2%80%93Tarski_paradox>

<comment><USER11> The continuum hypothesis sort of fits your description, but Banach-Tarski does not. If you take the axiom of choice in your system, Banach-Tarski is simply true (in that the described construction will create two spheres out of one). If you do not take the axiom of choice, it is simply false (in that it can not be defined). (And I'm sure somebody somewhere has worked out some sort of in- between state there, but let's keep it simple.)

While it's a very interesting thing to think about, there is one sense in which the paradox is trivially resolvable; while the axiom of choice may make sense in mathematics, it almost certainly is never used by the real universe, and you _certainly_ can not construct two real spherical shells made of atoms of the same size as one original spherical shell in the real world. (Whether the universe is continuous is an open problem, but we _know_ matter isn't.) A great deal of the reason why the mind rebels at the Banach-Tarski paradox is that it is built on a thoroughly aphysical axiom; that the aphysical axiom permits aphysical (and therefore counterintuitive) results is not _that_ surprising.

By no means is that a criticism of BT, it is simply its nature. My personal position on constructivist vs platonic vs. blah blah blah is that in math, as long as you specify which axiom set you are using up front, there is nothing to be emotional about. (Except that I will reserve a special place of interest for whatever mathematics it turns out to be that precisely represents the real world. Alas, this is still a work in progress, though we can point to at least some characteristics of it.)

<comment><USER10> "If you take the axiom of choice in your system, Banach-Tarski is simply true"

\- The exact same is true if you take the continuum hypothesis as an axiom. Both the axiom of choice and the continuum hypothesis are independent of the other standard ZF axioms

"If you do not take the axiom of choice, it is simply false"

\- That is incorrect. It is only independent. To say it is false, another axiom(s) would need to contradict it.

"while the axiom of choice may make sense in mathematics, it almost certainly is never used by the real universe"

\- neither are the real numbers. would you like to claim that pi, or the square root of 2, for that matter, also don't exist? How about the number 1?

</comment></comment></comment></comment><comment><USER4> So...

      If it can be proved that it can't be proved that two plus two
      is five, then it can be proved as well that two plus two is
      five, and math is a lot of bunk.

Then:

      p: it can't be proved that 2 + 2 = 5
      q: it can be proved that it can't be proved that 2 + 2 = 5

      q → ¬p

Thus if it can be proved that it can't be proved that 2 + 2 = 5 then it can be proved that 2 + 2 = 5. (i.e. when q is true, p cannot be true)

Sorry, had to do this for myself because I'm just starting a course in discrete mathematics!

</comment><comment><USER12> I like the way this explanation considers it a first class possibility that "math is a lot of bunk".

<comment><USER13> This is a bit ingenious, it should actually be "the theory in which we are working is a lot of bunk" (theory refers to a set of axioms), and maths is a lot broader than one specific theory.

That is, if one proves Peano arithmetic[1] is inconsistent (which would really suck), this would not effect the consistency or otherwise of other independent theories, like, for example, Presburger arithmetic[2] which has actually been proved to be consistent.

[1]: <https://en.wikipedia.org/wiki/Peano_arithmetic> [2]: <https://en.wikipedia.org/wiki/Presburger_arithmetic>

<comment><USER14> Peano arithmetic has also been proved consistent (by Gödel himself, Gentzen, and others) but all of the proofs necessarily use methods slightly beyond Peano arithmetic. Gentzen proved the consistency of PA from primitive recursive arithmetic (a much weaker theory than PA, lacking quantifiers) combined with transfinite induction up to a particular ordinal. Gentzen also proved that this is more-or-less the best possible.

Similarly, since Presburger arithmetic can't even express its own consistency, never mind attempt to prove it, any proof of the consistency of Presburger arithmetic must use methods beyond Presburger arithmetic, which will probably subsume Presburger Arithmetic itself.

While formal consistency results have some meaningful technical consequences, from afar they often give off an aire of preaching to the converted. Anyone who accepts transfinite induction up to the ordinal in Gentzen's proof will probably have no problem accepting PA itself.

</comment></comment></comment><comment><USER15> 2 + 2 = 5; for large values of 2.

<comment><USER16> Or Python evil. (<https://gist.github.com/1208215>)

<comment><USER13> Or Haskell.

      let 2+2=5 in 2 + 2

(Significantly less mind-blowing though.)

<comment><USER7> interesting and funny though for somebody who doesn't know Haskell

</comment></comment></comment></comment><comment><USER17> Reminds me of this classic: <http://www.lel.ed.ac.uk/~gpullum/loopsnoop.html>

</comment><comment><USER18> I suddenly have a very strong urge to read Alice in Wonderland.

</comment><comment><USER19> Ahh but can it be proved that language can prove anything?

<comment><USER20> Well... the article attempts to "explain" rather than to "prove".

</comment></comment><comment><USER21> Unfortunately, this write-up is a load of irresponsible crap, because it can be proven that it can't be proven that two plus two equals five.

This is a load of ivory-tower hogwash, precisely why people get turned away from math and philosophy.

<comment><USER4> Can you supply us the proof that it can't be proven that two plus two equals five? Even a citation would be fine. Thanks!

<comment><USER22> The Math 101 'proof':

Assume it can be proven that 2 + 2 = 5.

Then 2 + 2 = 5.

It can be proven that 2 + 2 = 4.

The closure axiom of addition states that the expression 2 + 2 is a unique number.

4 != 5.

Therefore it can't be proven that 2 + 2 = 5.

\-----

I'm sure it can't be that simple, but logically I can't see a reason why not.

<comment><USER23> You haven't proven that it can't be proven that 2 + 2 = 5. All you have proven is that if 2 + 2 = 5, then mathematics are inconsistent. Which they could be; you can't just assume math and logic are consistent.

<comment><USER22> > you can't just assume math and logic are consistent.

What a bunch of bollocks.

<comment><USER21> Precisely my point. Wow, that guy really stepped in it.

Claiming that logic isn't valid is worse than a logical contradiction, because if logic isn't valid, you can't claim _anything_.

<comment><USER4> Nobody ever said logic isn't valid. We're talking about consistency.

<comment><USER21> If logic isn't consistent, then logic isn't valid.

I'm not assuming specialized definitions of "consistency" and "validity" here, just your normal everyday layman's usage.

<comment><USER4> Well, you were responding to someone who was using the correct formal terms. You, after all, don't dispute the second theorem - but given it uses the term "consistent" you can hardly complain when someone makes their argument using the same terminology as the theorem you agree with!

Interested in what you define "consistent" and "valid" as in laymans terms though.</comment></comment></comment></comment></comment></comment></comment></comment></comment>


Understanding vipassana meditation - <AUTHOR> http://lesswrong.com/lw/2rd/understanding_vipassana_meditation/

<comment><USER2> Having done the 10 day basic vipassana course just after high school (had to find a way to control my restless mind), can't say if it helped with any of those 4 points mentioned in the article. But, gosh, it helped me get some sleep. Finally, I could sleep in the nights instead of just staring at the fan. I could sleep wherever and whenever I wanted.

Of course, its different now, that I consider sleep a necessary evil - such a waste of life. If only I could do away with it....</comment>


Hard comp-fi reading list - <AUTHOR> https://fiftysevendegreesofrad.github.io/hard-comp-fi-fiction-list/ <comment><USER4> I would add: We Are Legion (We Are Bob) by Dennis E. Taylor. Premise is a software engineer is killed by a car on his first day of retirement and wakes up 300 years in the future as an AI consciousness. It has absolutely loving attention to detail regarding both software and physics sci-fi concerns.

I'd also honorable mention Foucault's Pendulum by Uberto Eco, which has very little comp-sci stuff in it overall, but notably also has the search for permutations of the names of God mentioned in the article, complete with a BASIC program to do it in the text!

<comment><USER5> Fark yeah, wish the author would finish the series.* He left readers hanging so caveat emptor. Even so I can recommend the audio books as well. Great for doing laundry, mowing the lawn, etc.

May as well copy the last update from Dennis E. Taylor here since I'm not alone in wishing we had more Bobiverse novels.

[http://dennisetaylor.org/2019/01/06/outland-is-in-the- can/](http://dennisetaylor.org/2019/01/06/outland-is-in-the-can/)

>And this means that I'm now back to writing the next Bobiverse book(s), working title "The Search for Bender." I say book(s) because it looks like it's going to be a duology. And spoiler alert — the end of book one will be a cliff-hanger, and a doozy. Bob and the Bill Wonder will be tied to the front of a Zamboni, while the Penguin and his henchmen–er, no, wait, I'm having a flashback. Sorry.

>So stay tuned–same Bob-time, same Bob-channel–for more updates as they happen.

<comment><USER6> That is exciting news about the bobiverse. But what do you mean by "wish the author would finish the series"? After finishing the last one, I felt satisfied with the ending and thought that all the loose ends had been tied up.

<comment><USER5> If I remember correctly there are at least two Big Bad Threats still out in the universe.

</comment></comment></comment></comment><comment><USER7> David Moles's 'Down And Out In The Magic Kingdom' [1]:

[https://dmoles.files.wordpress.com/2017/01/down-and- out.pdf](https://dmoles.files.wordpress.com/2017/01/down-and-out.pdf)

The final showdown is between object-oriented and functional programs, and the OO programs have a hard time because the functional programs can use the state monad. I am not making this up.

[1] Yes, David Moles's 'Down And Out In The Magic Kingdom', not Cory Doctorow's 'Down And Out In The Magic Kingdom' [2]; Cory Doctorow had a bit of a project of writing stories with titles reused from previous works - <USER2> example, his 'True Names' [3] is not Vernor Vinge's 'True Names' [4] [5] - <USER3> David Moles thought that what was sauce for the goose may as well be sauce for the gander

[2] [https://craphound.com/down/download/](https://craphound.com/down/download/)

[3] [https://craphound.com/news/2008/03/13/true-names- part-01/](https://craphound.com/news/2008/03/13/true-names-part-01/)

[4] [http://www.scotswolf.com/TRUENAMES.pdf](http://www.scotswolf.com/TRUENAMES.pdf) [6]

[5] Vernor Vinge's 'True Names' [4] is really worth a read too - a neglected early work of cyberpunk, beats the pants off Neuromancer if you ask me.

[6] Yes, that is a pirate link, but the whole book is about a digital world at the mercy of hackers; you made your bed, Vernor, now you get to lie in it.

<comment><USER8> I'm going to second 'True Names'. I think Vinge excels at suggesting an idea with just the right amount of vagueness that it makes the imagination run wild filling in the details.

</comment></comment><comment><USER9> I would add another Neal Stephenson: Cryptonomicon

[https://en.wikipedia.org/wiki/Cryptonomicon](https://en.wikipedia.org/wiki/Cryptonomicon)

A collection of (mostly) spoiler-free quotes to emphasise my point: [https://en.wikiquote.org/wiki/Cryptonomicon](https://en.wikiquote.org/wiki/Cryptonomicon)

<comment><USER10> Cryptonomicon is on there now; hilariously, it's categorized as "short" in the title.....

<comment><USER11> Yeah "short" at 918 pages or so.

</comment></comment></comment><comment><USER12> Would add Permutation City. Shades of the matrix, anticipation of public clouds/floating markets for compute(spot instances), interesting 'what is consciousness' re: software copies of a person's mind, etc.

[https://en.wikipedia.org/wiki/Permutation_City](https://en.wikipedia.org/wiki/Permutation_City)

<comment><USER13> I read Permutation City a few years ago now. It's certainly a very interesting book that I'd highly recommend. Greg Egan is very much an "ideas" man though. I find that his narratives while intellectually stimulating sometimes don't translate well to a novel format. I find Egan's short stories to be a delight (check out Axiomatic if you haven't) but his novels can be a real slog if you are not a subject matter expert.

Neal Stephenson writes in the same "genre" but he has a much more approachable style while not sacrificing on any "hard" elements.

My recommendation for anybody who's never read Egan's stuff is to start with his short-stories first.

<comment><USER14> I'm a huge fan of Egan's work, but his writing definitely has its strengths and weaknesses.

In addition to being an "ideas man", I think his _prose_ is generally excellent. He has a real talent for crafting sentences that are clear, concise, descriptive, and often evocative. (He's mentioned that outside of his writing career, he's a programmer, and I get the sense that any technical documentation he produced would be a joy to read.) It's a testament to his skill that his work is as comprehensible as it is.

The downside is that he has a tendency to write character dialogue the same way he writes everything else. Every sentence is carefully constructed to advance an argument, or to reveal a specific detail about a character's viewpoint. The characters end up feeling less like fully-realized people, and more like mouthpieces in a Socratic dialogue.

I agree with the recommendation to start with his short stories. Of the ones that are legally available online, I'd suggest "Singleton" ([http://www.gregegan.net/MISC/SINGLETON/Singleton.html](http://www.gregegan.net/MISC/SINGLETON/Singleton.html)) as a good starting point.

<comment><USER15> I don't know why, I thought Egan was a physics teacher.

<comment><USER16> Well, he kind of is.

(In the sense that a lot of his novels are, at heart, mostly physics exposition, whether of real or imaginary physics.)

</comment></comment></comment></comment></comment><comment><USER17> Off to Be the Wizard by Scott Mayer.

Hear me out. This is a comedy novel in the vein of Pratchett or Douglas Adams. But the central conceit is that a hacker finds a large configuration file on a system he hacks into. He finds his name in the file, and information about himself, including his x,y,z co-ordinates. He discovers that if he changes those co-ordinates, he teleports in reality. He has infact found the configuration file that runs our reality. He rapidly gets himself into legal trouble and so - to escape - teleports himself to England in the Middle Ages to pose as a Wizard.

Its a very silly novel but programming takes center stage and - if you accept the central conceit of the configuration file - the programming is all realistic.

Recommended. Scott Mayer is also a cartoonist who does the long running 'Basic Instructions' webcomic.

<comment><USER18> On a similar theme `Wiz`, a hacker ends up in fantasy-land where programming can create magic:

[https://www.goodreads.com/series/43084-wiz](https://www.goodreads.com/series/43084-wiz)

<comment><AUTHOR> Also in the list already :)

</comment></comment></comment><comment><USER19> _Daemon_ by Daniel Suarez (a database engineer) definitely deserves a place on this list. It starts with the death of a famed and wealthy game engine programmer due to brain cancer... and develops from there. I don't want to spoil it.

[https://en.wikipedia.org/wiki/Daemon_(novel_series)?wprov=sf...](https://en.wikipedia.org/wiki/Daemon_\(novel_series\)?wprov=sfti1)

<comment><USER20> I unequivocally recommend Daemon. If you liked reading The Martian, you might like Daemon. They both read very much like a screenplay.

The Martian is a great book and a great movie, and if I didn't know which one came first I would be hard put to say which is an adaptation of which. I don't know if Suarez is in talks with anybody to get Daemon produced as a feature film, but if he's not, he ought to be.

The sequel / conclusion, Freedom, is a very different novel, but also compelling and brings a decent enough end to the themes from Daemon.

<comment><USER19> According to the Wikipedia page I provided a link to, the rights to make a movie of _Daemon_ were optioned but "likely reverted" by 2013.

Personally, I found _Freedom™_ to be a much weaker endeavour and... prefer to forget about it.

</comment></comment></comment><comment><USER21> Vernon Vinge's "A Deepness in the Sky". Includes very well put thoughts on the far future of software. Also his "A Fire Upon the Deep" with a fascinating take on AI, cryptography and more in a slightly alternative universe.

<comment><USER22> [Mild spoiler]

I would love it if that series ever got finished. We're stuck on Tines world with the blight's remnant fleet approaching...

<comment><USER21> For me, I would like to have the Focus available, lock up a few hundred volunteers somewhere for a few months and have thew rewrite the Linux kernel in Rust or something...

"A Fire Upon the Deep" and its differentiation are referenced in this interesting article [0].

[0] [https://ristret.com/s/qk8wpt/philosophy_computational_comple...](https://ristret.com/s/qk8wpt/philosophy_computational_complexity)

</comment></comment></comment><comment><USER23> Ted Chiang's _The Lifecycle of Software Objects_. What happens when support for the platform for your artificial mind is deprecated? (or in this case, your child's). Warning: heartbreaking.

<comment><USER24> This is included in "Exhalation: Stories", a compilation of Ted Chiang stories. They are all very different and very good.

<comment><USER23> His first collection, _Stories of Your Life and Others_ is also excellent. They don't technically fit the description of hard comp-fi, but they have a similar sensibility, even when they're dealing with magic and religion (which makes sense--his day job is technical writing).

</comment></comment></comment><comment><USER25> Would like to mention the Quantum Thief trilogy by Hannu Rajaniemi. These books are very dense with interesting concepts. In one section, the people who live on Mars have a privacy organ that automatically blurs out all strangers unless they make an agreement to exchange information. There are 'agoras' where they are unprotected. The idea goes into the cultural ramifications of this, it's incredibly interesting reading, but does not hold your hand at all.

</comment><comment><USER26> I'm a little surprised not to see any of William Hertling's series on this list

[https://en.wikipedia.org/wiki/William_Hertling](https://en.wikipedia.org/wiki/William_Hertling)

The first one is essentially about software engineers working at a thinly- veiled Google who accidentally develop sentient AI.

<comment><USER27> Yeah, upvote on that. You can not get more Programming than from Mr. Hertling.

I Also like the hacking and raspberrypi networking on: [https://www.goodreads.com/book/show/30658546-kill- process](https://www.goodreads.com/book/show/30658546-kill-process)

Thanks for that William!

</comment></comment><comment><USER28> I'd add "When Harlie was One" by David Gerrold to that list: [https://en.wikipedia.org/wiki/When_HARLIE_Was_One](https://en.wikipedia.org/wiki/When_HARLIE_Was_One)

</comment><comment><USER29> Seems like Neuromancer is getting some hate. Considering this is 'hacker' news, it iz worth a mention that said book did an excellent job illustrating the compound approach to security necessary in a networked world. Second, the portrayal of a hacker as a tool user 'piloting' stolen attack software rather than an academic attack developer is something a large portion of the world would be wise to absorb.

Comp-fi, maybe not. A landmark work regarding information security, possibly.

<comment><USER30> I think a lot of people are critical of Gibson for not knowing enough about computers (he did write Neuromancer on a manual typewriter), but I think that misses the point - he had a poet's eye for where technology could go. Of course, on the other side, a lot of people also seem to think he was recommending a dystopian future, instead trying to warn against one... (admittedly by making it beautiful and dangerous he straddles both).

</comment></comment><comment><USER31> This Perfect Day, by Ira Levin. Story of a man's repeated attempts to escape a benevolent automated dictatorship where everything is controlled and everyone is kept sedated.

The Moon Is A Harsh Mistress by Robert Heinlein - The moon is a colony of misfits and is suffering increasingly unreasonable demands from earth (1776 in space). One of the computer systems managing part of the colony is discovered to be sentient and is gradually befriended by a sysadmin.

<comment><USER32> Note: Thpoilerth.

I would disagree wih _The Moon is a Harsh Mistress_. The sentient computer just appears, solves the problem facing the Lunar residents, and disappears. Heinlein never explores any of the implications of a "sentient computer", how it just shows up, or what the effects following the Lunar revolution would be.

<comment><USER33> He hypothesizes about it briefly. You're lead to believe that consciousness is an rare but possible emergent behavior of a system, given sufficient capacity. For example, from chapter 1 -- "Human brain has around ten-to-the-tenth neurons. By third year Mike had better than one and a half times that number of neuristors. And woke up."

But yes, I agree that generally the story is not about computer technology. Science in general is very important to the plot, but not computer science.

</comment></comment></comment><comment><USER34> I see Vernor Vinge mentioned in the comments here. His "Raindows End" definitely needs to make the list.

</comment><comment><USER35> I'm about a third of the way through Daemon by Daniel Suarez, and enjoying it immensely. Nothing has made me cringe yet.

Unlike Frederick Forsyth's "The Fox", which I had to put down after about three chapters, as it appears he used a 16yo BTEC ICT student as his tech expert.

As others have commented, Cryptonomicon is one of my favorite books, as is most of the Stephenson catalogue. He certainly know how to set up mind blowing worlds, plots and characters, even if he tends to leave the reader a little unfulfilled when the story abruptly ends.

Love all the recommendations in this thread. You've given me months worth of reading material to start exploring.

Thanks.

</comment><comment><USER36> He turned to face the machine. "Is there a God?"

The mighty voice answered without hesitation, without the clicking of a single relay.

"Yes, _now_ there is a God."

-Fredric Brown, "Answer"

Terrific list and additions (now my afternoon is now shot)!

While I love the more experimental hard works, I think stories such as Asimovs "Last Question", Campbell's "Twilight" and Forester's "The Machine Stops", dating back before the vacuum tube era, tended to be more memorable, more vivid and more engaging philosophically.

</comment><comment><USER30> Lots of good ones on here already, surprised not to see anything from Ken MacLeod, quite a few of his SF books have very CS themes, for example The Restoration Game[1].

1: [https://en.wikipedia.org/wiki/The_Restoration_Game](https://en.wikipedia.org/wiki/The_Restoration_Game)

<comment> nils-m-holm There is a lot of CS hidden in the Fall Revolution series, too: The Star Fraction, The Cassini Division, The Stone Canal, and The Sky Road. All of them worth reading and reading again! I am also quite surprised that MacLeod does not get _much_ more attention! Such a brilliant author!

Want to read about a character hacking itself out of a virtual reality? An assault rifle with a built-in AI that refuses to kill? MacLeod has lots of surprising ideas and knows how to tell a convincing story.

Not affiliated, just a fan! :)

<comment><USER30> Absolutely, I was thinking about the Fast Folk from those books too (some readers here may like those more - or less - as they're more space-opera- esque, while Restoration Game is a sort of hybrid spy/SF novel).

</comment></comment></comment><comment><USER37> While we're brainstorming, I'd add _Rainbows End_ (Vernor Vinge) and _Halting State_ (Charles Stross).

<comment><USER38> i second _halting state_ - it was the first one that came to my mind.

<comment><USER39> And its sequel, _Rule 34_.

</comment></comment></comment><comment><USER40> I'd certainly endorse the Adolescence of P1, and Fire upon the Deep. There is course Colossus the Forbin Project which is also pretty canonical.

<comment><USER41> I came here to recommend Adolescence of P1.

It was many years ago I read it and I wasn't sure how it would stand up on a reread, but the fact that it has left a strong impression speaks well for it.

1970s depiction of an AI arising from whatever passed for the Internet back then.

As someone points out in the reviews here, this predates more famous depictions on similar subjects, like Wargames.

[https://www.goodreads.com/book/show/1414021.The_Adolescence_...](https://www.goodreads.com/book/show/1414021.The_Adolescence_of_P_1)

</comment></comment><comment> lachlan-sneff Accelerando by Charles Stross is a good one.

</comment><comment><USER7> A friend recommended this to me years ago, and i still haven't got round to reading it:

[http://localroger.com/prime-intellect/](http://localroger.com/prime- intellect/)

</comment><comment><USER42> "Colossus: The Forbin Project" by DF Jones.

[https://www.amazon.com/Colossus-The-Forbin- Project/dp/B0018S...](https://www.amazon.com/Colossus-The-Forbin- Project/dp/B0018S012U)

Made into a fine movie of the same name.

"The Two Faces of Tomorrow" by Hogan.

[https://www.amazon.com/The-Two-Faces-of- Tomorrow/dp/B00BC0P5...](https://www.amazon.com/The-Two-Faces-of- Tomorrow/dp/B00BC0P5UC)

</comment><comment><USER43> You should add

"Friendship Is Optimal" by Iceman

[https://www.fimfiction.net/story/62074/friendship-is- optimal](https://www.fimfiction.net/story/62074/friendship-is-optimal)

"The Cookie Monster" by Vernor Vinge

"Blood Music" by Greg Bear

"Permutation City" by Greg Egan

</comment><comment><USER44> I would add the "Stealing the Network" series. Hackers writing about hacking. More high tech than high literature though...

"Metamorphosis of Prime Intellect" another take on the singularity.

<comment><USER45> Absolutely. That and maybe also "The Art of Deception: Controlling the Human Element of Security" (Kevin Mitnick)

</comment></comment><comment><USER46> So much Neal Stepheson. REAMDE includes a MMORPG money laundering scheme as a centerpiece, Diamond Age sneaks in a tutorial on what Turing machines are.

<comment><USER47> And his latest book as well... Fall; or, Dodge in Hell. The book explores mind uploading to the Cloud from the perspective of Richard "Dodge" Forthrast, a character introduced in Stephenson's 2011 Reamde

<comment><USER48> Fall gets wacky as the book progresses.

</comment></comment></comment><comment><USER49> I'm surprised Snowcrasher is on there, but Cryptonomicon isn't; I'd put the latter as more hard Comp-fi than the prior even.

</comment><comment><USER50> Let's add one that nearly nobody has read: We Were Gods, by Alex Feinman. [https://alexfeinman.net/#wwg-details](https://alexfeinman.net/#wwg-details)

It contains a timing attack on a MMO VR game system, described in-game through ritual magic -- and it makes sense both as magic and as an exploit.

</comment><comment><USER51> Cory Doctorow's short story from 2002, "0wnz0red", about programmers who hack their own bodies don't need exercise and never get sick: [https://www.salon.com/2002/08/28/0wnz0red/](https://www.salon.com/2002/08/28/0wnz0red/)

</comment><comment><USER52> If we're opening up the floodgate of movies, I feel _WarGames_ really should be up there. IMO, it's just a fun movie all around, but it's definitely computer-fiction.

</comment><comment><USER53> I think the Otherland series by Tad Williams about VR should be definetely be on the list. And ready player one as well.

</comment><comment><USER54> Stanislav Lem is missing: the Cyberiad, tales of Pirx the pilot..

</comment><comment><USER55> I'm reminded of "hexing the technical interview", a sort story about a witch who uses clojure during a technical interview.

[https://aphyr.com/posts/341-hexing-the-technical- interview](https://aphyr.com/posts/341-hexing-the-technical-interview)

</comment><comment><USER56> I am stoked to see "The Adolescence of P-1" on the list. (In my more paranoid moments I have suspected it was _autobiographical_.)

I recently (finally) read "Gateway" and was surprised to discover that it's an AI story. The main character is (arguably) "Sigfrid" the AI psychoanalyst. "Gateway" is always presented as an alien-archeology adventure, but the Heechee are just a plot device, as is most of the plot. The actual story is about the AI trying to treat the messed-up human, but you wouldn't know it from e.g. the Wikipedia entry (warning, spoilers): [https://en.wikipedia.org/wiki/Gateway_(novel)](https://en.wikipedia.org/wiki/Gateway_\(novel\))

Should mention Larry Niven's magic stories.

Also, Vernor Vinge's "True Names".

</comment><comment><USER57> Others have already mentioned some good novels missing from the list, I'd add _Shockwave Rider_ by John Brunner. I'm not a fan of the politics in the novel, but the descriptions of computer networks, cracking and computer worms are pretty impressive for something written in the 1970s.

</comment><comment><USER58> I feel like [https://en.wikipedia.org/wiki/Neuromancer](https://en.wikipedia.org/wiki/Neuromancer) should be on there instead of The Matrix since it's actually a book.

<comment><USER4> Yeah, the computer stuff in it is pretty hand-wavey but it does an awesome job of creating memorable visuals out of totally abstract AI and network stuff. And definitely notable as the seemingly uncredited inspiration for the Matrix.

<comment><USER59> William Gibson didn't actually know much about computers or networks when he wrote Neuromancer (on a manual typewriter IIRC)... ironic given that he coined the word "cyberspace."

And as far as inspiration goes, it's worth noting that Blade Runner came out as William Gibson was finishing Neuromancer, and he almost gave up on it because he was afraid that by the time the book came out people would think he was ripping off the movie.

I don't think the Matrix needs to "credit" Neuromancer as an inspiration, though. The Matrix draws from a lot of sources, but being cyberpunk, inspiration from Neuromancer is a given.

<comment><USER4> Ah, fair enough. I guess it's just that the Matrix became popular with a much wider crowd who had never heard of Neuromancer and so weren't aware of the genre's existence or origins and thought it was more out of the blue than it really was.

Interesting about the connection to Blade Runner, too.

</comment></comment></comment></comment><comment><USER60> Greg Egan deserves a mention here....

([https://www.gregegan.net/](https://www.gregegan.net/))

</comment><comment><USER61> The three-body problem (Cixin Liu). Sci-fi with a heavy dose of comp sci.

</comment><comment><USER62> Ramez Naam - Nexus: one of the most detailed hard comp books I've read.

<comment><USER63> Indeed, I enjoyed that trilogy a lot more than I had expected I would.

Oddly, the thing I think about most nowadays is I think in the second or third book, their methods for facial detection evasion with the face paint. Also relevant nowadays is the idea of a backdoor to the encryption which allows the characters to do a lot of good, but which obviously comes with downsides (main focus of the second book)

The whole embedded operating system in your brain thing was interesting, but the author's secondary ideas are even more interesting and relevant.

It's also the only sci-fi series I've seen that takes China seriously.

The beginning of the first book might be a bit of a turn off, but stick with it, the series is definitely well worth a read!

</comment></comment><comment><USER64> Since it hasn't been mentioned in this thread, Digital Fortress is nothing special. If you've read one Dan Brown book, you've read them all: the protagonist makes some awe-inspiring, creepy discovery, stuff happens, finally it turns out that the whole thing was just an elaborate setup by one of the other characters, and not actually new science. I've read four of his books and felt cheated every time.

I do echo all of the Greg Egan recommendations here.

</comment><comment><USER65> I'd recommend Richard Powers' Galatea 2.2. Another "AI by accident" novel, but one with a backdrop of mid 1990s CS as the author was a visiting professor at the University of Illinois during the time when NCSA Mosaic (arguably the first fully graphical web browser) was being developed.

[https://en.wikipedia.org/wiki/Galatea_2.2](https://en.wikipedia.org/wiki/Galatea_2.2)

</comment><comment><USER66> I would add "The Bug" by Ellen Ullman. A remarkable portrayal of software development in fiction. A gift.

</comment><comment><USER59> If the Matrix counts, then the anime Serial Experiments Lain counts even more. It has plenty of "comp-fi" credentials[0], and it plays heavily with the themes of online versus real identity, and the ways they can overlap and even overwrite one another. The series even includes actual "source code porn" including Conway's Game of Life in Lisp at one point[1].

[0][https://tvtropes.org/pmwiki/pmwiki.php/ShoutOut/SerialExperi...](https://tvtropes.org/pmwiki/pmwiki.php/ShoutOut/SerialExperimentsLain)

[1][https://lain.wiki/wiki/Source_code](https://lain.wiki/wiki/Source_code)

</comment><comment><USER67> Coding Machines by Lawrence Kesteloot: [https://www.teamten.com/lawrence/writings/coding- machines/](https://www.teamten.com/lawrence/writings/coding-machines/)

Lovecraft meets Trusting Trust.

</comment><comment><USER68> Peter Watts' _Maelstrom_. Earth's logistics are managed by trained petri dishes of lab-grown brain. Epidemiologists use data science to plan last- resort mass exterminations. Computer viruses and firewalls are evolving AIs

It's the sequel to _Starfish_ , which isn't quite as computer-heavy. I don't think you'd have to read _Starfish_ first (but you will spoil it).

It's in hard/soft-cover but also CC-licensed on the authors' website: [https://rifters.com/real/shorts.htm](https://rifters.com/real/shorts.htm)

Probably a 3.5 - 4 on the "comp-fi hard" scale. Warning: Peter Watts doesn't write happy stories.

</comment><comment><USER69> Am I blind or is this lacking a scale?

What do five points constitute? Five out of five, ten, 50?

</comment><comment><USER70> Another addition would be Rudy Rucker's Ware Tetralogy.

<comment><USER71> And Rucker's "The Hacker and the Ants"

</comment></comment><comment><USER72> Three Body Problem and Ready Player One should be considered. Daemon by Suarez is better than Ready Player One. Oh, what about Ramez Naam and the Nexus books?

<comment><USER73> Nexus is my favorite in this genre... and in fact one of my favorite books ever. I had some trippy dreams while reading it :)

</comment></comment><comment><USER74> I came to recommend "I Am AWAKE" by Fisher Samuels.

A PhD student is building an AI at his home lab, and is under scrutiny by staff, believes he's being tracked by a hacking group, and ends up having his work stolen. The rest is up to you to read. I've read the book a few times. For a single work (of its type) by an obscure author, it's a wonderful read.

</comment><comment><USER75> Can't recommend Unsong enough, it's the perfect marriage of religion nerdiness with computer nerdiness.

</comment><comment><USER32> Any love for James P. Hogan?

* _The Two Faces of Tomorrow_ : [https://www.baen.com/the-two-faces-of-tomorrow.html](https://www.baen.com/the-two-faces-of-tomorrow.html)

* _Thrice Upon a Time_ is one of the best time-travel novels I've read.

</comment><comment><USER76> Semi related:

Does anyone have a good tool for keeping lists of books and links and things to save for later? I always end up bookmarking things and they get lost in the large black hole known as my bookmarks bar.

iOS app and browser integration would be great too.

<comment><USER77> I ended up using google keep as my most stripped down notetaking app that can can sync between devices.

</comment></comment><comment><USER78> Minor correction. The "group mind" dog-like creatures in Vinge's _A Fire Upon the Deep_ interact ultrasonically.

And in Egan's _Diaspora_ there's extensive use of virtualization.

Also in Rajaniemi's Flower Prince trilogy.

</comment><comment><USER79> Tepper's "True Game" series is an old favorite of mine. It's a while since I last read it but I don't recall _anything_ remotely resembling computer programming concepts in it.

</comment><comment><USER80> [https://qntm.org/responsibility](https://qntm.org/responsibility) is a very interesting perspective on function fixed points.

<comment><AUTHOR> Awesome! I remember reading that a while back, didn't realize it was by the same guy as Ra.

</comment></comment><comment><USER81> Consider "The Name of the Wind" in which magic is explained as "bindings" that still most follow the laws of thermodynamics, or at least conservation of energy.

</comment><comment><USER82> Let's see: Cory Doctorow's _Unauthorized Bread_ and _Walkaway_ , Arthur C. Clarke's _The Nine Billion Names of God_ and _The City and the Stars_.

<comment><AUTHOR> I'm not sure either of the Clarke ones qualify. The 9G names of God, possibly, though it's more of a practical joke on science fiction readers than hard-comp I think.

</comment></comment><comment><USER83> The Adolescence of P1 by Thomas Ryan is an old, yet amazing read! Part of it takes place at the University of Waterloo in Ontario, Canada (15 min from my house).

</comment><comment><USER84> The Synners novel is so boring. It's just a bunch of tech mumbo jumbo like robots talking in vaguely sci-fi(esque) terms among other non-sense.

<comment><USER85> So /r/VXJunkies, The Novel?

</comment></comment><comment><USER86> Croshaw's Mogworld isn't hard, but relevant.

</comment><comment><USER87> Arthur Clarke's _Childhood 's End_ would be my recommendation though I'm not sure how it falls into the comp-fi genre.

<comment><AUTHOR> One of my favorite books ever, but I would categorize it as classic sci fi with little computation.

<comment><USER87> If you think about it in a different way the computation is there, or at least see it in a metaphoric way, the overlords were enabling all civilizitations to be assimilated into a whole of information. It is a very interesting perspective that is twisting the mind into uncomfortable ways to think about it. The idea in this book stayed with me since i first read it, a long long time ago

</comment></comment></comment><comment><USER88> How is the Red Pill from Matrix a magical debug value? I didn't notice anything like it on the wiki page.

<comment><AUTHOR> It creates a signal in Neo designed to be picked up at a lower layer of abstraction, like using 0xDEADBEEF as a value so you can spot it in a hex editor.

<comment><USER88> Ah, ok. I got the impression there was something clever about it being a red pill specifically.

</comment></comment></comment><comment><USER89> CTRL ALT Revolt, Soda Pop Solider, & Pop Kult Warlord, by Nick Cole.

</comment><comment><USER90> Was going to say Mr Robot 10 out of 5, but realized this is books only.

<comment><USER91> Matrix is on that list as well, but I'd wager Mr. Robot to be the best candidate in terms of motion picture to put on that list as well.

</comment></comment><comment><USER92> I'd like to add the Berserkers series by Fred Saberhagen to this list.

</comment><comment><USER93> What are the bounds on the ratings? Out of 5? Out of 10?

<comment><AUTHOR> 5, but given the volume of recommendations here the ratings will need reworking!

</comment></comment><comment> 52-hertz_whale Greg Eagan. Nuff said.

</comment><comment><USER94> Cryptonomicon is listed as "short"...?

<comment><USER49> I mean, compared to Lord of the Rings, yeah.</comment></comment>


Ask HN: How to learn to communicate clearly? - <AUTHOR> Sam Altman has said communicating clearly is one of the most important skills in startups.
How do we learn this?
Are there any good resources? <comment><USER2> Vis-a-vis written communication: A book that I discovered via a recommendation here on HN, and which I will recommend in turn, is _The Pyramid Principle_ [1] by Barbara Minto.

In terms of spoken communication... I'd suggest looking into Toastmasters, and/or just volunteer to speak at user-group meetings and things of that nature. There are a number of good books out there on public speaking / presenting, but most of what I've learned on the topic came from online sources (like threads here on HN) and just practice.

Also, as somebody else said: read lots of books. Try blogging / writing in some context. The more you write, the better you'll get. Somebody, I think maybe it was Stephen King[2], said something like (paraphrased) "the best way to learn to write well is to read a lot and write a lot".

[1]: [https://www.amazon.com/Pyramid-Principle-Logic-Writing- Think...](https://www.amazon.com/Pyramid-Principle-Logic-Writing- Thinking/dp/0273710516/ref=pd_sim_14_4)

[2]: [https://www.independent.co.uk/arts- entertainment/books/news/...](https://www.independent.co.uk/arts- entertainment/books/news/stephen-king-22-lessons-creative-writing-advice- novels-short-stories-a8021511.html)

</comment><comment><USER3> Field experience: Work closely with a volatile person for a while. You will naturally learn to be very deliberate and effective in what you say.

Or for a less traumatic approach: read a few books or attend a few workshops, then practice what you glean inside your existing relationships.

The books and workshops that are most helpful for you will be personal. To learn interpersonal communication techniques, try browsing the management, relationship, and self-help shelves for something that stands out. Similarly, management training/workshops and therapy groups can be very helpful.

If you just want to articulate your thoughts more clearly in writing or speech, look in the writing or public speaking shelves and look for writer's groups or Toastmaster's meeting.

Most of it comes down to practice, but there are innumerable resources that will help need to figure out what you need to practice. Few of them will lead you astray, so don't overthink it and just dive in.

<comment><USER4> > To learn interpersonal communication techniques, try browsing the > management, relationship, and self-help shelves for something that stands > out.

I thought Crucial Conversations was a great book for this

<comment><USER5> +1 for Crucial Coversations. That book, along with "Nonviolent Communication", was a gift for my analytical mind in approaching the art of lucid communication.

</comment></comment></comment><comment><USER6> For written communication, the classic textbook is Strunk and White's _The Elements of Style_ ([https://en.wikipedia.org/wiki/The_Elements_of_Style](https://en.wikipedia.org/wiki/The_Elements_of_Style)), which contains one of the most famous bits of advice ever offered on how to write well: "omit needless words."

</comment><comment><USER7> This book is the best outline/textbook for what clear and effective communication I've seen is. When your purpose is to be unambiguous.

There are tons of examples of bad communication and how to improve it.

One of my favorite parts is about how to be truthful in communicating. When "that's stupid!" pops into your head how do you communicate that excluding the options of saying nothing and blurting out your thought vomit. And it is about realizing there is almost always a mismatch of assumptions on one or both sides. So the best response to that thought is usually to ask clarifying questions.

[https://www.goodreads.com/book/show/1169674.Conscious_Busine...](https://www.goodreads.com/book/show/1169674.Conscious_Business)

</comment><comment><USER8> I started a newsletter to help developers with their writing skills.

I am not sure I will continue to write new content, but the archive is here: [https://writingfordevelopers.substack.com/archive](https://writingfordevelopers.substack.com/archive)

I believe it might help you.

</comment><comment><USER9> How to Win Friends and Influence People by Dale Carnegie. It's about how to listen to people in the right way. You have to set up communication systems that allow you to dial in to what THEY think is important and get out of your own way

</comment><comment><USER10> If you can, try getting a Sales/Partnership role for an early stage B2B startup. Pitching to CXOs of different bossinesses would push you to be coherent, concise, and confident about what's coming out of your mouth.

</comment><comment><USER11> Imagine youre speaking to a 5 year old, then listen actively, and respond in kind and then rinse, repeat.

</comment><comment><USER12> Write a page and reduce it to three sentences, or one as I did here.

</comment><comment><USER13> Write notes down, think about them and then re-write them.

Read books.

</comment><comment><USER14> Be a good listener & keep ones head clear

</comment><comment><USER15> Practice, practice and practice.

And observing results

</comment><comment><USER16> Getting good at communication (not just eloquence or debate, but being effective at engagement and transferring information) is studying yourself in relation to other people at a deep level.

People say being a good listener is the key to communication, but to be more precise, it's understanding the context that you're communicating in deeply that allows you to be an effective communicator.

For me, it's been helpful to build internal frameworks to understand what value sensitivities and blind spots I have and apply context switches real time during conversation.

As a simple example, you may be sensitive to the logical accuracy and truth of things, and you may not care much about causing conflict. This is fine, but there exists other people that are sensitive to conflict and tend to ignore logical accuracy. Effective communication between these two parties starts with understanding these fundamental differences, and context switching out once you realize that you're talking about different things. There are many conversations that happen where one person is trying to communicate "you're factually wrong" and the other person is trying to communicate "you're making me feel uncomfortable with how much conflict you're causing", and the same thing gets repeated for hours while getting nowhere.

There are many frameworks out there on value sensitivities, and you can use any of them or even build one yourself. The 5 love languages is a simple one where understanding, digesting, and applying it can take one afternoon. I personally heavily rely on cognitive functions (wiki it, it's a deep topic). I also classify the source of activity as either being rational, emotional, or willful/goal oriented - I do this because it is simple, fast to evaluate, and yields actionable insight.

You also need to always try to improve your communication by expanding your values. Some people belittle other values instead of acknowledging them, and as a result never improve.

Try to acknowledge and incorporate additional values in your communication. An example value is terseness - can you communicate your point with as few words as possible? Another can be rapport - at the end of the conversation, does the other party like you more? A third can be precision - can you be more precise with your meaning when you convey ideas? A fourth can be objectivity - can you take your emotional slant or political preference out of your speaking? Or can you put more emotion into your speaking? Organization - can you practice to organize your thoughts better?

You do not have to subjectively internalize values, you just have to learn how to objectively evaluate them so that you can interact with people who subjectively value them. If you adopt this paradigm, there's really an endless amount of ways to improve/broaden your communication style.

Once you understand values and set a goal, then practice a lot. Most people recommend writing regularly because writing (along with editing) is the best way to discover, muse, and improve how you communicate. It's also helpful to take professional communication classes, which will train you in standardized ways that people have solved common communication issues (ambiguity, lack of professionalism, etc).</comment>


YouTube shuts down popular pen testing channel - <AUTHOR> https://plus.google.com/app/basic/stream/z12ag1qzcvyjshxh104cj5y4bsnnfxmoxdk

<comment><USER2> When stuff like this happens it is bad, and hard, but a good reminder that you need to backup your videos, put them on Vimeo on your own site or something, and maintain your own presence that can't be taken away by a paper pusher.</comment>