How much energy can you store in a stack of cement blocks? - <AUTHOR> https://www.wired.com/story/battery-built-from-concrete/ <comment><USER2> Previous discussion: [https://news.ycombinator.com/item?id=17789456](https://news.ycombinator.com/item?id=17789456)

</comment><comment><USER3> The wired.com article says:

> assuming energy transfers are 100 percent efficient—which they aren't.

A startup doing a large scale version of this idea using commercial tower cranes claims 85% efficiency, but take that with a grain of salt:

> The round-trip efficiency of the system, which is the amount of energy > recovered for every unit of energy used to lift the blocks, is about > 85%—comparable to lithium-ion batteries which offer up to 90%.

[https://qz.com/1355672/stacking-concrete-blocks-is-a- surpris...](https://qz.com/1355672/stacking-concrete-blocks-is-a-surprisingly- efficient-way-to-store-energy/)

Of course, the gold standard way of doing this is with pumped hydro, hovers around 80% efficient.

> The round-trip energy efficiency of PSH varies between 70%–80%, with some > sources claiming up to 87%.

[https://en.wikipedia.org/wiki/Pumped- storage_hydroelectricit...](https://en.wikipedia.org/wiki/Pumped- storage_hydroelectricity)

<comment><USER4> 85% at least seems fairly reasonable. Your main losses will be in the motor/generator, and that sort of roundtrip efficiency is doable there. Hydro will be a bit worse as you'll also suffer from turbine losses, but the coupling between a motor and a concrete block will be nearly 100% efficient.

</comment></comment><comment><USER5> I must be getting old and cranky. "This is sort of awesome" seems like the most asinine opening to a magazine article ever written.

<comment><USER6> Welcome to the new world of journalism where no one pays subscriptions and writers mostly interns surviving on click bait.

<comment><USER7> The author is a physics professor, not an intern.

<comment><USER8> The parent poster didn't suggest otherwise.

Thanks for making me aware that the author is a prof! But I'm afraid that makes things even worse. As I see it, the writing quality is barely acceptable for an intern: it's so colloquial it almost buries the core message, and it's full of very irrelevant details. Two examples: (1) We're talking about straight vertical lifting from the start, so why bother giving the formula that considers the angle of the force vector? (2) why analyze the energy flow of stacking barrels when the most straightforward implementation (as discussed later) deals with simply lifting barrels some height above ground level?

This article could have been more clear and more approachable after editing it down to half the text.

</comment></comment></comment></comment><comment><USER9> Cost is listed as "less than $2m" for a capacity of 20MWh, charge/discharge rate not specified but probably a low "C" factor of that. $100/kWH? That's actually very favourable when compared to batteries; I see Tesla Powerwall prices in the >$400 range.

As others have noted, it's not very space-efficient. Compare with [https://en.wikipedia.org/wiki/Cruachan_Power_Station](https://en.wikipedia.org/wiki/Cruachan_Power_Station) : you'd need 355 of these to equal its capacity. I suppose you could start dotting them in groups around wind farms?

<comment><USER10> Driving an down some hills can regenerate 400-500 Wh, at least in my hybrid, so it would take 40 million electric cars to convert 20 MWh in this way.

On the topic of energy density, other solutions - like the house-sized lead- acid battery - have been proposed on the grounds that energy density isn't as important for stationary power stations as other factors, like the vampire effect. Losing 1% of your charge per day is a big issue when storing 20 MWh.

<comment><USER9> Not sure about that charge loss question; it depends on how often you're cycling the battery, if it's charged and discharged every day then self- discharge losses may be much smaller than inefficiency losses or the wearout cost on the battery. 1% of 20MWh is 200kWh or about £30 of electricity.

The other unclear factor is "C" rate. Is it actually possible to do a full 20MWh cycle in a day?

</comment></comment></comment><comment><USER11> If the math works out so well then why don't elevators and other apparatus that lift things with electric motors use batteries and regenerative braking on the way back down in order to mostly offset the energy cost of operating them?

I'm betting the economics of recovering gravitational potential energy don't really work out in most use cases.

<comment><USER12> Elevators are not cranes. There is always a counterweight, so "dropping" empty cabin is not generating energy. During that time you're lifting counterweight.

<comment><USER13> Wouldn't the counterweight only balance (a guess) an empty elevator? Therefore any added weight would be useful for energy recapture?

I realize there may be some over compensation in play, but unless the counter weight's weight is actual adjusted for each load, there should be something to work with.

<comment><USER14> Regenerative elevators do exist. I've no idea what they cost, but, shooting from the hip, I'm guessing they aren't worth the added price on any but the biggest buildings.

Any weight difference due to meatsacks in the elevator will be relatively small compared to what a drum full of concrete weights. Going off the math in TFA, and assuming your average meatsack weighs 75kg, lifting one of them 15 meters up (so, roughly, to the top floor of a 6 story building) stores about half a smartphone battery worth of potential energy. So you probably want to be lifting them _much_ more than 15 meters - and be packing your elevator cars full of them - if you want to pay off the cost of the fancy regenerative kit in any reasonable amount of time.

</comment></comment></comment></comment><comment><USER15> I'm a little embarrassed that in all of the discussions I've heard about ways to store solar energy for dark periods, I never noticed that this kind of solution was omitted.

I wonder how it stacks up against the more commonly discussed approaches.

<comment><USER16> Eh. (imho) Hydro pumping is way more simple, and is just limited by the fact that you can't have it wherever you want.

Also concrete is not exactly environmentally friendly to make.

<comment><USER17> This actually seems like the more ecological design, as the concrete used for weight here would be less than the amount used for a dam, and you wouldn't also have to pervert the flow of a river in order to build it. Besides, one time costs are trivial compared to running costs of industrial processes in terms of the environment, especially in terms of power production.

<comment><USER18> > as the concrete used for weight here would be less than the amount used for > a dam

Think that through.

A dam probably holds 100 or 1000 tons of water for every ton of dam material.

A concrete weight holds exactly on ton of concrete for one ton of concrete weight material.

And "amount of weight helt", be it water or concrete, is Exactly what matters here.

</comment></comment></comment></comment><comment><USER19> So instead of using a crane, I think you could make something similar to the chain that pulls a roller coaster up.

So you would have a tall vertical tower and at the bottom it transitions to a horizontal conveyor belt. Each of the drums are attached to the chain that is connected to the motor. When you run the motor is pulls the barrels from the horizontal conveyor and up into the tower. Then when you need power you let the barrels fall and spin the motor, and collect on the horizontal conveyor.

Still not saying it is a practical battery, just seems more reasonable than using a crane.

<comment><USER20> I'm pretty sure they just used a crane to prove the concept. It would be pretty dumb for them to use a bunch of expensive cranes for a permanent installation.

I have to say, though, I think you might be onto something with your horizontal/angled conveyor idea. I would be worried about the energy lost to friction, though? The nice thing about a straight up/down solution is that it doesn't have that problem.

<comment><USER19> Definitely would have a good amount of friction losses, the issue I have ran into is that I am not sure how you would raise blocks and add them to a stack with low friction.

</comment></comment></comment><comment><USER21> I was wondering if it would be possible, perhaps, instead of using cranes to stack blocks of stones, to elevate an entire building by some small amount every day when there is enough excess energy. Lowering the building in the night to recover some of the stored energy. This would definitely be a very challenging engineering problem but the thought of transforming each house in a city into a battery using only its own potential energy without being dependent on chemical means of storage is intriguing to me.

<comment><USER22> I was about to post the exact same idea. I don't know if it would be efficient (plus mechanicaly lifting up a building is an engineering nightmare to do) but it would be a very elegant way of storing solar energy, or energy recovered from lost calories.

</comment></comment><comment><USER23> What are the maintenance costs of such a crane, remembering that it runs 24/7 at its max capacity?

I ask because simple lead acid batteries can be hooked into control systems, with maintenance done via changes to electricity and fluid. With such batteries there are no cables or bearings to need changing, no moving parts. So I would assume that maintenance costs for oldschool batteries would be far less than for this crane.

</comment><comment><USER24> I've seen this tower energy storage discussed a few times, but ... what happens in a wind storm? Does the system dump all the blocks to the ground to protect against toppling? How about if a block at the base structurally fails? Are these storage facilities only suitable for wide open areas with nothing around the falling radius of the tower?

<comment><USER9> A conical pile of extremely heavy blocks is probably a lot less likely to collapse than any of the buildings around it.

</comment></comment><comment><USER25> The point is at the end:

> But that gives 2 million joules of stored energy with just 50 cement drums > (assuming energy transfers are 100 percent efficient—which they aren't). > That's not too bad. Of course the Tesla Powerwall can store about 50 million > joules, so 50 drums might not be enough.

Basically, lifting and lowering cement is a poor battery.

</comment><comment><USER26> The article leaves me with more than a few doubts with this strategy of storing power. One issue that concerns me is the amount of energy that will need to be spent in manufacturing all the concrete and steel drums as well as the amount of pollution this will generate. There will also be the pollution in transporting the drums onto the battery locations. I get that this isn't a unique problem and other forms of "green" power generation also suffer from this such as wind turbines or even photovoltaic panels. Once the drums are onsite there is likely minimal maintenance needed so once the cost of producing is done, there should be a way to figure out how many years or months it would take to offset that.

<comment><USER27> > I get that this isn't a unique problem and other forms of "green" power > generation also suffer from this such as wind turbines or even photovoltaic > panels.

Is there any form of energy storage/generation for which this isn't true? No one every talks about the environmental costs of Lithium batteries, but they're certainly not nil. Pumped storage requires substantial infrastructure as well.

</comment></comment><comment><USER28> There needs to better use of a stack of blocks than just moving them up and down.

How about lifting and dropping heavy lithium batteries instead?

Or lifting and dropping cars in a parking garage?

Or lifting and dropping self contained data centers?

<comment><USER28> Here is another idea: concrete blocks on rails plated with solar panels, sometimes stored vertically, sometimes stored horizontally, with rails shaped as an "L", utilizing the most unusable land.

Laws of fluid mechanics will apply then. And the size of the motors will be ginormous.

</comment></comment><comment><USER29> Some problems I see with this design are space, labor and logistics akin to a warehouse, impacts from natural disasters.

Personally I like the idea of moving water up a river or behind a dam to store energy.

</comment><comment><USER30> Sounds like how a grandfather clock works.</comment>


CRISPR-baby scientist fired by university - <AUTHOR> https://www.nature.com/articles/d41586-019-00246-2 <comment><USER2> I feel like this turns babies into technology. We might have version 1 where babies aren't likely to get HIV or some other malady. Next round, perhaps we'll see more height, different skin color, increased intelligence. If it's like any other product, it appears babies would be coming out of a factory and with tiers for different features you can buy based on your purchasing power. Sort of like buying an iPhone except with babies.

Commercializing children doesn't seem right, but then should the technology be held back and children be damned to suffer for the sake of keeping the status quo? Is there a just way to deal with this?

<comment><USER3> The worst part is that by the time they were in Kindergarten, the newer models would obsolete them.

Bigger, faster, stronger, and _MUCH_ smarter! Now 10% off!

<comment><USER4> I'm 26 right now and I'm not planning to have kids until I'm 35 for this exact reason. I don't want my kid to say: "Daddy, why do other kids have disease resistance and I don't? Do you not love me? Or were you one of those stupid anti-CRISPRers who don't believe in science (the anti-vaxxers of the next decades)?"

I'd rather wait for 5-10 years to make sure I don't make a lifelong mistake.

<comment><USER5> Every year you wait, your sperms carry more and more mutations.

<comment><USER4> Sperm frozen in a foreign cryobank since 2017

<comment><USER5> Nice. (Why foreign?)

<comment><USER4> It's cheaper.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> I've read that He self-funded the project. Anyone know if he comes from wealth or how he got the funds to run a team of scientists? Also, it's interesting that he was a trained physicist who turned to gene modification experiments. Is CRISPR and gene editing the popular draw in academia and research? I've always assumed academics mainly stayed in their lane, so to speak.

As for the ethics, if gene editing research is inevitable and/or simple as claimed, then perhaps it should be carried out in public universities so as to prevent glory seeking people from causing unnecessary harm. Also, perhaps anyone who carries out gene editing should be held financially liable and even criminally liable for any damage to individuals.

If CRISPR and gene editing lives up to its hype, it feels like we are on the cusp of a brave new world.

<comment><USER7> Gene editing research is being carried out in public universities. It's not yet at the point where edited human embryos are carried to term.

</comment></comment><comment><USER8> > The investigation also found that He's experiment ran counter to national > regulations forbidding people with HIV from using assisted reproduction — an > allegation reported for the first time in the Xinhua article.

What is the rationale behind this regulation? Is it that the baby is likely to be infected with HIV or is there some other reason?

<comment><USER9> Well, if you want to dig more, I've found one regulation[0](technical standard rather) mentioning something maybe related. It says, I quote:

> 2、禁忌症

> (1)有如下情况之一者,不得实施体外受精-胚胎移植及其衍技术

> ① 男女任何一方患有严重的精神疾患、泌尿生殖系统急性感染、性传播疾病;

> ② 患有《母婴保健法[1]》规定的不宜生育的、目前无法进行胚胎植入前遗传学诊断的遗传性疾病;

> ...

Translated to English and overly sum up: IVF-ET is forbidden if:

1, The donor or the receptor is currently carrying STD (Or genitourinary infection, or severe mental illness);

2, The patient not recommended to be pregnant according to the 《母婴保健法[1]》(Mother and child health-care law);

3, The patient is suffering from hereditary diseases that cannot be diagnosed with Preimplantation Genetic Diagnosis.

The rationale that you are curious about is still unknown here, but I do think this document and the law mentioned can be a good start if you want to figure it out. Sadly though, this field is far out of my range of knowledge, I can't even translate most of them for you (And That page on npc.gov.cn is still loading after 5 mins of waiting).

[0] [http://www.moh.gov.cn/open/uploadfile/2005112816435508.doc](http://www.moh.gov.cn/open/uploadfile/2005112816435508.doc) (人类辅助生殖技术规范)

[1] [http://www.npc.gov.cn/wxzl/gongbao/2000-12/05/content_500462...](http://www.npc.gov.cn/wxzl/gongbao/2000-12/05/content_5004627.htm) (母婴保健法)

</comment></comment><comment><USER10> I know this is the current title of the article, but would it possible to entitled the article "He Jiankui (CRISPR-baby scientist) fired by university"? While I'll refrain from commenting on his work, he is a real person and has a name...

</comment><comment><USER11> And yet, most people do not care.

The elephant in the room is, did the gene editing work? If yes, are those babies protected from HIV?

If yes...the world is not the same anymore.

</comment><comment><USER12> Atrocious! Babies' interest in science should be supported, not squashed.

<comment><USER13> I normally prefer humor to stay on Reddit, but nice one.

</comment></comment><comment><USER14> Given the age of the babies and CRISPR technology, how long before we find a rush of Olympic records suddenly broken by surprise athletes?

<comment><USER15> You mean, how long until the olympic records stop being important to society? There are many things that were made obsolete by technology. Exerting human strength for sport may be made obsolete, and that wouldn't be a bad thing.

</comment></comment><comment><USER16> translation: the experiment didn't work so China is disavowing him. This would have played out differently if he had succeeded I would be willing to bet.

</comment><comment><USER17> Direct gene editing was invented about 45 years ago. I am surprised, even shocked, that no one tried this until now. CRISPR has certainly made it easier to do, but other techniques have existed since the 70s.

He Jiankui is being vilified now, but I wonder how history will remember him (if at all)

<comment><USER18> I am not at all opposed to the idea of gene editing, but I wonder if the issue here isn't that he didn't have proper medical authorization to do this. Most countries have laws against cowboy medicine for a reason.

<comment><USER17> If you seek medical authorization, you will find that no one will approve it

<comment><USER19> Because it will most likely lead to inhumane atrocities that would turn the general public against the technology for a generation

<comment><USER15> This anti-science stance is one based on fear, and that's not how society advances. Nothing should be banned from experiment and testing in controlled labs. Banning things preemptively out of fear is a sorry display of hubris. We do not know what technologies will be good or bad until we research and try them.

<comment><USER19> My perspective is an attempt to save this branch of research from annihilation in the public eye. This type of alteration of human beings is a supremely sensitive subject. Women are hardly permitted abortions in peace without bringing down political hell on them. What makes you think this research would not attract similar or worse scrutiny unless it is conducted with a degree of caution that would be excessive in any other endeavor?

</comment></comment></comment></comment></comment></comment><comment><USER20> Does anybody really believe that China is upholding strong ethical standards here? Sure the uni dumped this guy, but I'd assume there is a large project that the government is at minimum aware of to edit genes.

<comment><USER21> Maybe many countries have similar secret projects.... but obviously public projects are not allowed.

</comment></comment><comment><USER22> I really thought China would take a lesser stance on this publically. This ordeal is surprising in a sense that they are going to have a real health crisis in the next 25 years along with population issue.</comment>


GoDaddy files for $100M IPO - <AUTHOR> http://www.reuters.com/article/2014/06/09/godaddy-ipo-idUSL4N0OQ46X20140609

<comment><USER2> Isn't that a small amount considering GoDaddy's sales and reach?

<comment><USER3> $100 million is just the money they said they are going to raise, not the valuation of the company. They do have a lot of sales, but is still a loss- making business.

<comment><USER2> Still confused how considerably smaller sites, Path, Quora, Foursquare, even Airbnb, can be raising more money than GoDaddy. GoDaddy has to make more money than all those businesses combined, yes/no?</comment></comment></comment>


Today's Google frontpage is a javascript mix panel - <AUTHOR> https://www.google.co.uk/

<comment> far-I Why Javascript? It's a picture.</comment>


Ask HN:  Mountain View Housing - <AUTHOR>

I'm here in Cleveland looking at the cost of housing in Mountain View.  I've checked Craigslist and some of the apartment websites in the area.  I am aware that housing is much more expensive in Mountain View than it is in Cleveland.  Unfortunately, all I have to go on is what I can find on the web.  I was hoping some local could answer the following question:  Is it possible to find reasonable accommodation (apartment, bedroom sublet, etc.) for a single person under a $1,000 / month (long-term) close to North Shoreline? <comment><USER2> bedroom in an apartment or house, sure, but I think you'd be hard pressed to find much in the way of one-bedroom apartments at that price around there. Resist the urge to look out along 101, that highway is a parking lot at rush hour.

<comment><AUTHOR> That's great to hear. I don't really need a full apartment. I have a one- bedroom here in Cleveland, and everything I have fits nicely in that one bedroom. I am simply looking for a place to sleep at night.</comment></comment>


Show HN: Oruapp – a minimal, location based messaging - <AUTHOR> http://oruapp.co/

<comment><AUTHOR> Hello HN,

oruapp acts as a twitter for your local area. any message you send will be delivered to everyone within 0.5km radius. its an ideal solution for socializing in conferences, universaties/colleges, events (sports, tech, academic etc).

no one near you? we got you covered, we will increase the radius till we find a recipient for your message.

send one-to-one message even if the recipient is not near you by @mentioning the recipient's handle in the message.

no registraton, no password, its just that simple.

</comment><comment><USER2> Cool logo. Can I leave messages in a location? I think that'd be a neat feature.

You should also make a Web app. This is too simple to make me want to download it, and get people nearby to download it.

<comment><AUTHOR> There is nothing stopping us from creating a web app. But the use case is less priority for us as most people are getting connected using mobile and we want to stick with it.

Thanks</comment></comment>


Free Coding - Recent Grauduate - <AUTHOR>

I am a recent graduate programmer and I want to write code for free - does anyone want me to code for them? I prefer java programming. <comment><USER2> Please don't write code for others for free unless there's a good reason. There is already a shortage of good programmers available for _hire_ [1].

If you want to code for fun, or to increase your profile as a developer, either get involved in an open source project, or start your own.

[1] <http://news.ycombinator.com/item?id=2312766>

<comment><USER3> To that note, I want to add there are legal implications to using someone's free help in a for profit business in certain states.

<comment><AUTHOR> Oh, Sorry I should of specified. I did mean for an open source project or even a internship

<comment><USER3> Open source is fine but internships (free), for example in the state of California, are restricted to work that does not get added to an employer's profits. If it does, it violates the law.

Paid internships of course are treated differently. Again, depends on the area.

</comment></comment></comment></comment><comment><USER4> Where did you graduate from and what codes are you familiar with? We're looking to hire qualified interns/engineers. feel free to contact me firstname.lastname@example.com with an intro and resume.</comment>


How to Feel Like a Castaway - <AUTHOR> http://www.nytimes.com/2015/12/03/t-magazine/travel/castaway-desert-island-alvaro-cerezo.html <comment><USER2> I had a business idea much like that when I was a kid. Send people to deserted islands and let them survive on their own for weeks. However, I assumed it would only be for the ultra rich. It's mind boggling to me that the rates are actually really cheap (because you're ostensibly renting out a whole island for a night): [http://www.docastaway.com/pages/adventure-cottages- huts/list](http://www.docastaway.com/pages/adventure-cottages-huts/list)

The most isolation I ever found was getting dropped on an uninhabited island (well other than wild horses) and running around it for an hour. I would love to go on of these trips. I've always been fascinated with survival (Castaway seemed like a fun adventure more than a tragedy). I admit that the whole thing is rather silly if you stop to think about it, but that doesn't stop me from finding the idea alluring.

I have to agree that the name DOCASTAWAY is really dumb though.

<comment><USER3> Some of these prices seem too good to be true. I know the accommodations on some of these are pretty sparse but the listings on some of these properties include transportation, guide, food for a price that would be reasonable at any hotel without the extras (guide, food, etc).

These locations and setup are compelling enough though. I'll have to put some research time into this, seems like just the sort of thing I'd want to do.

<comment><USER4> There are a lot of tiny islands out there (200,000+). The real costs are often just transportation there and back.</comment></comment></comment>


Show HN: Top PDFs Posted to Hacker News in 2018 - <AUTHOR> https://getpolarized.io/2019/01/08/top-pdfs-of-2018-hackernews.html <comment><AUTHOR> Hey guys. This listed is computed via the data we have at Datastreamer ([http://www.datastreamer.io/](http://www.datastreamer.io/)) ... we basically index the web and have a petabyte search engine that we license for people very serious about open data.

I realized that we had Hacker News for every day and wanted to compute the top PDFs for my own usage so I wanted to share with you guys.

My side project, Polar ([https://getpolarized.io/](https://getpolarized.io/)) is used for managing PDF and other reading so you might want to check that out too. It's basically a tool for researcher, students, or anyone passionate about long term education and use read a great deal of technical and research material.

PDFs are supported but we also support offline caching of web page content. We also support Anki sync so you can create flashcards and sync them with Anki so that you never forget what you've read.

EDIT. Awesome! This landed on the home page in less than 15 minutes and is now #2.. Super excited you guys found this helpful. Great to contribute back to such an awesome community!

<comment><USER2> One more broken link: #37 Self-Awareness for Introverts [pdf]

Correct link seems to be [http://cliffc.org/blog/wp- content/uploads/2018/05/2018_AWarO...](http://cliffc.org/blog/wp- content/uploads/2018/05/2018_AWarOfWords.pdf)

<comment><USER3> And this is one of the papers I feel the most interested in.

<comment><USER4> Here is a link to the original submission: [https://news.ycombinator.com/item?id=17010199](https://news.ycombinator.com/item?id=17010199)

Which includes a blog post that goes into this without being just a presentation-aid PDF: [http://cliffc.org/blog/2017/07/30/introverts-emotional- proce...](http://cliffc.org/blog/2017/07/30/introverts-emotional-processing- self-esteem-and-salary-negotiations/)

</comment></comment></comment></comment><comment><USER5> My dissertation made it on the list! Only #176 but that is more attention than I ever expected it to get :)

<comment><AUTHOR> Ha. Nice. Well glad we could get you another link and more love.

</comment></comment><comment><USER6> Just in case if you thinking to download these links

import re import requests

from bs4 import BeautifulSoup

def download_file(download_url, name): #create response object r = requests.get(download_url, stream = True)

        #download started
        with open("repo" + name, 'wb') as f:
            for chunk in r.iter_content(chunk_size = 1024*1024):
                if chunk:
                    f.write(chunk)

html = requests.get("[https://getpolarized.io/2019/01/08/top-pdfs- of-2018-hackerne...](https://getpolarized.io/2019/01/08/top-pdfs- of-2018-hackernews.html")) soup = BeautifulSoup(html.content) sAll = soup.findAll("a")

for href in sAll: if(href.has_attr('href')): link = href['href'] if(link.find(".pdf") > 0): print(link) last_index = link.rindex("/") name = link[last_index + 1:] print(name) try: download_file(link, name) except: print("error downloading " \+ link )

<comment><USER7>
        from __future__ import print_function

        import re
        import requests

        from bs4 import BeautifulSoup

        def download_file(download_url, name):
            r = requests.get(download_url, stream = True)

            with open("repo" + name, 'wb') as f:
                for chunk in r.iter_content(chunk_size = 1024*1024):
                    if chunk:
                        f.write(chunk)

        html = requests.get("https://getpolarized.io/2019/01/08/top-pdfs-of-2018-hackernews.html")
        soup = BeautifulSoup(html.content, features='html.parser')
        sAll = soup.findAll("a")

        for href in sAll:
            if href.has_attr('href'):
                link = href['href']
                if link.find(".pdf") > 0:
                    print(link)

                    last_index = link.rindex("/")
                    name = link[last_index + 1:]
                    print(name)

                    try:
                        download_file(link, name)
                    except:
                        print("error downloading " + link )

</comment></comment><comment><USER8> Very nice!

It's also interesting that it differs from this search[1] performed in HN's own search system.

[1] [pdf] with filtering on Past Year -> 4,422 hits.

[https://hn.algolia.com/?query=%5Bpdf%5D&sort=byPopularity&pr...](https://hn.algolia.com/?query=%5Bpdf%5D&sort=byPopularity&prefix&page=0&dateRange=pastYear&type=story)

<comment><AUTHOR> Yea.. there would be more total hits for PDFs found on page 2 or page 3... which I didn't analyze. 500 I think is good enough. Enough reading already ;)

<comment><USER8> Sure, although the positions of the items in the answer sets at cutoff = 10 differ as well.

<comment><AUTHOR> meaning the ranking? Algolia is probably using a different score algorithm. If I were designing it I would probably also factor in number of comments but I think it's fair to use number of upvotes.

<comment><USER8> I'm assuming that too. Just an observation. Very interesting work of you nonetheless!

</comment></comment></comment></comment></comment><comment><USER9> The SRE book was available as PDF till August 25, 2018 [https://news.ycombinator.com/item?id=17614907#17624523](https://news.ycombinator.com/item?id=17614907#17624523). I tried to find it but seems not be availble anywhere as PDF. I could only find Kindle (with limited anotation), at safaribooksonline (with even less anotation capabilities), at [https://landing.google.com/sre/sre- book/toc/index.html](https://landing.google.com/sre/sre-book/toc/index.html) or as print-on-demand.

</comment><comment><USER10> Something wrong with score

      22. Software-Defined Radio for Engineers [pdf]
      score: 292 comments

This article[0] posted by me and reached score is _352_ :

      Software-Defined Radio for Engineers [pdf] (analog.com)
      352 points by app4soft 6 months ago | 50 comments

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

<comment><AUTHOR> Thanks.. probably the same article but on a different URL.

<comment><USER10> > probably the same article but on a different URL

What you talking about? Article URL[0] is same!

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

</comment></comment></comment><comment><USER11> This link gets me to the free download of the document manager. I'm not seeing the _list_ on this page.

<comment><USER12> > This link gets me to the free download of the document manager. I'm not > seeing the list on this page.

That's the power of "Above the fold" in action.

</comment></comment><comment><USER13> Also this link: www.dcs.gla.ac.uk/~trinder/papers/sac-18.pdf seems to be broken.

</comment><comment><USER14> Interesting project! Kudos on shipping.</comment>


Could Boxes of Water Help Reforest the World? - <AUTHOR> http://www.scientificamerican.com/article.cfm?id=could-a-water-box-help-reforest-the-world <comment><USER2> With this paragraph alone, he has doomed his project to failure:

"Right now, Hoff sells the boxes for $275 for 10, manufactured in his native Holland, but he envisions local production wherever the box is sold. "I think it's a disaster that the only people who know how to weave clothing are in China," he said. Gardening and home-improvement stores could sell them for about $15, he said."

The problem is that local production costs more. If it costs more it will be used less. It's as simple as that.

He should pick his battles. Conserving water, and growing trees is awesome. Let others worry about China, focus on your mission.

My prediction: Unless he gives up this ideal you will never hear about these boxes again.

<comment><USER3> The last slide on <http://www.groasis.com/page/uk/principle.php> seems particularly odd in an idealistic sense:

 _With the waterboxx we can transform most of the deserts into forests_

Deserts are an obvious harsh climate, to humans who live in, uh, more temperate zones in urban areas, but they are not completely barren to the point they need to be "saved". All one needs to do is watch the popular Planet Earth series to see that. Reforestation should be concentrated on in those areas that are having trouble recovering after we've explicitly removed all the trees, not areas that never had trees to begin with.

<comment><USER4> How about the Sahara? Pretty darn barren and a lot bigger than it used to be.

</comment></comment></comment><comment><USER5> One of the major issues we have in Australia is people stealing the saplings. Likely the box would be stolen as well, mores the pity.

<comment><USER6> Unless they are destroying them or exporting them far, far away, then it's still a net increase in the number of trees in a certain area, no?

<comment><USER7> Or maybe they steal them in order to sell them back to you?

<comment><USER6> That may not be good for your pocket book, but it still doesn't decrease the number of trees in a certain area.

</comment></comment></comment></comment><comment><USER8> _... which argues that policymakers should leave the climate debate aside and focus on planting trees. Planting 5 billion acres of trees -- about 2.5 times the surface area of Canada_

That's a lot of trees!

<comment><USER9> s/trees/boxes/

s/boxes/sales!/

</comment></comment><comment><USER10> Interesting idea, distributed reservoir with a shading house. It should be produced as cheaply as possible to ensure the widest use. $15 is very expensive in other countries, and yes, thief would happen. If it's dirt cheap, no one would care.

Also for people stealing sapling, how about planting unattractive trees? Like poisonous trees. Nature doesn't care one way or the other.

</comment><comment><USER11> How does he prevent mosquitoes from breeding in the small pools of standing water?

<comment><USER12> The pool is enclosed and accessible only through a siphon.

</comment></comment><comment><USER13> The box is brilliant but I don't understand the recommendation to bury the young tree in up to 4 inches of sand after removing the box. It doesn't seem natural and wouldn't it stress and possibly suffocate the small roots and trunk base? It sounds worse than a "mulch volcano". The hemp cloth could be staked to the ground and a small amount of mulch or nearby soil used instead.

</comment><comment><USER14> The idea is really neat. If you want a really nice visualization of how the whole thing works you can find it on his website:

<http://www.groasis.com/page/uk/principle.php>

</comment><comment><USER15> The problem is not lack of rainwater. Trees are not mysteriously vanishing, we are cutting them down.

<comment><USER5> What this addresses is the lack of water once we have cut down the trees. Because we are chopping them down the way the soil holds the water changes. Deep in the earth it often raises the water table (which can lead to increased soil salinity as the rising water table dissolves salts). Critically however for saplings, the soil close to the surface dries out as the natural mulch and shade a pre-existing forest provides no longer exists.

<comment><USER15> I suppose I did not really expand upon my point as much as I should have. You are right, it is a useful development, and may prove crucial in the future. I am familiar with why it can be needed in areas devoid of trees.

However, it seems that planting trees is like giving a blood transfusion to someone who has a massive arterial bleed. Yes, you are helping, and it is needed, but the real problem should be addressed first- deforestation.

<comment><USER5> I'm certainly not saying deforestation should not be addressed but there also needs to be practical solutions to fix the enormous areas of land have already been logged.

</comment></comment></comment></comment><comment><USER16> $27 for a plastic box? My city gives recycling boxes away for free, about the same size. No reason these should cost above a dollar or two.

<comment><USER17> Watch the flash video given in a previous comment (<http://www.groasis.com/page/uk/principle.php>). There is a lot more to this "box" than what you get with your recycling bin.

<comment><USER18> Standard mass production should bring the cost way down. As for theft, just make sure they are free for anyone that wants to have one, the biggest cost for a big program will be the planting labor. But it will not solve global warming in the period of any politician so it's unlikely to be funded at the level really needed.</comment></comment></comment>


New Irish Internet Tax? - <AUTHOR> http://tech.slashdot.org/article.pl?sid=09/05/06/2246224&from=rss

<comment><USER2> No.

The story implies, completely incorrectly, that TV Licensing would be extended to all PCs.

The legislation in question explicitly discounts downloads and streaming downloads from its definition of a 'broadcasting service'.

Nothing to see here, move along.</comment>


The challenging task of sorting colours - <AUTHOR> http://www.alanzucconi.com/2015/09/30/colour-sorting/ <comment><USER2> Reminds me of a blog post on using PCA for sorting colors

[http://nbviewer.ipython.org/gist/CamDavidsonPilon/abe3f0e4f5...](http://nbviewer.ipython.org/gist/CamDavidsonPilon/abe3f0e4f589f53c4128)

</comment><comment><USER3> This is an interesting presentation of a non-trivial problem. Does anyone know of any good resources for learning more about color spaces?

<comment><USER4> The best resource on the web is [http://handprint.com/LS/CVS/color.html](http://handprint.com/LS/CVS/color.html)

To be honest though, books are better than anything on the web. Here are a few good ones:

[http://amzn.com/047119459X](http://amzn.com/047119459X) [http://amzn.com/0470024259](http://amzn.com/0470024259) [http://amzn.com/1118173848](http://amzn.com/1118173848)

[http://amzn.com/1568811616/](http://amzn.com/1568811616/) [http://amzn.com/1119967031](http://amzn.com/1119967031)

* * *

As for the link under discussion.... meh. RGB (and derivative color models like HSL/HSV) are terrible for color sorting, because they have very little relation to the way humans see color. Trying to sort a three-dimensional quantity into a single linear order in some "best" (or even "reasonable") way is inherently futile. I guess it can be fun to play with, but IMO isn't very "practical".</comment></comment>


A Not Terribly Brief History of the Electronic Frontier Foundation (1990) - <AUTHOR> https://w2.eff.org/Misc/Publications/John_Perry_Barlow/HTML/not_too_brief_history.html

<comment><AUTHOR> Lest anyone forget:

"The Electronic Frontier Foundation was started by a visit from the FBI. In late April of 1990, I got a call from Special Agent Richard Baxter of the Federal Bureau of Investigation."

</comment><comment><USER2> That title has got to be written in homage to the Not Terribly Good Club of Great Britain, which had to be disbanded when its founder, a Mr Stephen Pile, added an application for it in his Book of Heroic Failures and it got 60,000 applications. A true victim of its own success. As a failure, a failure.

<comment><AUTHOR> Interesting reference. But surely, the EFF is not on the same road as Mr. Stephen Pile and his NTGC of GB...</comment></comment>


Should Parents Play Videogames with Their Children? - <AUTHOR> http://www.wsj.com/articles/should-parents-play-videogames-with-their-children-1441899567 <comment><USER2> I played computer games with them. We still get together online. Its similar to any family game time. Except we're coop and beating all challengers!</comment>


Idiomatic Generics in Go - <AUTHOR> http://bouk.co/blog/idiomatic-generics-in-go/ <comment><USER2> If a language is not dynamically typed then it's cumbersome not to have generics, that's for sure.

On the other hand what I really like about go is that they are the only popular recent language that pushes back against a lot of modern features and says: "It doesn't matter how clever those features are, overall simplicity and consistency matters more."

The point is that we really need this experiment. It's in everybody's interest that the go people push back and continue to keep the language minimal. In a few years time someone will say on the internet that unless you have features x, y, and z in a language you simply cannot be productive/concise/maintainable/performant/safe/not-a-blub. At that point it may be possible to point at some evidence and say "Well I noticed that those machine learning guys at myAppsTheGreatest.com wrote a large system in go". Then you can go study it and see if they really needed those features. You can also ask the developers who used it and hopefully some of them will also have experience in [insert crystalline functional language here] so you can get them to weigh up the pros and cons. Go is an experiment that is needed.

<comment><USER3> It's interesting that the pendulum has swung the other way in favoring readability over features. In many ways, Go seems to have something Pascalian lurking under its surface - WOCA with static compilation (and fast compile times), readability favored over terseness/expressiveness, and deliberately trying to limit what can be done (i.e., no pointer arithmetic) so that there is a 'sane subset' by default.

I've played around with Go (worked through the Go Tour and implemented some trivial site scraping/JSON client stuff). It's an enjoyable, straightforward language, and it makes it very easy to get started, but I fear that it will be (like Pascal) eventually overtaken by something hairier. (Go : Rust(?) :: Pascal : C++)

<comment><USER4> It's a miscalibration to compare Rust to the complexity of C++. Rust is more complex than Go, absolutely and unequivocally, but that's because Go is hanging out with Lua waaaay out over on the simple side of the spectrum of programming language complexity. Given the enormity of its task, Rust is actually a rather minimal language itself (though there are definitely still a few features that I think could be made simpler).

FWIW, I think it's misplaced to fear that Go will be "overtaken" by Rust. They both excel at different domains, and the systems software that you'd write in one is probably not the systems software that you'd write in the other.

</comment></comment></comment><comment><USER5> I also miss generics in Go. It is especially a pain to implement a nice high performance collections library without them. I have been working on and off on a data-structures library and you have to go through a lot of hoops to make it nicely usable and your still end up with `interface{}` everywhere.[1]

It should be noted that this is not the first attempt by any means. droundy implemented basically this several years ago.[2] The problem is these things are non-standard and I don't feel comfortable using them. I want generics but I want them as part of the language not as some weird third party CGI script. I also want them integrated into the template system. That way I can create type variables which must implement an interface. However, when the code is actually run, it isn't an interface object it is the actual object. Features like that would make them fit much better with the rest of the language.

[1] [https://github.com/timtadh/data- structures](https://github.com/timtadh/data-structures) [2] [https://github.com/droundy/gotgo](https://github.com/droundy/gotgo)

<comment><USER6> The key innovation here is that it uses the URL to do the parameterization. That's not what is implemented in your reference [2].

I think this approach is actually quite clever. It's clever because URLs belong to a global namespace. If you have third-party code that is also using an instantiated generic, your code should be compatible with it because you'll be using the same URL. Whereas locally-generated templates are more problematic - compatibility depends on build scripts etc.

<comment><USER5> I agree this does solve the `go get` problem. However, a better thing would be to improve `go get` and make it use an actual build system. `go generate` is a step in the right direction but they expect you to check the generated sources in. I would prefer a tool chain that allowed your API customers to do code generation from your library. However, these things are more complicated and the Go Author's are probably right to do the simplest thing first.

</comment></comment></comment><comment><USER7> It is worth pointing out that if the Go community settles on something like this as the solution, it negates one of the underlying arguments that the Go designers have against generics in the language. They have a set of criteria necessary for them before they are willing to put a solution in the language [1], and one of them is that they aren't willing to do C++-style template- based generics that involve compiling separate functions for every generic instance, causing the binary to grow in size.

But all the other solutions that are headed into that gap are just one level or another of convenience wrapper around exactly that. If the Go community just starts doing this at scale, then there's really no reason not to pull that up and make it official.

[1]: Whether or not you believe that they're just against them full stop and can't be budged no matter what, there's at least some claimed reasons.

<comment><USER8> For context: Go has been my primary language both at work and for personal use for over two years now.

> It is worth pointing out that if the Go community settles on something like > this as the solution, it negates one of the underlying arguments that the Go > designers have against generics in the language.

It wouldn't really negate the underlying arguments; it would just mean that the community had grown and attracted developers who may not necessarily share that part of the language creators' original vision of the language.

> But all the other solutions that are headed into that gap are just one level > or another of convenience wrapper around exactly that.

Well, focusing on "the other solutions" misses two things:

First, many (I dare say most) Go developers[0] don't really use any "solution" for this other than the features built into the language itself. In other words, they're not out there writing alternative solutions because they genuinely don't perceive a lack of generics to be as big of a problem as other things, which they do write tools for.

Secondly, there _is_ a way to use interface{} to accomplish some (not all) of the same things that generics do, while still preserving type safety. Look at the functions in this Twitter client library I wrote: [https://github.com/ChimeraCoder/anaconda/blob/master/users.g...](https://github.com/ChimeraCoder/anaconda/blob/master/users.go)

All the endpoints use the same apiGet() function ("generic"), but they all return concrete types, _and_ they are all typesafe - you will never get a runtime panic from any of those functions. This is _more_ than Java's generics guarantee, due to the quirks of the way type erasure works there[1].

No, this isn't "generics", but it provides an alternative way of solving the problem most of the time (in practice), and isn't that what matters? And yes, this is not quite as clean as some languages which focus on having a very expressive and precise type system (ML, Haskell, etc.), but it provides enough type safety for me without requiring me to think consciously about the types that I am using (which I have to do when writing ML or Scala).

[0] I mean people who write primarily Go at least 4-5 days a week, for work, as opposed to people who dabble with it for side projects but primarily use other languages.

[1] TL;DR: Java's generics are converted to "Object" after compilation, which means that you can actually end up with runtime type errors that are detectable at compiletime, due to inheritance. (It's been a while since I used Java, so I won't provide an example, but they're easy to find online).

<comment><USER7> I write a reasonable amount professionally (not full time), and while in my personal code I don't feel the lack of "generics" all that often, I _do_ frequently feel the lack of data structures, which I'd note is what the web page uses as its example.

As I've been thinking about this issue, it occurs to me that there are a few problems that get wrapped up into "generics", and "generics" aren't always the only solution, and people tend to conflate all the subproblems in their head when they say "Go doesn't have generics". For instance, one aspect of "generics" is to write "general algorithms" that don't care about the underlying data structure. Interfaces basically solve that problem. You write the "general algorithm" to a specified interface, and provide things that match that interface. It's pretty much "concepts" in C++. This is what the Go community correctly refers to when it says that we don't always need "generics" and that interfaces can be used instead... there is a specific and important _use case_ for "generics" that is indeed covered by the interfaces.

The community is correct when it points out the problems are not as large as some external people are supposing, and the external critics are also correct when they observe that not all useful use cases are covered by interfaces in Go.

And I'd say the biggest uncovered useful use case is type-safe containers that aren't slices, arrays, or maps. What's more, Go's core target, network servers, is also precisely where the runtime characteristics of many of these more exotic data structures are important in the first place. Entire scripting languages are perfectly happy with arrays and hash tables as the only two effective data structures (or even just hash tables with arrays emulated on top of them!), but they pay a level of speed a Go programmer is not necessarily willing or able to pay, because network servers very often become performance sensitive. So my opinion is that whether or not that solution is "generics", Go badly needs _some_ solution to the type-safe container problem.

(And I consider the "you can do it with interface{}" argument to be a dodge. It's a very convenient moment to suddenly decide you don't need static typing in an otherwise statically-typed language. Why stop there with that argument?)

Cover that one use case, and what's remaining isn't worth worrying about... it's not like the world is full of languages with perfect, quirk-free generics implementations either, once you start studying them they all have issues of their own. There is a reason the Go designers are resisting them, after all.

And I can't resist generalizing a bit... what's important is not the _how_ of a solution, but the _what_. If you have a problem than in some other language you'd hit with generics, then try to pick up Go, then scream because Go doesn't have generics, that's not interesting if in fact interfaces would work. The problem with "Go lacking generics" isn't, well, Go lacking generics... the correct question is, _what set of problems are there than Go lacks good solutions to_? And, as I show above, I'm not saying that because there are no answers to that question... I named one, after all, and there's a couple of more I could at least argue sensibly about. The point is that the conversation ought to be focused on solutions to the specific problems rather than insisting that "the stick I know from another language" has to be ported in. And, it _shouldn 't_ be focused on things that Go does indeed have perfectly cromulent solutions to, because interfaces _really do_ cover a lot of the use cases of generics, in much the same way that in C++ templated generics can be used to implement "concepts". There's definitely some overlap here which careful thinkers should be careful to keep separate in their heads as they think about the problem.

That said, I have to admit I haven't been able to sketch a solution to my type-safe data structure problem that doesn't look an awful lot like generics. But the solution space to this problem isn't bounded by my imagination. (There's some possibility that one could restrict the "genericity" to the point where it could only be used for type-safe data structures and dodge the other issues, but I haven't had enough time to noodle that over.)

<comment><USER9> _And I 'd say the biggest uncovered useful use case is type-safe containers that aren't slices, arrays, or maps._

For that, my current preferred approach is to wrap a generic implementation (using interface{}) with a concrete type. Like this:

[http://play.golang.org/p/LkVWkyph75](http://play.golang.org/p/LkVWkyph75)

There is some boilerplate code needed for each concrete type, but it is relatively small and easy to verify.

<comment><USER10> Just like Java, Object Pascal, Oberon and C++ back in the old days...

</comment></comment></comment></comment></comment><comment><USER11> Go, which claims not to have either generics or objects, has both for built-in types. Channels and maps are both opaque objects and parameterized types. The argument that generics are unnecessary would be more convincing if those built-in types were not needed. The problem is adding generics without making a mess of things. This is harder than it looks.

In the example, there's a set of "int", and a set of "string". A new set is created with

set := set.New()

in both cases. It looks like you could not instantiate "set" for both types in the same program without a name clash. That's no good. Parameterized types for Go make sense, but the types need to be given a user defined name each time you create one. With "generics as a service", you'd have to encode that name into the "import" statement, which is getting a bit clunky.

Go's lack of generics is a reaction to the mess C++ made of them. In C++ the generics system turned into an entire compile time programming environment based on term rewriting rules. Nobody wants to go there again. But Go went too far.

<comment><USER12> > Go, which claims not to have either generics or objects, has both for built- > in types.

Who is claiming that?

> The argument that generics are unnecessary would be more convincing if those > built-in types were not needed.

This is a straw man that you're tearing down. The Go devs have always acknowledged the utility of generics. They just have a different set of trade offs that they are targeting.

More to the point, there's absolutely nothing inconsistent with the position, "If we can make writing code easier with a little blessed generics without sacrificing our project goals, then let's do it!"

</comment></comment><comment><USER13> Go seems to be re-inventing C++ and Java one step at a time.

Go didn't learn from history, and is doomed to repeat it.

<comment><USER14> That was my thought, unless the Go guys send a signal what they will add in the future. Otherwise you'll have tons of competing solutions and a lot of anger when a winner is chosen a year or two from now.

With C++ you have boost as a funnel, C# has MS giving previews of what they will add, similar for Java. If Go chooses to stay purist their world will fragment.

</comment></comment><comment><USER15> Whenever this issue comes up (and on HN, it never appears to die), I'm reminded of an eye-opening moment I had reading Rob Pike's excellent essay "Less is Exponentially More" ([http://commandcenter.blogspot.com/2012/06/less- is-exponentia...](http://commandcenter.blogspot.com/2012/06/less-is- exponentially-more.html)).

An excerpt (original emphasis): "Early in the rollout of Go I was told by someone that he could not imagine working in a language without generic types. As I have reported elsewhere, I found that an odd remark...What it says is that he finds writing containers like lists of ints and maps of strings an unbearable burden. I find that an odd claim. I spend very little of my programming time struggling with those issues, even in languages without generic types...But more important, what it says is that _types_ are the way to lift that burden. _Types_. Not polymorphic functions or language primitives or helpers of other kinds, but _types_."

It seems to me that people program heavily with types because that's what compilers are really good at. Therefore that's what most languages give us. But I don't want to be constructing huge, complex type hierarchies with every application. If I'm spending more time on that than the actual problem domain, generic type systems are more of a problem than a solution. I don't use a hammer because I love driving in nails, I use it because it's the best way to stick two pieces of wood together.

(edit: perhaps I should clarify that I'm referring to type hierarchies within the application itself as an intrinsic part of design, not _language_ type hierarchies)

<comment><USER16> > It seems to me that people program heavily with types because that's what > compilers are really good at. Therefore that's what most languages give us. > But I don't want to be constructing huge, complex type hierarchies with > every application

That makes no sense, most languages with good generics support barely _have_ type hierarchies (let alone complex one).

<comment><USER17> I must be using a different definition of a type hierarchy.... Don't C# and java both have generics and type heirarchies?

<comment><USER16> Why in god's name would you take these as references when discussing generics?

<comment><USER17> Because they're the most commonly used statically typed languages with both type hierarchies and generics?

</comment></comment></comment></comment></comment><comment><USER18> If workarounds like these are common in the use of Go then leaving it out of the language was a mistake. The argument that generics comes at a complexity cost is nonsense: unless used it has no cost, the code would look like code does today. The complexity added by NOT having generics in a strictly typed language is enormous (as these examples show).

</comment><comment><USER19> I honestly have mixed feelings about this. It is a really nice showcase of what the standard library can do (walking the AST and modifying it) with little amount of code.

OTOH it would be better to not make this a web-service. As much as it may seem to be convenient, integrating it with "go generate" (when it's ready) would probably be easier to use and not pose any security risks ;)

<comment><AUTHOR> I agree the web-service is a terrible idea, I just wanted to see if I could implement it. It's also super insecure, as go fetches the package over HTTP (which you can see when you do go get -x gonerics.io/d/graph/string.git)

<comment><USER6> Actually, I think the web service is the only interesting part of the idea. Generics via string substitution are as old as the hills, I remember doing the same thing for Pascal 20 years ago.

(The factual accuracy of the statement that it was 20 years ago disturbs me. I'm getting old!)

<comment><USER20> 100% agree. it's a break through not because of the problem it's trying to solve, but the approach.

</comment></comment></comment></comment><comment><USER21> What happens if you want two different types of set? As-imports? (I've looked at Go, but not written in it.)

<comment><AUTHOR> You can alias imports! [http://learntogoogleit.com/post/63748050636/aliasing- imports...](http://learntogoogleit.com/post/63748050636/aliasing-imports-in- golang)

<comment><USER22> But then I'm right back to having types named "IntSet" and "StringSet". Though at least they're not using copy/paste code implementations.

<comment><USER17> Well, they are using copy and paste, it's just automated.

But is Set<int> really better than IntSet? Don't they carry the same information?

</comment></comment></comment></comment><comment><USER23> being "idiomatic" is now the most important thing in Go, apparently.

<comment><USER24> Idiomatic thinking in an idiotic language.

(I don't really think Go is idiotic, although I do think it is lacking -- even when you consider its aim to be minimal.)

</comment></comment><comment><USER20> How about my own types?

<comment><AUTHOR> You can use them like this: gonerics.io/d/set/github.com/crazychrome/package.git.Type

The things it supports can be found in the tests [https://github.com/bouk/gonerics/blob/master/template_params...](https://github.com/bouk/gonerics/blob/master/template_params_test.go#L51)

<comment><USER20> Awesome!

Although I'm not a believer in generic but I think it's a bfd in the programming field which will be as important as the REST thesis, or ror.

How about a service with similar approach that offers Parse to appengine migration: user calls a rest point like: generics.io/parse/github.com/crazychrome/package/user to configure fields and types requirements, then the service generate a repo contains codes can be deployed to appengine and 100% compatible with what Parse offers.

</comment></comment></comment><comment><USER25> "If you think it's simple, then you have misunderstood the problem."

Bjarne Stroustrup

</comment><comment><USER26> I found a better solution - abandoned the language.

<comment><USER27> What do you use instead now?

<comment><USER26> Mostly C++. As for Go's "niche", I'd still fallback to Erlang.

</comment></comment></comment><comment><USER28> Throwing type-safety out the window is so 2006. Just use Scala.

</comment><comment><USER29> CGI...shell script...

<comment><AUTHOR> :)

<comment><USER30> anyone tested it yet? I mean, you can't put an unpatched shell scripted site in HN right after a new CVE and TELL us its a shell script... right???

<comment><AUTHOR> Of course I patched it, and I'm not using bash in the first place [https://github.com/bouk/gonerics/blob/master/cgi.sh](https://github.com/bouk/gonerics/blob/master/cgi.sh)</comment></comment></comment></comment>


What is the strangest online interaction you ever had? - <AUTHOR>

Through my 15+ years of surfing the net I've interacted with some weird people[0] and I'm sure you have as well.<p>[0] or bots. or AI prototypes. or aliens. <comment><USER2> I was in a roleplaying channel on IRC many years ago, and during a huge netsplit, events from 45 minutes earlier started playing out: same people joining, same messages being sent, etc. but with most of us still in the room observing. We had a unique opportunity to roleplay with ourselves and remix what had transpired before.

</comment><comment><USER3> I used to sell platinum (in-game currency) and items on a private Everquest server for the equivalent value in dollars.

the interactions I had with the farmers who sold to me, server staff which were working against me, and the buyers of my goods were probably some of the most memorable i've ever had online.

</comment><comment><USER4> [http://rationalwiki.org/wiki/Dennis_Markuze](http://rationalwiki.org/wiki/Dennis_Markuze)

I knew he was a nutter but never realized how far it had gone until I happened on the article. Guy harassed me for months.

<comment><USER5> This guy is still (sorta) after one of my coworkers. Apparently the direct threat of jail isn't working so well.</comment></comment>


Samsung states that broken Galaxy Folds are due to user error - <AUTHOR> http://techcrunch.com/2019/04/17/samsung-responds-to-reviewer-complaints-about-its-flimsy-galaxy-fold-phone/ <comment><USER2> The submission title seems like an exaggeration. According to the article, Samsung's statement actually says:

> Here's the statement in full:

> "A limited number of early Galaxy Fold samples were provided to media for > review. We have received a few reports regarding the main display on the > samples provided. We will thoroughly inspect these units in person to > determine the cause of the matter.

> Separately, a few reviewers reported having removed the top layer of the > display causing damage to the screen. The main display on the Galaxy Fold > features a top protective layer, which is part of the display structure > designed to protect the screen from unintended scratches. Removing the > protective layer or adding adhesives to the main display may cause damage. > We will ensure this information is clearly delivered to our customers."

To me this reads: Samsung says there are several categories of issues that they will investigate, but to address one particular category where a protective layer was removed, they will make sure that customers are clearly informed that they should not remove the protective layer (which I assume will include a label on the layer itself).

In other words, whereas the author sees that statement as implicitly putting the blame on the users, I see it as implicitly accepting responsibility in terms of insufficient labeling.

Edit: I assumed the submission title was the same as the article title, but it is not. The article title "Samsung responds to reviewer complaints about its Galaxy Fold phone" seems fine.

<comment><USER3> My only issue with that response... why the heck does the top layer of the screen appear removable? Users are used to removing protective screens from many displays. Building a product that has something that appears like a protective screen, but isn't, seems like a terrible idea.

</comment></comment><comment><USER4> The title of the article is "Samsung responds to reviewer complaints about its Galaxy Fold phone". The phrase "user error" appears nowhere in the article.

They do mention that some reviewers tried to remove the protective film over the screen but nothing in this article seems to be suggesting this is a "you're holding it wrong" reaction from Samsung.

<comment><USER5> The title chosen for this submission seems like a wildly negative slant. Only a few of the reviewers reporting problems removed the protective screen, and Samsung has time to update instructional materials to instruct consumers not to make this mistake.

Samsung is not blaming any of the other failures on users, and states they are going to examine the units.

Seems like a reasonable statement to me.

</comment></comment><comment><USER6> It doesn't seem they stated what the title implies. Here is their response:

>A limited number of early Galaxy Fold samples were provided to media for review. We have received a few reports regarding the main display on the samples provided. We will thoroughly inspect these units in person to determine the cause of the matter.

>Separately, a few reviewers reported having removed the top layer of the display causing damage to the screen. The main display on the Galaxy Fold features a top protective layer, which is part of the display structure designed to protect the screen from unintended scratches. Removing the protective layer or adding adhesives to the main display may cause damage. We will ensure this information is clearly delivered to our customers.

From what I've read, the reviewers mentioned the issue was a poorly designed hinge.

</comment><comment><USER7> The title implies that Samsung is blaming the users for the broken phones. This is not at all what happened at least in MKBHDs recent video they were much more understanding. [https://youtu.be/vtqtyyGZvXM](https://youtu.be/vtqtyyGZvXM)

<comment><USER8> They were very understanding to MKBHD, who has 8 million Youtube subscribers.

<comment><USER9> And not to TechCrunch? It's ranked #357 in Alexa: [https://www.alexa.com/siteinfo/techcrunch.com](https://www.alexa.com/siteinfo/techcrunch.com)

They've been sending these to bug outlets; smaller guys haven't even gotten their hands on them.

<comment><USER10> According to the article, TechCrunch hasn't had issues with their review model.

</comment></comment></comment></comment><comment><USER11> The error the users made was buying a Galaxy Fold :p

<comment><USER10> Nobody has bought a Galaxy Fold yet.

</comment></comment><comment><USER12> "You're folding it wrong" \- Someone at Samsung, probably.

</comment><comment><USER13> When did stating facts become wrong? it was a user error what causes the screen to break

<comment><USER5> A number of reviewers received units.

A subset of the reviewers experienced broken phones.

A subset of the reviewers who experienced broken phones admitted to removing a protective shield on the screen, thinking it was a temporary film meant only to preserve the screen from scratches during shipping.

Samsung was only claiming that the subset of subset of reviewers had erred. Samsung did not claim that the reviewers who experienced a broken phone but who did not remove the protective screen had erred.</comment></comment>


Printing Cliches - <AUTHOR> http://www.printing-machine.org/notes/2016/6/4/printing-cliches <comment><USER2> A bit of explanation for those, like me, who didn't know about the original meaning of the word "cliché" (courtesy of Wikipedia):

"Cliché and stereotype were both originally printers' words, and in their literal printers' meanings were synonymous. Specifically, cliché was an onomatopoeic word for the sound that was made during the stereotyping process when the matrix (the papier-mâché mold bearing an impression of the forme) hit molten metal. In English this was known as 'dabbing'. The matrix was applied to molten lead at the point of cooling to make the cast."

<comment><USER3> I never made the connection between the "type" in "stereotype" and "type" as in "typesetting" until today.

<comment><USER4> Nor had I!

      The combining form "stereo-" that
      shows up in such words as "stereotype"
      and "stereophonic" is derived from
      stereos, a classical Greek word meaning
      solid.

And then, stereotype:

      A plate relief printing plate cast in a
      mold made from composed type or an
      original plate.

So, a solid plate type face. (but not boiler plate)

But now, both stereo and stereotype, their meanings so profoundly mutated well beyond their liteteral origins.

Stereo now pretty much means "2 of something" and stereotype has turned into a word carrying negative connotations of mostly bigotry or prejudice.

</comment></comment></comment><comment><USER5> It seems like a modern printer could cheat and go from a 3D printed original to a plaster (or refactory cement or green sand) negative to a type metal copy of the original.

<comment><USER6> Or they could just 3D print metal. Or really cheat and just print on paper.

Or use a VR toolkit to create the experience of something printed on paper that never was. :)

Interesting how completely different skills have all been about creating something you read, from chiseling rock to simulated light rays.

<comment><USER5> You missed "wire in the brain that makes you feel sure you've just seen something printed".

But seriously, I think someone who's casting movable type in their baking sheets probably isn't interested in virtualizing the end product.

<comment><USER7> Post author (and noob cliche printer) here. I am, in fact, interested in virtualizing the end product, for tasks ranging from closer analysis, virtual restoration, computer vision work (see links in the post and elsewhere on my site) and conceivably, for reproduction by a 3d printer or industrial prototyper. However, we do already have cheap, robust and high-quality methods of making a printing surface from a printed impression or artwork, notably photo-etching in metal or polymer. So I am not sure what 3d printing would give you apart from the satisfaction of closing the circuit.. but it's on my list of things to try, alongside stereotyping with papier mache.</comment></comment></comment></comment>


Mars One Candidate on Made in Space, SpaceX, and Generalists in Engineering - <AUTHOR> http://www.engineerjobs.com/magazine/2014/max-fagin-mars-taking-aim-red-planet.htm

<comment><USER2> Max and his team did an outstanding job at their presentation at the Mars convention last month - he is one of the incredible MarsOne team mates that make supporting the project so well worth it (beyond the mere networking and publicity boost that Mars colonization received since it was launched). See you on Mars!

<comment><AUTHOR> Is there any video of that around? I'd love to see it.</comment></comment>


What is your favorite part about being a software developer?  - <AUTHOR>

I love developing websites. However, sometimes I wonder why. I just know that "I like building things". So, I thought I'd put this out there... <comment><USER2> Money

</comment><comment><USER3> You can build anything.</comment>