Programming Innocence - <AUTHOR> http://projectb14ck.org/programming-innocence <comment><USER2> I have always been a "fearless" programmer, but never realized it until reading this post. Here's how:

 _Fear of not knowing the best way to do things (best practices)._

The sooner you realize that there is _never_ a best way of doing anything, the sooner you can release this silly fear. Some ways are better that others, but _any way_ is better than _no way_. Just get the thing done. Later, when you refactor, you'll have the best of all worlds: code that did the job right away, a better way of doing things, a satisfied customer, and a great learning experience. Woo hoo!

 _Fear of not using the right tools and languages._

Give me an adjustable wrench, 2 screwdrivers, and a big hammer and I can fix just about anything. Same thing with programming. I'm too busy getting work done to learn every new tool or technique. As I've told many programmers over the years: "Whatever you can do, I can do in BASIC. Maybe not as pretty, but probably just as fast and just as effective."

 _Fear of errors (especially compiler errors)._

You're in the wrong business. Errors are what point you in the right direction. The sooner you learn to embrace errors and use them to refine your work, the sooner you'll become fearless (and better).

 _Fear of schedules._

"I see only one move ahead, but it is always the correct one." - chess master Jose Raul Capablanca. That's what my schedule looks like. One item. One day. Project managers can't stand this, but then again, I get way more work done than they do.

 _Fear of publicity (what will other programmers think about this code?)._

I never publish my code. Ever. Users get to give me feedback, but I don't give a shit what other programmers think. Sure, I learn from them, but _never_ in the context of reviewing the code _I wrote_. I learn from the code of others and apply those lessons to my own work.

<comment><USER3> _I don't give a shit what other programmers think. Sure, I learn from them, but never in the context of reviewing the code I wrote._

Can you elaborate on this a little? On the surface, it sounds like ego getting in the way of learning and closing your mind to good mentors. On the other hand, you might also have had a helping hand in inventing Lisp or something, and I am your young whippersnapper that you won't be listening to because you have already written my algorithms better before I learned to crawl. The context helps, since I am far from convinced this is a good attitude for programmers (especially my coworkers) to adopt.

<comment><USER2> _Can you elaborate on this a little?_

Let me put it this way...

If you gave me a page of your code and asked for feedback, I would return it with 50 red marks on it.

If you gave it to me a second time, there would still be 50 red marks, but most of them would have you changing it back to _the way it was in the first place_.

The point is that _any_ programmer can give endless feedback to any other programmer based on a sample of code. In my experience, 90% of that feedback was flat out wrong, and the other 10% was a waste of time.

I prefer learning new things the way I have for years now. When I see something cool, either as a user or by looking at the code, I figure out what was done and how I'd like to do it (rarely keeping 100% of it), and then incorporate that into my own style.

Having others look at my code has never delivered much value. This may seem like ego, but it's not. It's just a matter of what works best.

<comment><USER4> _Having others look at my code has never delivered much value._

Maybe not much value for you, but after enjoying your many insightful comments on this site, I suspect that I would learn a lot by looking at your code. :-)

<comment><USER5> EDIT: (Ignore this. It's wrong, and I should have been more polite anyway. I'm leaving it to teach myself a lesson about being hasty...)

If you understood his point, you wouldn't say that.

Not that I agree with Ed on this, 95% of my code is published. But still.

<comment><USER4> He himself says that he learns by looking at others' code. Perhaps I don't understand his point.

<comment><USER5> ... or perhaps I read it too quickly.

Which going back over it, seems to be the case. My bad!

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> That's phase 2. Phase 3 is the middle way: be clever about balancing all those forces. Use the new library, but only if your gut feeling tells you that it's also the right choice for the future. Change the code without hesitation, but do hesitate if you think that it may cause more problems than it resolves. Etc.

Experience is a bitch. There are no blacks and whites, only a grey mess.

<comment><AUTHOR> That's true. I'm assuming that you (the developer) will already be consciously making these decisions as you discover new things, and will only feel the 'fear' if you realize that you do indeed need it.

Thanks for your input :)

</comment></comment><comment><USER7> I think if you read a lot of programming forums, it's easy to confuse the fact that there are lots of people with highly specialized knowledge with the idea that everybody else knows more about everything than you do.

<comment><USER8> Yes, and this is a great force in my betterment. I'll see 4 different people talk about 4 completely different advanced techniques they use, and each of them master them so much that they talk about their feats like it's not really hard at all.

So eventually I tend to forget the context of the whole thing and come to think: "Hey, I can master these 4 advanced techniques myself, after all they're not really hard at all". And I eventually succeed ;P

</comment></comment><comment><USER9> Actually, programming isn't the only thing with the innocence problem. I think he same thing happens with almost every creative work. From playing music to writing to designing sites, most have experienced similar feelings in other projects. The only solution is to Press on, keep working, and realize that your only way to create great stuff is to keep creating. That's what I keep having to tell myself lately.

Press on ... Don't give up! And try to keep the innocent excitement as long as possible ;)

</comment><comment><USER10> At first, I though "Man, this sounds like a recipe for technical debt" but then I realized I'm guilty of exactly what you're talking about. In fact, I was browsing hacker news as a break from googling the best way to implement a feature that I could do in 10 minutes if I weren't concerned about having it perfect from the get-go.

I recently realized that I code slower than I used to. I assumed this was because I stopped hacking for a few years during law school, but now I think it has more to do with being immersed in a risk-averse perfectionist environment that leads to exactly the kind of timidity you're talking about. This may be one of the more valuable insights I've gotten from hacker news in a while. Thanks!

<comment><USER3> Be careful. Sometimes the reason you code slower is that you are thinking from an architectural level and are making sure your code is a reasonable fit. Sometimes you are taking the time to shape the code in a way that is maintainable.

I have felt this loss of what the author calls "programming innocence", but when I dig down deeply, I think it is more that I am doing MORE work than less. When I was young and stupid, I thought I was implementing features, and I whipped things out quickly. Lord do I remember also spending a lot of time debugging those things, and if I came back to the project a few months later, I would find it hard to read, figured I knew better, and would rewrite the whole thing with my newfangled enlightenment. Today, I spend a lot less time debugging and rewriting, and my projects are more feature-complete. It may feel like I am programming slower, but I am still whipping things out, and unlike my young days where I was my own customer, my requirements are constantly changing: I write code that can evolve.

</comment></comment><comment><USER11> Just yesterday I was thinking about this issue. I think the article takes the biscuit.In my opinion, this is the main reason for why people who start out early are that good.

I partly relearned this skill when I started out with Taekwondo. Desperately, I was trying to memorize the motion sequences. Whenever I asked a question concerning which angle my right leg should have, which direction I should turn to ... the master would always say: "Don't think or talk. Watch & do it!"

Surprisingly, you get a lot better in no time. Don't get me wrong I still suck but at least what I do now is worlds apart from my first humble attempts.

Now I think that I could become a decent programmer with a more child-like attitude (like the one I had when I discovered DOS & Win 3.11 at the age of 5 - no adult taught me anything, I couldn't even understand the English menus ;-))

But unfortunately we get older. Whilst it is never too late to learn something for the joy of it I'd like to have a halfway-decent paid job within the next 10 years. At the moment I am 23. I could quit university, devote myself to open source software & hack the hell out of the day. Hopefully, I'll someday know enough to have paid work. However, if I'd fail I wouldn't even have a degree & my perspectives would be quite bleak. With that in mind programming is only a (way too little) hobby for me.

</comment><comment><USER12> Very similar blog post: <http://cam.ly/blog/2010/12/code-fearlessly/> And associated HN chatter: <http://news.ycombinator.com/item?id=1964060>

</comment><comment><USER13> But what if my favorite way of hacking, what makes me feel amazing is something more like Rich Hickey's Hammock Driven Development (clojure.blip.tv/file/4457042/)?

Of course I don't get a chance to do this as much as I'd like at my day job. Still, some of my most satisfying programming experience has been when I've spent days researching and thinking about a problem, had a moment of enlightenment, and wrote 200 lines of beautifully simple code that strikes at the heart of the problem. _That_ makes me feel like a programming god.

And I'd argue the result is somewhat better than "innocently" hammering out reams of code without taking time to really consider it.

</comment><comment><USER14> The more I read about our profession in general, the more it seems to suck as you build a career / get in your thirties. I really hope it doesn't for me, because I'm not good at much else, lets see.

</comment><comment><USER15> Your fear is only a result of your use of flawed languages, probably of the Algol family, rather using a flawless language like Lisp.

</comment><comment><USER16> _Fear of errors (especially compiler errors)_

That programmer should be really innocent. ;)</comment>


D-SLRs are rude. Stop the clacking. - <AUTHOR> http://b.sricola.com/post/83608238085/d-slrs-are-rude-stop-the-clacking

<comment><USER2> When you talk about rudeness and politeness, you're talking about manners. Manners are a social system of using shame to force conformity out of members of a given culture.

But I feel no shame for my hobby. Shame is a useless emotion.</comment>


Someone is randomly sending money(Wolk Token) to ether wallet. Possible hacking? - <AUTHOR> https://etherscan.io/tokentxns?a=0x8e8f340f43430c9a1958ab72b2847c8e4935bb0c&p=1 <comment><AUTHOR> So far he/she made over 16K transaction and sent averagely 5-6 Wolk to 16K ether wallets through a smart contract.

1 ETH = 1777 Wolk at its ico. So he/she already spent about 7-8 K dollars? What is he/she planning to do?</comment>


New research helps unravel how vast amounts of plastic particles travel - <AUTHOR> https://www.scientificamerican.com/article/thousands-of-tons-of-microplastics-are-falling-from-the-sky/ <comment><USER2> The numbers here are so staggering, I thought they had to be wrong. How many plastic bottles can humans possibly throw away in total?

How wrong my assumption seems to be. In 2017, we created over 1 million plastic bottles a minute [0], and in 2018 we produced more plastic by weight[1] than the human population of the world[2].

[0] [https://www.forbes.com/sites/trevornace/2017/07/26/million-p...](https://www.forbes.com/sites/trevornace/2017/07/26/million- plastic-bottles-minute-91-not-recycled/#60a743c5292c)

[1] [https://www.statista.com/statistics/282732/global- production...](https://www.statista.com/statistics/282732/global-production- of-plastics-since-1950/)

[2] [https://www.livescience.com/36470-human-population- weight.ht...](https://www.livescience.com/36470-human-population- weight.html#:~:text=Humanity%20could%20stand%20to%20lose,242%20million%20normal%2Dweight%20people).

<comment><USER3> Went on a small get away with in-laws last week. They probably went through 200 bottles of water over 7 days. I would say at any given time there were 10 or so half full around the house. I was the only one who was filling up a metal bottle in the sink. Very disheartening to see.

</comment></comment><comment><USER4> We also need to consider the microplastics turning into nanoplastics. At that scale they can cross cell membranes. We still don't know what that means: [https://www.nature.com/articles/s41565-019-0437-7](https://www.nature.com/articles/s41565-019-0437-7)

</comment><comment><USER5> From here [1]

> Most of these plastic particles are synthetic microfibers used for making > clothing

How do I buy clothes that don't have synthetic microfibers? What do I look for on the tag?

[1] [https://science.sciencemag.org/content/368/6496/1257](https://science.sciencemag.org/content/368/6496/1257)

<comment><USER6> Microfibers usually use plastic bottles and other containers sent for recycling. We need to simply eliminate that stream of waste. Banning single- use plastic is an absolutely necessary step - but the effort needs to be global, or at least rich countries need to force major polluters (Coca Cola etc) to act globally if they wish to retain access to local markets.

</comment></comment><comment><USER7> > The scientists found microplastics in almost every sample they collected. In > total, 4 percent of the identifiable dust particles were plastic. Brahney > and her colleagues "immediately realized the gravity of what we were > seeing," she says. "That was a moment of being just completely astounded."

</comment><comment><USER8> As costal erosion becomes a bigger problem, I wonder if there will be a lot more geo-textiles used on the coast line to manage it. Textiles made of plastic that will eventually just wash into the oceans. Where I live on the Sea of Japan I am constantly finding all kinds of things washed up from China, Korea and Russia (along with all the fishing gear). There is very little I could do locally to clean up the beaches here.

</comment><comment><USER9> As the great George has said, humanity is here just to create deposits of plastic on the planet.</comment>


Show HN: sqlc – Compile SQL Queries to Type-Safe Go - <AUTHOR> https://conroy.org/introducing-sqlc <comment><USER2> We've been using this in production at [redacted] for four months now - it's drastically cut down on the amount of time I spend writing maintaining sql queries, and improved type safety along the way.

What's more impressive is that (prior to this post) this library has had basically no publicity but people have been finding it anyway and picking it up, because it's such an obvious solution to the problem.

Highly recommend switching to this if you're using Go.

</comment><comment><AUTHOR> Author / maintainer here.

It's been great working on sqlc over the last six months. Happy to answer any questions you have about the project.

<comment><USER3> What a neat idea! Congrats on the project!

Without having a look at the sources yet: could sqlc generated code take any advantage pgx[1] extra features or is it designed to use strictly database/sql?

[1] [https://github.com/jackc/pgx](https://github.com/jackc/pgx)

<comment><AUTHOR> It absolutely could, although it doesn't yet. You can track progress by following this issue: [https://github.com/kyleconroy/sqlc/issues/28](https://github.com/kyleconroy/sqlc/issues/28)

</comment></comment></comment><comment><USER4> Lately, I've been building a system in which I want to expose SQL to third party developers. In order to ensure the queries don't abuse the backend, I wrote a SQL grammar using Antlr4 and produce Go code. There's a bit more to what I'm doing aside from restricting what types of queries a user can write, e.g., no joins, no literals (only bind parameters), and a restriction on number of rows returned (Limited to 50).

This query language also abstracts how data is stored on the backend. So when a user does a CREATE TABLE (...), it doesn't actually create a physical table.

I think every developer should play around with creating their own grammar at some point. It's a powerful skill to have.

</comment><comment><USER5> I really like the Django way where Python code is considered the ground truth. If your model changes in Python, migrations will automatically be generated to reflect the updated state.

AFAIK only TypeORM and really pricey enterprise database software comes with change management systems like this. Even Rails do not have such conveniences.

<comment><AUTHOR> As you've probably noticed, sqlc is quite different than the Django model. If you're looking for something similar to the Django ORM but for Go, [https://gorm.io/](https://gorm.io/) is probably your best bet.

<comment><USER5> I am referring to migration management in general, not just ORM mapping. The majority of existing ORMs requires you to manually design up and down migrations which can be rather brittle and error-prone.

</comment></comment></comment><comment><USER6> This looks wonderful and exactly how I'd like to think about such things. Do you generally end up using your db models as the domain models for your application? Or do you have a separate set of models for that, and if so how do you translate between them?

<comment><AUTHOR> In practice, I use the database models as the domain models for an application. However, if I need to expose the models to the outside world via a service, I create a separate set of models. I then define a set of mapping functions between the two.</comment></comment>


One of world's biggest container ships arrives in the UK - <AUTHOR> https://news.sky.com/story/hmm-algeciras-worlds-largest-container-ship-arrives-in-uk-for-first-time-12006469 <comment><USER2> [1] [https://www.shippingandfreightresource.com/hmm-algeciras- lar...](https://www.shippingandfreightresource.com/hmm-algeciras-largest- container-vessel-on-earth/)

"HMM Algeciras" is the _first of twelve_ 24,000 TEU class vessels scheduled to be sequentially delivered until September 2020 out of _a total of 20_ , with the balance 8 planned for delivery from second quarter of 2021 onwards."

 _BAM!_

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

Living in Hamburg with its port since 2004 it was exiting at first, to see these large ships come and go, and the rumbling sounds they make when they are turned around by tug-boats on the river, to even fit into their berths. Altough they weren't that large by then. Then the little economic hiccup [3] [https://en.wikipedia.org/wiki/Financial_crisis_of_2007%E2%80...](https://en.wikipedia.org/wiki/Financial_crisis_of_2007%E2%80%932008) happened, and it seemed to me like less ships come and go. Anyways, they got larger, and larger, and then it was almost boring, like almost every month in the local press: "Largest container ship ever first time in port!" Oh, really? Again?

Anyways, when I'm at home, awake and hear some fog-horn honking from afar, I open [4] [https://www.marinetraffic.com/en/ais/home/centerx:9.846/cent...](https://www.marinetraffic.com/en/ais/home/centerx:9.846/centery:53.538/zoom:12) to see who it is :)

Right now [5] [https://en.wikipedia.org/wiki/CMA_CGM_Alexander_von_Humboldt](https://en.wikipedia.org/wiki/CMA_CGM_Alexander_von_Humboldt) is leaving port destined for Rotterdam. Made headlines also, a while ago.

It reminds me a little bit of the very incremental improvements in CPUs since about 2005. One could do this and that, but it would be uneconomical. The same goes for these giants. Any larger, and they have less ports to dock, because they don't fit, can't pass through channels, or twist and warp too much in rough seas with current materials. So it is slow steaming with greener engines instead.

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

Funny Captain playing Star Wars theme on the horn of MSC Zoe in 2015 :)

[7] [https://www.youtube.com/watch?v=V8DMd1ddl68](https://www.youtube.com/watch?v=V8DMd1ddl68) (4m33s)

HMM Algeciras a week ago in Hamburg during docking

[8] [https://www.youtube.com/watch?v=pZdIJFdP3AM](https://www.youtube.com/watch?v=pZdIJFdP3AM) (5m16s)

</comment><comment><AUTHOR> It's mind boggling how quickly they built this ship. Keel laid down late Sept 2019 and launched just two months later in December. Arrived here today after two months voyage from the Far East.</comment>


Scientists discover how to turn light into matter after 80-year quest (2014) - <AUTHOR> https://phys.org/news/2014-05-scientists-year-quest.html <comment><USER2> This is from 2014 and proposes the experiment. Follow ups have been interesting, here is one from 2017 ([https://www.nature.com/articles/s41598-017-17605-6](https://www.nature.com/articles/s41598-017-17605-6)) which actually generates positrons.

And here is the discussion from 9 months ago: [https://news.ycombinator.com/item?id=15725759](https://news.ycombinator.com/item?id=15725759)

<comment><USER3> Damn, I hate it when they confuse theory, modeling and experimentation! In the cited discussion, splittingTimes noted:

> Since 2014 I can find 34 citations, none of which are an actual experimental > realization of their scheme [1]. ...

So has that changed? Or is this just theory and modeling?

<comment><USER2> Sadly it hasn't changed as far as I can tell. The nature paper cited helps summarize some of the approaches being considered.

</comment></comment></comment><comment><USER4> My lord, who wrote this article?

 _Imperial College London physicists have discovered how to create matter from light - a feat thought impossible when the idea was first theorised 80 years ago._

They didn't discover it, as they say in the same sentence this is an 80 year old theory, rather they demonstrated it _in a lab_ rather than observing it in nature. That sentence also makes it sound like this process may have been considered impossible until they demonstrated it in the lab, and that is just not true.

Plus this stupid site clipboard hijaacks. Feh.

<comment><USER3> The article implies that they "demonstrated it in a lab". But actually, they just imagined a way to do that. And as far as I can tell, it hasn't yet been tested.

How is it that some physicists seem to talk about results of modeling as if they were experimental results?

<comment><USER5> Photon-photon scattering has been observed: [https://en.wikipedia.org/wiki/Two- photon_physics](https://en.wikipedia.org/wiki/Two-photon_physics)

<comment><USER3> OK, but that's not Breit and Wheeler "photon-> <-photon" to "<-electron positron->", right?

</comment></comment></comment></comment><comment><USER6> That's quite neat! Maybe important to note that they have described an experiment to test the theory but not conducted an experiment yet. :)

</comment><comment><USER7> For reference it looks like the uniqueness here is they are using lasers (photons) for electron-positron pair production.

Particle colliders like LHC and it's progenitors all create matter as a fundamental part of their operation, but I guess they're classifying that as "energy" to matter not "light" to matter.

<comment><USER8> The uniqueness isn't just that they are using lasers (that's been done) but that they are using only lasers. There are many different ways you can get pair production from high energy photons, one of the easiest is via an interaction with a charged massive particle (such as an electron, proton, or atomic nucleus). But it's also possible for pair production to be a purely photon only process (just as the reverse process of annihilation producing only photons is possible), however that is a lot more difficult to pull off experimentally.

</comment></comment><comment><USER9> The experiment described here was performed by a couple of groups independently earlier this year. Data is being analysed, so fingers crossed!

<comment><USER3> Really! Can you share any specifics, cites, etc?

</comment></comment><comment><USER10> 1) Create plausible way to confirm 80 year theory

2) Say that the only way to test requires "slabs of gold"

3) Profit?

<comment><USER11> It worked for the alchemists!

</comment></comment><comment><USER12> Seems, from reading, they see actually turning matger and light into matter. Multiple lasers, yes, but there looks like matter being consumed in the process.

<comment><USER13> In my reading, there would be thermal radiation (aka light) and a high intensity photon beam (aka light) interacting to create particles.

I didn't see matter being consumed anywhere, did I miss it?

</comment></comment><comment><USER14> Using a couple of lasers to create matter makes a whole bunch of weird things possible. And while we're dreaming, this would be one heck of a 3D printer, provided you'd be willing to wait a literal eternity for your device or product!

Anyway, obviously that's still science fiction but this at least opens the door.

<comment><USER15> Here's something even crazier: Are photons in vacuum, with photon-photon scattering, IN PRINCIPLE a model with strong enough computational power? I don't have any specific application in mind, but just for the kicks, how cool would it be to create a galaxy-sized computer that has no parts other than photons? I don't mean "no _moving_ parts other than photons", I literally mean a photonic computer where even the reflectors are made of other photons.

<comment><USER14> Someone beat you to that idea by about 8.9 billion years.

</comment></comment></comment><comment><USER16> Relevant Wikipedia article: [https://en.wikipedia.org/wiki/Breit%E2%80%93Wheeler_process](https://en.wikipedia.org/wiki/Breit%E2%80%93Wheeler_process)

</comment><comment><USER17> Would this be able to be used as a fuelless space propulsion method?

<comment><USER18> Yes, but it's SO impractical as to be unusable (remeber, that E=mc^2, so m=E/c^2, which means m is REALLY small).

Edit: You will get very small amounts of matter from energy. Small amounts of matter will mean very low thrust. Much better use of that amounts of energy is just collecting interstellar medium and accelerating it.

<comment><USER19> it is worse than impractical actually light is the best propulsion method per energy consumed (as propulsion efficiency depends on speed) it is just that to expel a given mass of light you also need a huge dead weight to emit it.

it would be way more useful to have a method to turn matter into light. this would be a fantastic low power space engine.

(not really an expert, but pretty sure about this)

<comment><USER20> Well, to turn matter into light is basically the same as turning matter into energy.. which will, of course, produce a lot of it: E=mc^2

That's really hard though, unless you use antimatter+matter. And then you'll have to produce the antimatter first, of course. And you're back to square one.

<comment><USER21> > And you're back to square one.

Well, not necessarily; if you could efficiently produce and store antimatter, that'd make a hell of an energy storage mechanism, and possibly make interstellar travel feasible. That's a HUGE if, obviously.

<comment><USER22> That right there is a fuel with a Roland Emmerich scale for potential (nuclear) fallout. Can you imagine trying to sell that to the public? "Combine the worst parts of both Challenger and Chernobyl." The public doesn't really accept normal nuclear power plants.

<comment><USER23> Don't do it on earth, do it somewhere else in the solar system.

</comment></comment></comment></comment></comment></comment></comment><comment><USER24> This is from 2014.

<comment><USER6> Completely missef that. Should probably be added to the title.</comment></comment>


Show HN: Instant web chat inside your LAN - <AUTHOR> https://localchat.bigsun.xyz/ <comment><USER2> I assumed this was doing some LAN-based communication (multicast perhaps, or webRTC), but it looks like it's just a standard chat server that generates one room per IP address.

It'd be interesting to extend the idea to do literally local chat though. It'd be effectively serverless, super resilient, and impossible to externally access (nice for all sorts of compliance concerns). In theory it's all doable, but the initial bootstrapping to find other people on your network from within a web app is tricky...

<comment><AUTHOR> Yes, for years I wanted what you're talking about, a fully offline, LAN-based communication tool, tried many times but was unable to do it in a way that didn't require the user to have a PhD in distributed systems.

In the end, I just want a tool that allows people to send things to each other easily when they're near. This tool achieves that and we can just ignore the fact that it isn't really LAN-based.

Also being just a chat room with an arbitrary name you can invite people from external places to join your "LAN" chat, which can be useful.

</comment></comment><comment><USER3> Reminds me of the Unix talk command.

</comment><comment><USER4> a simple nc will do lol</comment>


Obama's Changes to Government Surveillance - <AUTHOR> http://www.nytimes.com/interactive/2014/01/17/us/nsa-changes-graphic.html?hp <comment><USER2> None. There are no changes. He is reviewing a transition to changes.

And remember, these are only executive changes, which means if the next president is worse, well then the changes can be undone with the stroke of a single pen by a single person (and they might even decide not to tell the public).

The permanent bulk collection of data continues for future use by any president or agency when the laws don't hinder them. It's a library they can peruse now or 50 years from now.

ps. someone needs to do a mashup of his first campaign speech to end abuses, arguing against this other person

<comment><USER3> Before the US invaded Iraq, when the President was talking about mushroom clouds [0] and the Secretary of State delivered a PowerPoint about bio-weapons to the United Nations [1], I gave our leaders the benefit of the doubt.

Surely the military, the CIA, the NSA, the NRO, and the President must have secret information they cannot share with the public to justify the horrors of war.

Turns out I was wrong. It was a pack of lies, half-truths and poorly- substantiated rumors to justify a predetermined agenda.

After the 2007-2008 financial meltdown, when the President and the Secretary of the Treasury threatened the end of the world as we know it if the richest corporations aren't given direct cash infusions [2], I gave them the benefit of the doubt.

Surely our elected officials would never directly transfer hundreds of billions of dollars to the richest of the rich unless the alternative was truly grave.

Turns out I was wrong. It was a pack of lies, half-truths and poorly- substantiated rumors to transfer wealth from working people to the ownership class on an unprecedented scale.

So when the President stands before us today and speaks for 45 minutes without saying anything of consequence, without providing any evidence that the threat is so dire, so imminent, so cataclysmic that we must relinquish our freedoms to preserve our freedoms, I can no longer give him the benefit of the doubt.

No more vague threats. No more fear. No more intimidation. No more secrecy. These are fatal to a political system that relies on an informed citizenry.

[0] [http://www.youtube.com/watch?v=jw9BJ_Kh7mE](http://www.youtube.com/watch?v=jw9BJ_Kh7mE)

[1] [http://en.wikipedia.org/wiki/Mobile_weapons_laboratory](http://en.wikipedia.org/wiki/Mobile_weapons_laboratory)

[2] [http://www.nytimes.com/2008/09/26/business/26bailout.html?pa...](http://www.nytimes.com/2008/09/26/business/26bailout.html?pagewanted=all&_r=0)

<comment><USER4> The financial crisis was probably extremely dire.

<comment><USER5> I don't see how it is substantially improved by instituting a tax backed financial insurance policy for gambling losses.

<comment><USER6> You mean the moral ideological alternative would have been better even if it caused the economy to implode?

This is why I'll never vote libertarian.

<comment><USER7> So that is the price of your soul? Noted.

<comment><USER6> Yes, I'm much more for avoiding economic collapse than ideological purity. I like not starving to death, while the tea partying libercrazians would destroy the whole nation just to see out their distorted principles.

<comment><USER8> the punch line is thee was no threat to economic collapse..

The FEd had full powers to ask that any bail out remove current bank leadership from power due to the threat of full Gov receivership of those banks by Fed..we were sold the idea of giving a free get out of jail card to banks based on lies

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> This is the same man who began an initiative called the Open Government Initiative before any Snowden revelations.

"My administration is committed to creating an unprecedented level of openness in Government. We will work together to ensure the public trust and estabish a system of transparency, public participation, and collaboration. Openness will strengthen our democracy and promote efficiency and effectiveness in Government."

[http://www.whitehouse.gov/open](http://www.whitehouse.gov/open)

Believing anything Obama SAYS, particularly concerning this issue, is foolish.

Look at what he's DONE. Nothing is changing.

<comment><USER10> Granted, believing anything ANY politician says on any issue is particularly foolish.

<comment><USER9> That's what you would think, but somehow people always end up thinking the next one will be different.

I find it particularly unsettling when people off the street justify Obama in their own words.

They've truly been brainwashed--no other way to put it. Scary.

<comment><USER11> If someone disagrees with you, perhaps they were paying attention (to different things) and not simply brainwashed.

Otherwise, everyone can accuse everyone of being brainwashed any time an opinion they don't like is expressed

<comment><USER9> When you're convinced that fundamental concepts like freedom, due process, and privacy are worth violating--for any reason--you've been brainwashed. No excuses. Everyone knows better.

I didn't intend my comment to apply to politics at-large, just the privacy and civil liberties topics currently at hand.

I think it's possible to make a case for the broader political spectrum, but I won't attempt that here.

</comment></comment></comment></comment></comment><comment><USER12> Obama "acknowledges" Edward Snowden's role in triggering a public debate. Does this mean Mr. Snowden is officially a whistleblower-hero, or still a traitor who deserves life imprisonment?

As for the notion of requiring private telecomm companies to store data and provide access to the gov't, although still just a hypothetical situation and not yet policy, would this not simply shift the burden from the NSA to private companies?

Obviously, they're already handing over the data, but making it all official and open seems like a retrogressive policy that would in the long run backfire as Americans turn to overseas hosted services not beholden to the NSA. Perhaps even the domestic telecomm firms could get around it by offshoring their data storage and transmission services, such that the only domestic components would be the towers and switches, while the repositories of customer data would be safely overseas under some other entity's control (also not ideal, argh).

<comment><USER13> What Obama said is pretty clear:

"The fact is, is that Mr. Snowden's been charged with 3 felonies. If in fact he believes that what he did was right, then, like every American citizen, he can come here, appear before the court with a lawyer and make his case."

What Obama thinks Snowden "deserves" is irrelevant. Snowden's status as a "traitor" is as yet undetermined, and until he stands trial for the crimes he's being charged with, we won't know.

<comment><USER14> > What Obama thinks Snowden "deserves" is irrelevant.

Sort of. Obama has the ability to pardon Snowden, if he felt strongly about it.

<comment><USER13> Ignoring ethics for a moment (heh), one has to consider the ramifications a pardon such as that would send. That's tacit endorsement from the president of the US for everyone who _thinks_ wrongdoings are going on to come out and tell the world, regardless of the chain-of-command, regardless of any oaths these people have taken - it's basically carte blanch permission for people in the government to start leaking privileged information.

I can't think of a way to pardon Snowden _without_ sending that kind of message - you can't say, "Only do this if you're _really sure_ what's happening is super bad."

So yeah, he _could_ pardon Snowden, but the consequences could be ruinous to the US, even if it is "The Right Thing" to do.

<comment><USER15> > it's basically carte blanch permission for people in the government to start > leaking privileged information.

No, a pardon received by one person is not a promise of pardons to anyone else. A pardon is an _exception_ , not a rule.

<comment><USER16> The concern is with precedence, and the idea that sets in that some types of classified data leaks are "more equal" than others.

Lynching of black people in the Jim Crow South were often attributed officially to "unknown parties of a mob" even when there was clear photographic evidence of white ringleaders. White murderers knew that the fiction of official non-recognition was not a _rule_ , yet the reality of the precedent thus set led to many other mob lynchings.

All of this is to say that even though a pardon is not a rule and should be recognized as such, that only helps matters if _every_ potential future leaker sees it as an exception and not a new precedent.

<comment><USER15> > The concern is with precedence, and the idea that sets in that some types of > classified data leaks are "more equal" than others.

Some types of classified data leaks are more equal than others. The same is true of violations of any criminal law. That's _why_ the pardon power exists (and, in part, why jury nullification is important) -- because no law can ever perfectly account for all edge cases.

> Lynching of black people in the Jim Crow South were often attributed > officially to "unknown parties of a mob" even when there was clear > photographic evidence of white ringleaders.

That _repeated pattern_ of _false portrayals_ to put a public face on a decision not to prosecute is very different than a pardon that does not deny that a crime was committed, and does not falsely assert ambiguity in the identity of the responsible party, etc.

<comment><USER16> But given that the pardon involves a wide swath of classified data disclosures, only a minority of which have any obvious "American civil liberties!" tie, how do our hypothetical future leaker determine that a pardon might be appropriate for him, while a hypothetical future spy determines that a pardon would _not_ be granted in their case (especially if they leak something of public import simultaneously)?

A pardon sends a very mixed message here, precisely because Snowden has crafted a very mixed message.

<comment><USER15> Pardons are purely discretionary acts of Presidents, not applications of legal principles that any reasonable person can expect to be applied in future cases; absent a pattern by multiple Presidents, no sane person would see a past pardon as a reliable precedent—at most it's a source of hope that _if_ a similar political situation is created as a result of the act that there _might_ conceivably be a similar result.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER17> No stopgaps on data collection, only increased permissions to access the stored data. No word on how difficult it is to acquire those increased permission levels, could simply be an additional form to file.

NSLs remain nearly untouched. "Warrants" will continue to be issued with negligible oversight.

> Create a panel of advocates to represent privacy concerns in significant > cases.

Because the process remains secretive with no constant public advocate presence, there's no reasonable way to initiate the process to determine what is a "significant case". Just as before, we cannot contest breaches of privacy if we are not aware of them.

<comment><USER18> >NSLs remain nearly untouched.

this is the single most dangerous thing about current law enforcement. NSLs completely subvert any recourse to the judiciary without immense risk to yourself. Luckily most judges seem to agree on the ridiculousness of NSLs , and are trying to whittle down the power they have.

</comment></comment><comment><USER19>
      > Third, the legal safeguards that restrict surveillance against U.S. persons
      > without a warrant do not apply to foreign persons overseas. This is not
      > unique to America; few, if any, spy agencies around the world constrain their
      > activities beyond their own borders. And the whole point of intelligence is to
      > obtain information that is not publicly available. But America's capabilities
      > are unique. And the power of new technologies means that there are fewer and
      > fewer technical constraints on what we can do. That places a special
      > obligation on us to ask tough questions about what we should do.

Thanks. We, foreign consumers of american services and products, will sure remember this one.

<comment><USER20> Apparently all men are not created equal, many are created foreign.

Europe unite.

<comment><USER21> > Europe unite.

"old Europe die hard" [http://i.imgur.com/srtDWIX.jpg](http://i.imgur.com/srtDWIX.jpg)

Seen nearly 10 years ago in Cologne, sadly I don't know the name of the artist (it was in a museum, he filled huge walls with such drawings). I know HN frowns on images, but I don't have the eloquence to express what this picture is saying anyway, so I'd rather post that instead of nothing. At least it's not a meme - not yet, anyway. Here's hoping :P

<comment><USER21> > I don't know the name of the artist

Managed to find it out, it's Dan Perjovschi ( [http://en.wikipedia.org/wiki/Dan_Perjovschi](http://en.wikipedia.org/wiki/Dan_Perjovschi) )

</comment></comment></comment></comment><comment><USER22> A century or two from now, when other nations reflect on the rise and fall of the United States, the Bush-Obama era will be one of the most striking because of how it fundamentally changed civil rights and the relationship between government and the press.

<comment><USER18> Has the relationship between the government and the press really changed that much? The pentagon papers happened before, and the gov't didn't much like that.

Civil rights have definitely gotten worse in the past 15 years, but I'd say they're still better than before 1978 (when FISA was written). Before things like the FISA, the executive was pretty free to do almost anything (and did, see Hoover). As a long term trend, civil rights have been increasing, not decreasing. We've made mistakes that we need to roll back, but acting like this is the fall of the United States as we know it is pretty myopic (people have been predicting the fall of the United State since the 1800s), and not putting much faith into our institutions (which aren't the worst).

</comment></comment><comment><USER23> Obama = Change. Change = same shit, different day.

Obama has basically said that he knew about all of this, and he was ok with everything the government was doing. However, now that it's all public knowledge, he thinks that we need changes. Have some testicular fortitude, Mr. President. Either you are ok with what NSA does, or you are not. Don't make a speech where you tell me that you were cool with what NSA was doing all the way up to the point when it became public knowledge. And don't tell me in one sentence that this is an important public debate, and in another condemn the man who brought about this debate, Mr. Snowden.

Obama promised change, but Snowden just might actually deliver on that promise.

</comment><comment><USER24> For me as a German, all this does nothing. It was never and is still not advisable to store data on US servers and it is not advisable to use US IT services. Data is collected by the NSA and will be used by the US in arbitrary ways (economic espionage, extortion, no-fly lists, physical attacks, influencing political decisions, kidnapping, ...) without any international control.

</comment><comment><USER25> Wow, I love how this is presented. Kudos to the NYT for creating new ways for us to consume this information.

</comment><comment><USER26> Who is going to trust Obama? Then, who is going to trust the NSA?

Only fools. James Clapper lied about what the NSA was up to, to Ron Wyden, a member of the US Senate Select Committee on Intelligence. Clapper has still not been charged with anything.

There is no way to oversee an organization that only has to tell you _whatever it wants to_. Do people really not understand such a basic concept as this? Congress does not have special insight into what the NSA is doing. Everything Congress knows is whatever the NSA _wants_ to tell Congress. It's all a sham. Kangaroo courts and pretend justice. As fake as all that crap North Korea shows tourists. As fake as Saddam's elections in Iraq.

</comment><comment><USER27> Secret courts, secret opinions, NSLs and government sanctioned lists of "undesirables".

Am I the only one who sees shades of: -Nazi Germany -The USSR -(Cultural Revolution) China -Insert random eastern European cold war regime

<comment><USER28> You forgot the Disposition Matrix (newspeak) which is the Pentagon list of people to summarily execute.

</comment></comment><comment><USER29> Amazingly, both its subject and this "article" itself are covered here: [https://news.ycombinator.com/item?id=7077982](https://news.ycombinator.com/item?id=7077982)

<comment><USER30> which for some reason is being kept off the front page...

<comment><USER31> Stories with "NSA" in the title get an extra penalty applied to them.

</comment></comment></comment><comment><USER32> Big up to the NYTimes. I'm impressed with US newspapers' willingness to speak up despite what they know about the surveillance. Those journalists can expect to be investigated and any wrongdoing will take them to jail. They're brave. We should thank them.

To the people who make those newspapers.

</comment><comment><USER33> > Do not "subvert, undermine, weaken or make vulnerable generally available > commercial encryption" or standards.

I wish so bad that there was at least some kind of address for this. I highly doubt it will hit mainstream attention anytime soon again unless some kind of publicly accessible (read: marketable) scandal occurs to bring the news media around again.

<comment><USER34> I figure that one is way too abstract for him to address in a speech anyway, so I'm not surprised to see it wasn't mentioned. (This article specifically discusses his speech)

<comment><USER35> It is absolutely not "too abstract" to address in a speech. He could have said something like, "This administration regards the technologies of public cryptography as a crucial piece of modern life, and an underpinning of liberty on the internet. As such, I am directing the NSA to under no circumstances attempt to weaken such standards."

If JFK could say, "We're gonna go to the moon, I have no idea how," then Obama can say, "The NSA will not undermine cryptography standards."

<comment><USER34> _If JFK could say, "We're gonna go to the moon, I have no idea how," then Obama can say, "The NSA will not undermine cryptography standards."_

You don't see the difference between those two statements?

Every American can dream about traveling to the moon and the ambition that represents. There's probably not 1% of the country that even understands what cryptography is, let alone how it might be undermined.

</comment></comment></comment></comment><comment><USER36> No reason to trust, no way to verify.

</comment><comment><USER37> I expected this to go to a 404.

<comment><USER38> 304 Not Modified

<comment><USER39> I made a connection to the whitehouse.gov requesting to get change.html and all I got was a 304 error.

</comment></comment></comment><comment><USER40> "Changes" but it will all be in secret, so we'll have to take their word for it. Uh huh.

</comment><comment><USER41> Just enough to make it look like he's doing >something<.

</comment><comment><USER42> i voted twice for Obama, i feared for society if we had to deal with more leaders like Bush. to see a hero of mine fall so hard. I personally feel betrayed... i will never trust a republican, but now i can't trust democrats either. the fact is we need to do git clone github.com/germany/pirateparty.git usaTechParty.

A party that upholds the desires of its supporters, even giving thema voice and instituting some form of liquid democracy.

</comment><comment><USER43> _Newspeak_

Step 1: We are not listening [http://www.cnn.com/2013/06/07/politics/nsa-data- mining](http://www.cnn.com/2013/06/07/politics/nsa-data-mining) Step 2: We will not listen: [http://www.politico.com/story/2014/01/nsa-phone- program-1023...](http://www.politico.com/story/2014/01/nsa-phone- program-102307.html)

Am I doing this right?

</comment><comment><USER44> blah blah Obama just talking, trying to keep us on the edge, give the dogs a bone.

These government people move way to slowly, how long does it take with todays technology to communicate and figure out what needs to change? The longer we just keep 'talking', the longer they can continue with their scraping of data and secrets.

Someone or something is going to have the data; there's nothing that can be done about that. Marketers have been doing for a long time, the NSA just got CAUGHT. Marketers use it to make money by making sure you see the best ad for you, the NSA uses it to make money by 'stopping terrorists'. But what if all the data was free and the programs turing it into useful information were open-sourced? That would change the market entirely. Anyone could see the most important scraped news of the day, whether its a terrorist threat or just thrending news. It could be like a social network that everybody has already joined. Privacy would be interesting. Maybe you could only see from others what you choose to share yourself. But thats too long to get into here...

Clearly what needs to be done is this: the data that the NSA collects should only be accessible by the program. It needs to be fully autonomous. The biggest concern with the vast collection of data and secrets is the human element. So we should simply take the human element out of it. Make an open- sourced program and algorithm that reads the data when it needs to and automatically gets the results to those who need to see it. The code could be posted on github and master pulls can be voted on by the whole world, but we can start with just America maybe at first.

All of America shuts down for simple things such as football and the superbowl, dead peoples birthdays, religious holidays. I think we could dedicate a day or two to a simultaneous conversion about important things happening in our country moderated by artificial intelligence and by the end of the day take action on what we agreed upon. Gallup releases 'polls' so quickly, how come nothing comes from those?

But if we don't trust an artificial intelligence then WHO can we trust? Obama? Clapper? The Pope?

We could physically implement this system ourselves if we needed to, after we figure out what we as a nation/world want. There's a data center in Utah. We could literally go there and take control. but how many people would a 'protest' like that require? and if we come to the conclusion that thats the only other option, we should hurry before the military and Google finalize the perfect humanoid robot. Or else all hope might be lost. The people vs armies of drones and robots. Elysium here we come.

</comment><comment><USER45> Doesn't address reduction or elimination of technical means, and therefore is unacceptable. This can be turned evil with the stroke of a pen.

</comment><comment><USER43> He is a gifted speaker. He talks, sounds like he said something, but analyze and nothing.

</comment><comment><USER46> for months everybody is leaning back, watching information we already knew being unveiled. comfortably everybody is waiting for somebody to do something. for politics to correct itself. now politics reacts, everybody is kind of outraged because, you didn't guess it, they don't do anything instead of lamenting utter bullshit and discussions rise again. endless, as you should know by now, useless discussions pointing out this and that but nobody, in the middle of all confusion, reaches the simple conclusion:

you are fucked. we are fucked. we'll get fucked forever if we go on like that.

but i guess it's too hard for us tech people, supposedly highly educated with great intellect, to wrap our head around this. code, business and money are more important.

better go back to sleep, sheep!

</comment><comment><USER47> Without serious disclosure nothing he says matters.

</comment><comment><USER48> it doesnt matter if the government agency that collects that data is not called the NSA... they still would have it.

</comment><comment><USER49> The US is the "worlds only superpower", "We will not apologize simply because our services may be more effective"..

In other words, nothing is changing, and bad luck if you have an issue with it.

I can honestly say I'm looking forward to China rising.

<comment><USER50> _i 'm looking forward to China rising_

How is China going to help? You think they are going to stick up for privacy and other human rights? Jeeze.

I get the sense a lot of westerns don't know how good they have it even though there system isn't perfect.

<comment><USER49> not at all. I just feel it is time that someone else takes the role of world tyrant for a while. Very sick of USA belting out that holier than thou crap.</comment></comment></comment>


Maybe we could tone down the JavaScript - <AUTHOR> https://eev.ee/blog/2016/03/06/maybe-we-could-tone-down-the-javascript/#reinventing-the-square-wheel <comment><USER2> I read this article and thought YEAH!! Then noticed once I got to the comments that it's from 2016. Which is _really depressing_ because all of the problems mentioned by the author have gotten _worse_ , not better in the last few years. Ironically, the new frontend Twitter is currently beta testing is built using React Native > Web tooling which is laughably non-semantic in the extreme.

I don't know what the ultimate answer is to this, expect that perhaps standards-based Web Components can get good enough that devs will rely more on those approaches than ginormous JS frameworks that take over everything. In the meantime, the web is not a friendly place for old-school devs lacking a JS-ALL-THE-THINGS! mindset (like me!).

</comment><comment><USER3> Trying out a job site I hadn't used before, I found a position at a local startup. A run of the mill startup, but well funded and with a non-amateurish brand _feel_.

Despite being a few simple pages, with not much interactive features and no experimental layout stuff, their website required JS to load — a 3.7MB bundle.

I briefly entertained my pedant side, wanting to send them an email, but I didn't. Let the devs play, let the execs run their racket, let the market sort out whatever.

-

Thinking about the startup's product, it sounds like a convoluted implementation of an existing product from a multi billion-dollar company. So maybe it's turtles, bullshit jobs and inscrutable schemes all the way down.

</comment><comment><USER4> "The reply button, for example, focuses and expands the textbox below. You can't do that without some scripting" \-- Can be done with just CSS :target

"Similarly, the button does an action behind the scenes, which is iffy since you could replicate it with a full page load" \-- Should just be a normal link with a full page reload if JS disabled. Perhaps this could also be a new use of the <a ping> attribute (without a href).

<comment><USER5> Expanding the textbox can, but how would you set focus to another element with css? Genuinely curious, I have just learned about :target and am having this exact scenario in a project of mine.

<comment><USER4> [https://codepen.io/anon/pen/MRqeaQ](https://codepen.io/anon/pen/MRqeaQ)

The <label> was a workaround for some browser but is not needed (atleast in Chrome).

<comment><USER5> Oh easy! Awesome!

</comment></comment></comment></comment><comment><USER6> Article is from 2016.</comment>


An Open Letter to Science... - <AUTHOR> http://mashable.com/2013/09/24/open-letter-to-science/

<comment><USER2> he seems to confuse science for engineering.</comment>


Show HN: Tripnary – Create your travel bucket list and compare airfares in 1 tap - <AUTHOR> http://www.tripnary.com

<comment><USER2> Sorry to be "that" guy again but it's yet another website overwriting my browser's scrolling behaviour which makes it really annoying to explore the site. I don't know why people think it's necessary to "fix" my browser.

<comment><AUTHOR> So sorry about that. Would you mind sharing what browser you are using, so we can take a look at it.

<comment><USER3> Why do you need his browser just to disable this feature? If that helps scrolling is broken (AKA not the same as in any other site) in Firefox and Chromium under linux.

<comment><AUTHOR> We hadn't observed this before, so I wanted to make sure we were able to reproduce it and test the fix.</comment></comment></comment></comment>


NYC to Close 40 Miles of Streets to Cars, Mostly Near Parks - <AUTHOR> https://news.yahoo.com/nyc-close-40-miles-streets-143303512.html <comment><AUTHOR> Is there an opportunity here to redesign NYC's street level traffic?</comment>


How Rackspace Supports Code For America Fellows - <AUTHOR> http://www.rackspace.com/blog/how-rackspace-supports-code-for-america-fellows/

<comment><USER2> This is a great opportunity for Rackers to give back, and an excellent organization to partner with. We're looking forward to rolling this same support system to other organization like Code For America and mentorship groups.

</comment><comment><USER3> Woohoo!</comment>


Singapore - the world's biggest startup - <AUTHOR> https://medium.com/on-startups/549c553e67a1

<comment><USER2> A classic case of Singapore indoctrination. Living there myself, I can tell you that customer service and efficiency is just plain bad - the level of service you get in most stores would require most of them to close down if they were to be located in Western Europe.

Public housing is run as a tight ship, because the government makes tons of money from it - supply is so tightly regulated just to make sure that prices don't go down - why don't you just ignore that it makes accommodation for a lot of people nearly impossible, that it has increased the wealth gap, and that the city is as gentrified as it can get, turning it into sterile and boring place, playground for the rich. Measures to cool the market are just measures to prevent a popping bubble, but definitely no measures to make it affordable for those who can't pay for it (now, and probably never will).

Sure, Changi is part of another league when it comes to airports, and the MRT is one of the better public transport systems (yet still miles away from Japan or Seoul IMO) but please, don't generalise it for all Singapore businesses.

<comment><USER3> The one area that I really like about Singapore is their taxi. They are cheap enough that I wouldn't think twice about using it rather than the trains or the buses. They are everywhere, even in smaller suburban areas. The drivers may be a little bit off-handish, but I am looking for a ride not a conversation.</comment></comment>


The Startup Explosion - <AUTHOR> http://www.economist.com/blogs/economist-explains/2014/03/economist-explains-25?fsrc=scn/tw/te/bl/ee/thestartupexplosion

<comment><USER2> It will be interesting to see in a few years if in fact we are in the midst of a new tech bubble. With sky high valuations for new companies (Zynga, King, WhatsApp, Nest, etc.), at some point prices will have to crash down to more formal valuations of future value.

As for the startup boom: the costs have decreased and the payouts have increased. The risk/reward ratio is in favor of development and a lot of these new products are amazing. These new companies are pushing the boundaries while the legacy corporations are slow to respond and change.</comment>


Surprise collapse of regional Chinese bank sets off domino effect - <AUTHOR> https://www.axios.com/baoshang-bank-china-central-economy-cf371908-31df-4eb4-a811-37ab39d877b2.html <comment><USER2> [https://news.ycombinator.com/item?id=20315086](https://news.ycombinator.com/item?id=20315086)

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

</comment><comment><USER3> This is not a dupe. Do people even read the linked articles? This mentions investments funds in Switzerland that imploded, not just China.</comment>


Student debt is over $1.6T and hardly anyone is paying down their loans - <AUTHOR> https://www.cnbc.com/2020/01/16/student-loan-debt-is-over-1point6-trillion-and-balances-arent-going-down.html <comment><USER2> It's surprising that such a small proportion is reducing the balance of their loans.

Cancelling debt in some ways sounds appealing, but it has the unfortunate effect of punishing those who are the most financially responsible. This is both in the payments they've made that they didn't have to, and the future societal taxes that will be required to retire that cancellation debt.

Lots of moral hazard at work.

<comment><USER3> The biggest moral hazard is on the front end - most loans are government guaranteed, so banks are making a risk free profit from which borrowers are legally prevented from defaulting on (i.e. you can't escape the loans through bankruptcy).

Until this is fixed, everything else almost doesn't matter.

</comment></comment><comment><USER4> Pumping young and dumb people full of debt is bad design. This phenomenon will die as we upgrade the economy.

<comment><USER5> Change is not going to come easy considering us government is profiting off student loans while running a massive deficit.

</comment></comment><comment><USER6> When the govt makes a profit off student loans, there is a problem.

Look at the interest rates.. I know people like myself are paying every month, but does not feel like I'm making a dent.

</comment><comment><USER7> Education should be free before healthcare is made free. Both should be free if the country can afford it. If people are educated, free healthcare will not be required to be "explained" or fought for.

<comment><USER8> Universities already use student loans as a means of converting taxpayer money into institutional and personal wealth. Convince employers that people without a degree are worthless, then charge tens/hundreds of thousands of dollars for a degree, then get the government to give out credit to people who would never ever get that kind of credit otherwise, so they can pay for the degree they don't really need (and end up working at starbucks anyway). Note the part of the article explaining how nobody is paying their student loans.

Free education only works when the entire education system isn't rent seeking. Otherwise, you're just setting up a taxpayer funded money fountain for unscrupulous administrators.

At least with healthcare, people generally don't use it unless they actually need it.</comment></comment>


How Mephisto (popular Ruby blog software) did their security audit - <AUTHOR> http://mephistoblog.com/2008/12/21/mephisto-security-advisory

<comment><AUTHOR> I don't much care that they found stuff (I don't use Mephisto), but I thought it was an interesting case study.</comment>


Don't Say "Homoiconic" (2018) - <AUTHOR> http://www.expressionsofchange.org/dont-say-homoiconic/ <comment><USER2> Like most people, I'm going to keep using the word "homoiconic" because it is a useful term.

The article just shows that if you insist on an absurdly strict definition you end up with nonsense. Even the "strings" based definition doesn't work if you're being especially literal, since there are no strings, there are just electrical fields that may or may not be in physically nearby places.

Everything in software is, at some level, an abstraction. And that's okay.

S-expressions are merely a textual representation; Lisp systems don't normally store exactly the text representation. So what? The upshot is that homoiconic representations make certain kinds of transformations easy to use, understand, and display... and that's what people mean today.

I agree that homoiconicity is not strictly boolean, but that doesn't make it a useless concept.

<comment><USER3> In language as long as the other people know what you mean it's totally fine. Context is all that matters.

It's only a problem if there was already a meaningful term closely related to what you mean and you're simply using incorrectly which might confuse people. In that case it's okay to challenge the word use.

Otherwise I never understood some people's obsession with not reusing words in new places. Other than to be "right" about something.

It's then really only useful as a historical look at the term.

<comment><USER4> There is a single context for the (ab)use of "homoiconic": the context of classifying programming languages/features.

Now, of course, there can be smaller subcontext contexts, like "Bob's paper about classifying programming languages". In such a thing, Bob can define black to be white, if Bob wants; however, that definition ends when we turn over the last page of Bob's paper and return to reality.

</comment></comment></comment><comment><USER5> How about "defining" homoiconic to mean that it's easy to manipulate programs? More specifically, say a programming language is homoiconic if (1) the standard library for the language includes a parser, and (2) the parser returns data structures that are easily manipulated by functions in the standard library.

Point (2) can be achieved by having the parser return generic data structures such as lists, arrays and hashtables for which the standard library will probably have lots of convenient functions (this what Lisps do); or by having a dedicated AST data type, but including a bunch of AST manipulation functions in the standard library (like Template Haskell).

Of course, this isn't a very precise definition because it relies on the undefined terms "parse" and "easily manipulated". Does read_file_to_string() count as a (trivial) parser that produces strings, which can be easily manipulated by standard string functions? The idea is this doesn't count, but I'll leave the problem of defining what counts as a parser to other philosophers of programming languages. :)

<comment><USER6> Unless I'm missing something, there should be (3) these structures can be passed for evaluation immediately at runtime, linked to that runtime, including access to current activation record's data, global symbols and so on. Without that, (1,2) is simply an ast transformer, and as far as I understand it, doesn't count.

E.g.

      var st = new IfStatement({
        cond: new ArgExpr(1),
        body: [
          new AssignStatement({
            dst: new LocalVar('a'),
            src: new Constant(5),
          })
        ]
      })
      st(true)
      console.log(a) // 5

Both code and data may be a list, but also may be a struct/array hierarchy. With modern attitude though, eval(str) and non-local goto would seem as cute kittens when compared to this power.

<comment><USER5> Oh, you want the homoiconicity to serve a purpose. I guess that's reasonable. :) Although, I'd say that a dialect of Lisp with no runtime eval, but with compile time macros would still count as homoiconic and your suggested (3) doesn't seem to allow it.

<comment><USER6> But... macro compile time may be seen as just one pass of reading, evaling in almost the same runtime and saving an image for later reuse. If we got these (var st = x), (var y = 1), (function main), etc in column 1 and then just run one pass of js, we would be able to "compile" it, i.e. (exit (save (optimize (eval (read))))), and then run main() with no IfStatement defined. I mean, isn't compile-time a little vague term when macros are 'evaluated' in essentially the same rich environment, and it's only wanted coincidence that the point separating compile/run time is the same as the execution stage where no macros remain unevaluated? (ed: but still no io performed except for source codes and static resources)

When we write say heavily templated and const_expr'ed C++ to output the results of these exprs, do we pretend that we then run a binary or that we ran a C++ program once and cached results in an executable format?

</comment></comment></comment></comment><comment><USER7> > "In a homoiconic language, the primary representation of programs is also a > data structure in a primitive type of the language itself."

I believe the author is misreading this definition.

> "First, consider that most languages have a primitive datatype for strings > of text"

The defintion says "data structure", not "datatype". A string is a datatype, not a datastructure.

> "Second, for most languages, it is possible to write a parser in that > language itself, that stores the resulting abstract syntax tree in a > primitive type in the language."

This is completely besides the point as the definition references the "primary representation", not a represenation that can be built using a parser.

<comment><USER8> Spot on. Even if you allow the string to be considered a (rather simple) data "structure", when we talk about homoiconicity we (explicitly or implicitly) exclude strings from the set of data structures under consideration.

<comment><USER9> Unless we're talking about Tcl. Its homoiconicity is based on strings.

<comment><USER10> TRAC also. Probably why it was so slow, but a friendly language.

See Ted Nelson's Computer Lib (p18) for a nice description of TRAC.

<comment><USER11> A discussion of it is also linked from the main article: [https://dl.acm.org/citation.cfm?doid=800197.806048](https://dl.acm.org/citation.cfm?doid=800197.806048) .

</comment></comment></comment></comment></comment><comment><USER12> I haven't found the term particularly useful either. What I do like to say is that in Lisp, _the AST is a public interface_. That is, the AST is defined by a specification and is not going to change, so that you can write code that manipulates it and know that the next compiler version won't break your code — indeed, it's portable across implementations. Also, the AST's structure is relatively simple to explain (though there are some "gotchas" you have to watch out for when manipulating it, like inadvertent variable capture), and macros provide a convenient interface for receiving an AST from the compiler or interpreter and supplying back a transformed AST.

Other languages could provide similar facilities, and indeed a few have done so. But the more complex the syntax of the language, the more difficult it is to do that in a usable way.

</comment><comment><USER13> I agree with the conclusion, that what we call homoiconicity is a scalar, not a boolean. And I agree both in this case and in general that people should talk about languages more directly ("the syntax is easy to parse", "the semantics of the language are completely defined on the single page of a book") rather than label them as homoiconic or not.

If you'd like good argument for writing in languages that call themselves homoiconic, you can see Bawden's Quasiquotation in Lisp. Its section 2.1 compares writing a program that generates programs in C, versus Lisp, first without quasiquotation, then with.

[https://3e8.org/pub/scheme/doc/Quasiquotation%20in%20Lisp%20...](https://3e8.org/pub/scheme/doc/Quasiquotation%20in%20Lisp%20\(Bawden\).pdf)

<comment><USER14> Nitpick, but booleans are perfectly ordinary scalars. Maybe the author (and you) might prefer something like "homoiconicity falls on a spectrum" or "homoiconicity isn't a binary property" or some other ordinary way to make this statement.

I quite liked your link. Instead of deciding what the word "homoiconic" ought to mean, it just showed what you can do in a homoiconic language with quasiquote syntax. Delightful and to-the-point!

<comment><USER11> > Nitpick, but booleans are perfectly ordinary scalars.

I think most people use 'scalar' to mean something like "real number" (maybe "complex number", or maybe "real number in a specified interval"). In this context, a Boolean _is not_ a perfectly ordinary scalar. That is to say, it is certainly easy to _coerce_ a Boolean to a real scalar in [0, 1]; but this is a _transformation_ , and not the identity—the Boolean True is not the scalar 1, nor is the Boolean False the scalar 0.

As evidence for this, I'd point out that there is no reason that we couldn't coerce the Boolean True to the scalar 0, and the Boolean False to the scalar 1. But, you'd point out, I'm wrong; with these coercions, the nice identities x AND y = xy and x OR y = x + y - xy would fail. I agree! But these nice identities show once again that Booleans, even once coerced, aren't scalars, because the algebraic operations on them differ from the algebraic operations on real scalars.

(Or maybe your point was that Booleans are perfectly ordinary scalars in the field with 2 elements. I guess I can't argue with that, except to say that I don't think that most people envision "perfectly ordinary" scalars living there.)

<comment><USER15> Yeah—technically, a scalar is just whatever type can be used to multiplicatively scale a vector in some given vector space but, at least in computing, it's pretty clear that people just mean "some kind of integer or real number, definitely not a collection/enumerator type"

<comment> r-w Wasn't clear to me at all. A scalar is any kind of singleton number, but it doesn't exist _in contrast to_ boolean values; rather, it _includes_ them. "Exists on a spectrum/scale" or "is a real number" would be universally understood ways of communicating that particular meaning.

The notion of "fuzzy logic" is especially relevant: [https://en.wikipedia.org/wiki/Fuzzy_logic](https://en.wikipedia.org/wiki/Fuzzy_logic)

<comment><USER11> > A scalar is any kind of singleton number, but it doesn't exist in contrast > to boolean values; rather, it includes them.

But this was exactly my point: scalars, regarded as 'singleton number's, _don 't_ include Booleans, because Booleans _aren 't_ numbers, singleton or otherwise. (Unless, again, you wish to regard them as belonging to the field with two elements.) Booleans can be _coerced_ to numbers, but the way to do so, even if we agree that the two numbers are 0 and 1, is _arbitrary_ —unless we require that certain algebraic identities hold, identities that indicate that the (usual) algebra of Booleans is not the (usual) algebra of real numbers.

It is a nitpick, to be sure; but (a) part of the point of types is to facilitate, and even automate, exactly this sort of nitpicking, and (b) it was in response to a nitpick, too.

> The notion of "fuzzy logic" is especially relevant: > [https://en.wikipedia.org/wiki/Fuzzy_logic](https://en.wikipedia.org/wiki/Fuzzy_logic)

Agreed! It indicates that _coercing_ Booleans to numbers suggests fruitful analogies, but, again, says to me that they are _not_ actually numbers. (Once again, I point to their operators, which, from a computer-science as well as a mathematics point of view, are part of what a scalar, Boolean, or whatever _is_ : [https://en.wikipedia.org/wiki/Fuzzy_logic#Fuzzy_logic_operat...](https://en.wikipedia.org/wiki/Fuzzy_logic#Fuzzy_logic_operators) .) These indicate that perhaps one should think of Booleans as belonging to a continuum of values coming from a tropical-type structure ([https://en.wikipedia.org/wiki/Tropical_geometry](https://en.wikipedia.org/wiki/Tropical_geometry)) rather than from a field as 'usual' scalars do.

</comment></comment></comment></comment></comment></comment><comment><USER16> "... the original definition: languages which have the same external and internal representations are homoiconic."

I would re-phrase that as: "Languages whose external and internal representations of their programs are (to a great degree) ISOMORPHIC, are, and should be, called homoiconic."

What does "iconicity" mean? It means isomorphism, meaning the structure of two things are similar, one can be taken to be a picture, an "icon" of the other.

Lisp clearly has this property. It is clearly homo-iconic. And most importantly most other languages do NOT have this property. Therefore "homo- iconic" is a very useful property which can be easily used to divide programming languages into two groups, those that are and those that aren't.

The original definition is bad: "which have the SAME external and internal representations". "Sameness" is not what homo-iconicity is about. It is about the structures of the external and internal representation being SIMILAR enough that one of them could be considered an ICON, a PICTURE of the other. Perhaps we should stop using words like "similar" as well? They are not "boolean" are they?

Clearly 'homo-iconic" has a sound well-founded meaning, even if not everybody gets it. It is a subtle concept similar to understanding why something can be used as a metaphor for another thing. Not everybody gets metaphors either.

<comment><USER4> > _Lisp clearly has this property. It is clearly homo-iconic._

Firstly "Lisp" is a language family; which member are you talking about?

ANSI Common Lisp only _hints_ at a form of homoiconicity, but leaves all of it implementation-defined. Namely, the function _ed_ :

[http://clhs.lisp.se/Body/f_ed.htm](http://clhs.lisp.se/Body/f_ed.htm)

A Lisp implementation which compiles everything and throws away the source will not support function editing with _ed_.

Compiled functions are not similar to the source; they cannot be edited as source and recompiled.

I haven't heard of anyone organizing their Lisp workflow around an _ed_ function, which would then count as relying on homoiconicity.

Bash is homoiconic: the _set_ command with no arguments dumps out all function definitions, which are reformatted as text from a tokenized form. There isn't a nice feature to edit a function though, other than copying and pasting out of the output of _set_ , or else recalling the original definition in the history.

Speaking of which, interactive environments, including command lines with history recall, provide a form of homoiconicity. The command histories or integrated edit buffers hold functions in their original form, allowing them to be edited and redefined. (But those stored forms are outside of the language; they are not the function definitions themselves. It's not the language _per se_ being homoiconic.)

When people say "Lisp is homoiconic", they are certainly not talking about the obscure _ed_ function in ANSI CL. Well, that's what they're _not_ talking about. What they _are_ talking about is anyone's guess, but probably they are using the wrong term for the concept of a language being written in terms of a generic tree data structure that expresses all possible syntax tree shapes, and which is manipulable in that language.

<comment><USER16> If a Lisp program is "compiled" the internal binary representation is no longer "Lisp", it is machine-code. So I think that is besides the point. What matters is the viewpoint of the programmer, what kind of "language" they read and write.

From a Lisp-programmer's point of view they write both their data and their functions as lists. For programmers of a homoiconic programming language the programs have the same general structure as data.

What better name for such property than "homoiconity"?

<comment><USER17> The compiled function is a particular end product. But there are stages between source code as text and a compiled function, where the source code as data plays a role: interning of data via the reader, macro expansion, etc... In an implementation with a Lisp interpreter its obvious: the executing code is still the source code as data format.

> From a Lisp-programmer's point of view they write both their data and their > functions as lists. For programmers of a homoiconic programming language the > programs have the same general structure as data.

Right, that would be one aspect. Another one is that that source code as data property is actually used in the toolchain. For example PPRINT (pretty print) will create an external representation of a program as text, from the source code in data form. EVAL will take the internal representation and will execute it somehow. The macro expander gets the internal representation and does transformation of those.

> What better name for such property than "homoiconity"?

Don't know, but 'homoiconic' makes no sense to me. 'iconicity' is a complex concept (or several related ones) and its not clear to me what the obvious meaning of homo-iconicity would be...

One can define a meaning for homo-iconicity, though. But I haven't seen a clear and or formal one yet.

<comment><USER16> I can manipulate my Lisp-program as a set of nested lists, which is the same structure as I see in my source-code-editor.

What I see in the editor is the same structure of nested lists as when I program and execute my macro-definition. My source-code has a 1-to-1 correspondence to the data-structure which is the internal representation of my program (when I execute the macro).

The internal (what I manipulate in my code) and external (what I manipulate in my text-editor) representations have the same structure. They are not the "same". But they have the same structure. That is a pretty fantastic property for the language since it makes it simple, I don't need to do a mental translation from the source-code to the structure I can manipulate in my program.

Now it seems to me that someone somewhere came up with the name 'homoiconity' for this property. I think that is a much better name than anything else I can think of.

'homo' refers to the self/man/human in Latin and icon refers to "likeness, image, portrait". So source-code of a Lisp-program is a "picture of the program itself, a picture of itself". Very homo-iconic.

> One can define a meaning for homoiconicity, though.

It's not like we have words for which we must "define a meaning". It is that we have important concepts which deserve to have a word denoting them. We don't need to "define" a meaning for the word 'homoiconic', we need a word for the generally interesting property of languages like Lisp discussed above. Ah but we already have a word for that: "Homoiconic".

<comment><USER17> > structure

I don't see the connection of this kind of structure, with 'iconicity'. Iconicity is usually more concerned with the form of a symbolic shape and the connection to its meaning. Structural aspects can play a role, but they are still connected to some meaning (which connects it to the human understanding).

Source code in a text editor is not a 'picture' or 'shape' or 'icon'.

<comment><USER16> Source-code in a text-editor has a shape.

Lisp source-code in a text-editor has a structure expressed with parentheses. 'icon' refers to "likeness, image, portrait".

The structure of Lisp source-code is the same as the structure of the internal representation of the same program produced from that source-code which your Lisp program can see and manipulate. There is "likeness", meaning iconicity, between the two representations, because the two structures are "alike".

<comment><USER17> > Source-code in a text-editor has a shape.

not an iconic shape

> 'icon' refers to "likeness, image, portrait".

source code is none of that. it's text.

<comment><USER16> Source-code is not only text. It has structure which must follow specific syntactic rules. It is not free-form text like what we are writing here. It has structure which is the same thing as saying it has 'shape'. And that shape "forms" an image, is iconic, for the internal structure of the program which you see when you manipulate it within your Lisp-program.

An image is not the same thing as the thing being imaged. Ceci'nest pa une pipe. But you can see the structure of the thing being represented by looking at the image, by the "icon", why, because the structure of the image is (to a large degree) same as the structure of the thing being imaged. Similarly the syntactic structure of Lisp source-code let's us see the structure of the program that is generated by that source-code.

It is iconic. It is iconic to the thing it represents, the program, which in a sense is the same thing, just a different, but structurally isomorphic representation of the program itself. It is homoiconic.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER18> An excellent talk by Sturart Sierra that covers much of the same ground "Homoiconicity: It Is What It Is" [https://www.youtube.com/watch?v=o7zyGMcav3c](https://www.youtube.com/watch?v=o7zyGMcav3c)

spoiler: his talk also does not finish with a definition of homoiconic either

</comment><comment><USER19> My response: clever article, but whatevs.

Lisp is homoiconic because the syntax for code matches the syntax for a list. Keep saying it.

</comment><comment><USER20> To me this article feels like someone working really hard to find an objection to something (may or may not be true, but it feels that way to me).

The first line of the article's conclusion is "Homoiconicity is a term surrounded by much confusion." I simply do not agree with this assertion.

I was introduced to the term many years ago, and I have have read it in numerous contexts, and the meaning has been quite clear in every context I can recall.

I also will keep using it the way I am now, since I see absolutely no reason to stop.

</comment><comment><USER21> My only problem is that the term is a feature not a benefit. The two most powerful ideas in lisp are the lack of statements (everything is an expression, even atoms) and the macrology (which pretty much requires expression-only, and of course requires the Mooers/Deutsch coinage of...homoiconicity).

Eval is great but unavoidably requires special forms. That's just life: you can't be circular; at best you can be metacircular. It's like the second law of thermodynamics.

</comment><comment><USER22> This is a great article. It takes a pedantic point about an answer that "everybody knows", and manages to make a compelling case that the way we use this vocabulary is suboptimal.

Great find!

</comment><comment><USER17> I'm not a big fan of 'homoiconic' either. I'm more in the 'source code as data' camp.

> The first objection concerns the external representation. In the above we > simply stated that the external representation is an s-expression. In most > practical programming environments, however, the actual representation of > program sources is as text files which contain strings of characters. It is > only after parsing this text that the representation is really an > s-expression. In other words: in practical environments the external > representation is not an s-expression, but text.

The point is that Lisp s-expressions are an external representation of data and that Lisp programs are represented as s-expressions. Various programmatic interfaces see this source code as data: for example the function EVAL or the macro expander.

> The second objection concerns the internal representation. Practical > implementations of Lisp interpreters do generally not operate actually > directly on s-expressions internally for performance reasons.

Actually they do. The definition of 'Lisp interpreter' is that it operates on source code as data (lists, symbols, ...). Lisp has other ways to execute: as compiled byte code, as compiled native code, etc. -> but that's not a Lisp interpreter.

</comment><comment><USER23> I always had the impression homoiconicity could be used to do interesting machine learning applications, becauee the programm could easily modify itself. Did this happen?

<comment><USER24> It wasn't successful.

It seems that it's more important for the algorithms to be emberassingly parallel and so work on big data than to be flexible.

<comment><USER25> What exactly does that have to do with machine learning and neural networks?

</comment></comment></comment><comment><USER26> [http://taeric.github.io/CodeAsData.html](http://taeric.github.io/CodeAsData.html) is where I took my stab. Lisp is the main language I know where you can write a function, and write code that can both symbolically run a derivative, and let you use that derivative just like any other function. Without having to dive into a bunch of AST specific structures to do it.

It really is a shame that people think the eval of javascript and python is equivalent to the eval of lisp. It is crazy just how different they are, once you see it.

</comment><comment><USER27> Ugh. Comp sci has enough Andy Rooneys already.

</comment><comment><USER4> Kind of echoes a reddit comment I wrote two years ago:

[https://www.reddit.com/r/lisp/comments/5h2kdc/homoiconicity/...](https://www.reddit.com/r/lisp/comments/5h2kdc/homoiconicity/dax1ude/?st=jz91ye0l&sh=92838870)

</comment><comment><USER28> What about using the word "homoiconic" when we mean its meaning: "homogenous icons" other said, a regular and equivalent representation of all its tokens. The article sort of tries to validate its point from a historical approach, but kind of ignores the meaning of the word by its compounds. Will continue using it.

</comment><comment><USER29> The HP 48 calculator seems fairly homoiconic. Binary compiled programs and symbolic ones alike can be pushed on the stack, stored, dropped.

</comment><comment><USER30> Way ahead of you there, bud.</comment>


PlanetScale migrates open source Vitess test suite from Python to Go - <AUTHOR> https://www.cncf.io/blog/2020/04/20/planetscale-migrates-open-source-vitess-test-suite-from-python-to-go/ <comment><USER2> With Moore's Law stopped I think we're going to see more and more of this: developers squeezing speed out by seeking out more and more efficient runtimes. It's the only way we'll get faster code in the forseeable future. The new languages are all compiled -- Nim, Zig, Crystal, and Go. I don't think that's a coincidence.</comment>


Google Is Censoring Search Results to Hide Russian Corruption - sahin-boydas https://futurism.com/google-censoring-search-results-russia <comment><AUTHOR> Misleading headline. Google is censoring their results IN RUSSIA according to whatever local law is in action there. They do the same in European countries and, be strong now, in the US.</comment>


Venmo did what with my data? My location was shared when I paid with the app - <AUTHOR> https://www.usatoday.com/story/tech/2020/02/22/venmo-noom-solitaire-shared-my-personal-info-data-firms/4795546002/ <comment><USER2> It is to be expected. This should have been made public immediately. It is bad for business and for consumer trust. We need a way to track Data on a global scale and be better at handling errors..</comment>


Ask HN: Would you pay for a social network? - <AUTHOR> Hi all! There has been a lot of talk on HN lately about alternatives to platforms like Facebook, Google+, Twitter, etc. It seems like there is a reasonable demand for a platform that users pay for.
So that is what I've been working on. With Clique (clique.app), our customers are our community, not advertisers. Users will drive the development of new features and have total control over what they see and how they share their lives with others. Clique also aims to be highly extensible, with an API and integrations for other communication and productivity software (share suggestions here or with email@example.com)
We have been running a private testing phase and we are looking to expand it with a larger user base. If you go to our website you can join the waiting list; those who do will receive a free month once we launch (no CC required). Participation in our beta program of course, is free.
All that said, this is an Ask HN. What would Clique (or any other platform) have to do to earn your dollars? <comment><USER2> I would potentially pay for a social network, but it would depend on a lot of details. And I haven't spent much time thinking about it yet. But if you'd like to continue the conversation, feel free to drop me an email. email@example.com

</comment><comment><USER3> Background: I worked in a social networking startup Jaiku (acquired by Google) in the early days of social media boom (2006-2007) and have thought about these things since.

Trying to monetize social network service through subscriptions or other type of payments from users have been tried several times since the dawn of digital social networks, and I think there is quite much evidence that it doesn't work for generic social networks such as Facebook and Twitter.

I think pg himself once said that "Information wants to be free". There is a certain truth to it that also applies to social networks.

Social networks that have been able to monetize by subscription model mainly deal with some kind of exclusivity. For example, three types of social networks that people are willing to pay for:

1) networks in which people share information that can be used to gain financial benefit. An example: ValueInvestorsClub.

2) exclusive networks that offer an access to hard-to-reach people. There are digital versions of these, but good examples from physical world are invite- only social clubs popular in London, New York, and other cosmopolitan cities.

3) Social networks targeted as internal communication tools to companies and other organizations. These usually monetize explicitly by offering a better controls who you can invite, remove and how you can restrict access in finer granularity. Examples: Yammer, Slack.

Fourth kind of successful monetization strategy involving payments from users is mostly seen in games and other types of virtual worlds. People buy digital outfits, avatars or other digital goods that help them to express themselves or stand out from other users. I haven't seen this model working very well in social networks in which users use their real identities: dating sites are an exception, but they usually are not considered social networks, even if there are elements of social networking in Tinder, OkCupid, Match.com etc.

If I were you, I would study history of failed and successful social networks and community tools both deeply (try to understand the details of mechanisms that the services were using) and broadly (don't restrict your study just to what we currently consider social networking platforms like FB).

Understand what has been tried, what works, what didn't work. It will be very enlightening.

<comment><USER3> I forgot one approach: Charge content creators. An example: Soundcloud. This was very much touted as the best strategy during the Web 2.0 era by thinkers like Joi Ito. However, I haven't seen it working well for generic social networks. The network has to be build around specific kind of content/audience.

</comment></comment><comment><USER4> Nah, I wouldn't pay for a social network, and I don't think there's anything a social media platform could do to earn my dollars (or pounds in my case).

The only hope in hell you'd have to incentivise me to join such a network would be to get every friend, family member and celebrity I follow/associate with to join first, and even then I'd be hesitant to pay money for something that feels like it should be free.

Sorry.

</comment><comment><USER5> I would definitely pay, but I know a lot of people who wouldn't, and the value of a social network is also about having those people there.

I think a social network that's paid from the start is doomed. It should be free at least at the beginning to attract a critical mass; once that's done, people are hooked and have no easy way out, so you can start charging and most will stay (this is what allows Facebook to get away with pretty much anything nowadays, since people have no other alternatives).</comment>


Thanos.js Reduce the total file size of your project down to 50% - <AUTHOR> https://thanosjs.org/ <comment><USER2> Link for curious: Netlify Drop - Drag & Drop. It's online

[https://app.netlify.com/drop](https://app.netlify.com/drop)

Bookmarked for random friends uses cases. Looks super simple to use.

</comment><comment><USER3> As much as I enjoy the Thanos meme, if the purpose was to advertise Netlify Drop, wouldn't making a page about that get more traffic?

</comment><comment><USER4> I'm a fan</comment>