Why we stopped vendoring our npm dependencies - <AUTHOR> http://blog.bithound.io/why-we-stopped-vendoring-our-npm-dependencies/ <comment><USER2> So, Github's pull request handling didn't work out? I think the answer is to not use pull requests. Github's handing of code reviews is barely adequate at best. I understand that people need to accept changes from outsiders sometimes, but for reviews between team members, maybe try Rietveld? (I haven't tried it for vendoring, though.)

When reviewing vendor code checkins, you should be making sure they're following the right procedures so that you have everything needed for the next time around: updating documentation about which version was checked in, re- applying any local patches if needed, documenting any new changes that are different from upstream, making sure tests pass, etc. As for the code itself, it's pretty much a rubber stamp; you have to trust that they unpacked the version they said they did. (This is probably not something you want to trust outsiders with.)

If you're not using code reviews and perhaps automation to keep things on track, I can see how it would fall apart.

</comment><comment><USER3> If npm speed or reliability is an issue you could also try a local registry cache:

[https://github.com/rlidwka/sinopia](https://github.com/rlidwka/sinopia)</comment>


The Case Against Octopus Farming - <AUTHOR> https://issues.org/the-case-against-octopus-farming/ <comment><USER2> Something I don't see mentioned is biomagnification. One reason we eat herbivores instead of carnivores is because the higher up the food chain you go, the more you are exposed to a concentration of heavy metals, pesticides, etc.

It's a good argument for eating less meat overall, one vegetarians seem to never make. In a world full of unprecedented levels of relatively new toxic compounds, eating less meat is a good defensive move, especially so if you have health problems.

I'm really picky about meat quality. In situations where my choice is something with low quality/highly questionable meat or a vegetarian option, I typically go with the vegetarian option.

Though be forewarned: It's a dietary path that gets you equally harassed by vegetarians and the meat-and-potatoes crowd, which can be incredibly aggravating and feel like the harassment is unceasing.

<comment><USER3> As a vegan this is an argument that I've made before unsuccessfully. When I start talking about trophic levels people's eyes gloss over and they behave confused and disinterested. I think the reason for this is that most people don't remember high school biology.

Now if you were to talk about ethics THAT gets a strong reaction simply because it's much more intuitive and relatable. People's responses can be receptive, antagonist, dismissive etc. but they certainly won't be falling asleep in front of you.

<comment><USER4> As a non-vegan* that has in the past greatly enjoyed calimari (and octopus), I've long felt that it presents me with an ethical dilemma because of how intelligent octopus, and to a lesser degree, squid, are. However, birds have incredibly dense brain matter compared to most other land animals, so if I start worrying too much about ethics in eating meat, I know I'd have to cut out far more than just the intelligent molluscs, and the whole thing is awkward.

Most people don't like that awkwardness, so it's not surprising that you get pushback.

<comment><USER5> >I know I'd have to cut out far more than just the intelligent molluscs, and the whole thing is awkward.

I ended up just cutting out farmed meat in the end. As far as meat goes, I can eat what I kill. Apart from if someone has already got me food and didn't know, as to turn that down seems both a waste and kind of rude.

<comment><USER6> > I ended up just cutting out farmed meat in the end. As far as meat goes, I > can eat what I kill. Apart from if someone has already got me food and > didn't know, as to turn that down seems both a waste and kind of rude.

Pretty common rule for mendicant Buddhists, as I understand it. No meat is the general rule, _but_ if you go a-begging and someone gives you meat, _and_ you don't have reason to believe they killed something (or had someone else kill something) specifically for you, then you're good to eat it (or even obligated to).

<comment><USER7> To expand on your point, Theravada Buddhism allows monks to consume meat with those caveats.

</comment></comment></comment></comment></comment></comment><comment><USER8> This article is partially about the impact on marine ecosystems, so don't avoid reading it if you think it is all about ethics, which is what the majority of the comments here mention.

<comment><USER9> If you put a sentence like this in such an article you beg to be bashed on your ethics:

"Given their exceptional abilities, one might ask whether humans should be eating octopus at all, but here we want to raise a different ethical question."

So we can eat stupid animals, but not the more intelligent ones, right? That's absolutely logically and ethically bonkers to just write this down as if it were a common piece of shared knowledge and give it for granted.

<comment><USER10> You're being downvoted, but I agree. If you search the word "intelligent" in this page, it is used as a reason not to eat things. It's fine if one makes this a foundation for one's ethics of death, but one must be clear that it _is_ and that it's only one way to look at things. Moreover, one should be clear that using intelligence as a reason to justify or avoid eating an organism leads to the problem that then an assessment of intelligence is vital for decision-making -- and if we happen not to understand an organism's intelligence, then we risk making the "wrong" decision out of ignorance. It can also lead to an essentially eugenicist view in which people as well as other organisms of lesser intelligence are viewed as less valuable. To be clear I'm not saying anyone here is a eugenicist: I'm saying that in history, eugenicists have taken this view.

Ranking animals by intelligence is not the only way to decide your ethics of consumption. If I want to look close to home, I can consider the ethics of the First Nations people who have lived in the area I now live in. They have a sophisticated ethic of consumption that does not rely on intelligence-ranking. Or we can look at other points of view that privilege the land and its health, and direct decisions from there.

Blindness about our assumptions and hypotheses doesn't help the conversation. Let's set out our axioms.

<comment><USER11> You remind me of the old joke (based on a true story, I'm told):

As the New Guinea man said to the missionary, "If God didn't want us to eat people He wouldn't have made us out of meat."

</comment></comment></comment></comment><comment><USER12> As with everything, it depends.

[https://www.seafoodwatch.org/seafood- recommendations/groups/...](https://www.seafoodwatch.org/seafood- recommendations/groups/octopus?o=158579988,1386140647)

[http://seafood.edf.org/octopus](http://seafood.edf.org/octopus)

There are sustainable and unsustainable sources. The same is true of all seafood.

The life expectancy of octopus is generally between 3-5 years, some live as little as 6 months. The extent of their intelligence is unclear. At most we have evidence that they have the capacity for long and short term memory. Given the standard of intelligence for animals cultures otherwise consume, this doesn't seem remarkable at all. To chase the ethical argument to it's logical end, as one of intelligence is purported, the only ethical animal then to consume is a non-sentient one.

</comment><comment><USER13> Here is a question I found myself asking:

Is it better for an animal to be farmed and eaten, or to have never been born at all?

(Assuming we can farm them safely / humanely, even though the article suggests we cannot do so yet)

<comment><USER14> Hypothetically, it could get to the point where it is more ethical to eat meat than not to, ESPECIALLY if they are sentient in the way activists say they are.

Lets say aliens came and offered you a deal. You can either not exist or live a life of luxury with all delicious food and mates you want, then after 1000 years or so you'd peacefully pass away just like a natural death and you are informed that they'd eat your body. I'm pretty sure quite a few people would be open to this.The choice is even simpler with animals since from all evidence they lack the capacity for existential dread.

Now tell, me what would be the most moral choice assuming chickens are sentient? To indulge them to a pampered existence several times their natural lifespan...and yes, at the end disposing of their bodies in the most practical and beneficial way, its not like a chicken cares what happens to its mortal shell in whatever poultry afterlife may exist. Or leave chicken minds to the terror of being torn up by a fox in the wilderness or to never know the joys of existence in the paradise future ethical meat farms may offer?

<comment><USER15> I'm not quite sure which of the two you're suggesting we do now. They neither live in luxury nor their lifespan. Instead, they're basically tortured all their short life before we kill them.

<comment><USER14> You don't have to torture animals to eat them. Assuming advances in technology and energy we could get to the point where a hypothetical farmer could raise animals in luxury. As tech increases the luxury will increase. If animals are indeed sentient, farms would essentially transform into happiness factories generating and funneling new minds into earthly paradise.

If your ethical code is a variation of 'reducing pain and increasing pleasure for all sentient life' this would be orders of magnitude more good then the Peta option of turning them loose to die in the wild or never exist. It would be far more ethical than even artificial meat.

Heck from a strict cost/benefit analysis it may be one of the greatest moral triumphs mankind has ever given the universe.

<comment><USER16> > Assuming advances in technology and energy we could get to the point where a > hypothetical farmer could raise animals in luxury. As tech increases the > luxury will increase.

Why would an industrial food processor care about how luxurious the sentient inventory finds the warehouse?

<comment><USER17> Consumer pressure

</comment></comment></comment></comment></comment></comment><comment><USER18> "... sentient alongside mammals and birds."

...which we farm and eat like crazy!

<comment><USER19> Makes you wonder... should we?

</comment></comment><comment><USER20> > given that octopuses are carnivorous and live on fish oils and protein, > rearing them risks putting further pressure on an already over-exploited > marine ecoystem.

Inherently it's no less ethical for us to eat them than it is for them to eat fish. The conditions we keep them in and the impact on the wider environment is seperate

<comment><USER21> We eat cows not wolves in large part because carnivores require vastly more land for the same protean. This argument is about efficiency, though we also eat carnivorous fish.

To simplify _The amount of feed needed to sustain and grow an octpus is three times the weight of the animal itself_ where feed is delicious protein.

<comment><USER22> While some fish are vegetarians, are most fish pescatarians or omnivorous?

<comment><USER23> Trust me. We, sea farmers, would _love_ to breed only strictly herbivorous fishes. Would made our life much, much easier and exponentially increase the benefits. Feeding fishes is really expensive.

The small problem is that the taste of this fishes is plain awful and _nobody_wants_to_buy_it_.

There are plenty of cow breams in the wild, but you rarely will find it in your fish shop. And if you eventually find it, will be a really cheap product. Try it. Most people will not buy it twice.

Investors aren't stupid. They risk a lot of their money and put incredible efforts to breed carnivorous fishes for a logical reason. Everybody loves its taste and are willing to pay good money for it!.

</comment></comment></comment></comment><comment> Pete-Codes I already feel bad eating octopus nowadays but farmed octopus would be horrible.

<comment><USER24> Why do you eat octopus if you feel bad about it? Why not just don't do it? It's not like you need to for survival.

<comment> Pete-Codes I'm not perfect like you.

<comment><USER24> Pobody's nerfect, but you can improve.

</comment></comment></comment></comment><comment><USER25> Farmed insects have been proposed as a more sustainable alternative to fish meal in aquaculture and poultry.

</comment><comment><USER26> > _Farming octopuses is not only unethical but deeply damaging to the > environment, scientists say._

Err, isn't the former up to actual ethics, which vary from place to place? Where do these "one size fits all" eating ethics come into place?

<comment><USER27> Ethics are completely arbitrary.

The article comes from a particular background. From said background, the espousal of "unethical" is understandable.

Whether you consider the ingestion of octopus to be unethical or not depends entirely on your own definition of ethics.

<comment><USER28> > Ethics are completely arbitrary.

That cannot possibly be true if ethics is based on what causes suffering / well-being.

<comment> vertex-four At some point, ethics comes down to "whose suffering/well-being do you prioritise when you're presented with a bunch of shitty options", and that's where everyone eventually disagrees.

<comment><USER29> I don't think this is actually true in the vast majority of day-to-day ethical decisions, although there are cases where it's certainly true.

I'm fairly confident that many more unethical actions, even subjectively defined (i.e. from each individual observer's pov), are the result of ignorance and apathy than actual differences of opinion regarding ethics.

</comment></comment></comment></comment></comment><comment><USER30> I'm more worried about the genocide of species via chemical and plastic contamination. There are apparently rivers so flooded with estrogenics that fish can't reproduce at a replacement rate, and need to be re-stocked by fish farms. This is not sustainable.

</comment><comment><USER31> Blogspam, original is [https://issues.org/the-case-against-octopus- farming/](https://issues.org/the-case-against-octopus-farming/)

<comment><USER32> Ok, changed from [https://www.weforum.org/agenda/2019/05/millions-of-people- ea...](https://www.weforum.org/agenda/2019/05/millions-of-people-eat-octopus- heres-why-we-probably-shouldnt). Thanks!

</comment></comment><comment><USER33> I eat Octopus because they are delicious, not because I think they are dumb. I know they are very smart, but this fact doesn't makes them less delicious to me. Also, the fact that I _—and millions of other people—_ don't feel any affection towards these cephalopods makes the argument of _"farming octopuses is unethical […]"_ less agreeable.

Many people in America eat cows, while they are considered sacred in Hinduism.

> _[…] Numerous videos on the internet of octopuses escaping from their tanks > or stealing fishermen 's catches have fuelled a human fascination with the > only invertebrate that the 2012 Cambridge Declaration on Consciousness > considers sentient alongside mammals and birds._

Mammals and birds, I hope everyone read that.

\---

People are going against my comment thinking I am on the wrong side of the argument. And I feel like explaining my point of view even further will just increase the anger in the people that already expressed their counter arguments below. We will see if the public agrees with the thesis in this article and changes their eating habits to protect one of the hundreds of animals that are also considered sentient.

<comment><USER34> No it does not make more agreeable. We had slavery back in the day, in some instances we still have it, but just because we have enough ppl doing something does not make it more "agreeable". Ethics is not something dictated by a number of ppl sharing a belief.

<comment><USER35> >Ethics is not something dictated by a number of ppl sharing a belief.

Unless you believe ethics is given from some sort of higher authority, ethics _is_ dictated by the number of people sharing a belief.

<comment><USER36> I dont care who or what is dictating them, as long as they are consistent. If someone is making the claim that it is OK to eat anything as long as they are delicious, I want to know what their stand on cannibalism is.

<comment><USER35> How about if someone makes the claim that their ethical framework is to try to maximize pleasure and minimize suffering for humans. Therefore since eating delicious animals brings pleasure to many humans, and does not cause suffering for humans, it is a good thing.

<comment><USER37> I think then the discussion would be around why only minimizing suffering for humans. If minimizing suffering is a good thing, why is there not also value in minimizing suffering for all beings that can suffer?

<comment><USER38> Because there's no pleasure in that for humans?

Of course that becomes wrong if many humans embrace the idea that minimizing suffering for animals is a good thing. At that point you would also be increasing the humans' "moral/ethical pleasure" in a kind of self fulfilling way. But there's no reason for this to happen except human hubris.

</comment></comment></comment></comment></comment></comment></comment><comment> marble-drink It's amazing to me that people can make the argument that it's not right to eat something based on intelligence. We should give extra care to less intelligent feeling beings, not less.

<comment><USER39> I don't think we should farm them due to their intelligence, but I do eat wild octopi _because_ of their intelligence. Octopi are serious dicks, so for every one eat, I'm saving hundreds or thousands of other animals from their abuse.

<comment><USER40> I've always found the intelligence criteria for eating for not eating animals stupid (because I never thought of intelligence having relevance to ability to suffer) but the social metric is an interesting way of looking at it. I don't think you can call socialness of a species something so related to the intelligence though, there are highly solitary species that are still very intelligent. Being kept in captivity would still be suffering for them, just for different reasons. I think the suffering of all animals matters but if I had to say between animals which one's matters more I'm not sure I would differentiate by more than lifespan.

</comment></comment></comment><comment><USER41> The title is misleading here. The article linked to (and the paper it references) is talking about farming octopus specifically, not eating it in general. In fact, the paper specifically states, "Given their exceptional abilities, one might ask whether humans should be eating octopus at all, but here we want to raise a different ethical question."

<comment> john-radio It's not possible for you to eat them without farming them, as a member of society in its current instantiation, so the title holds.

<comment><USER41> Huh? Almost no octopus is currently farmed. The vast majority of it is wild caught.

</comment></comment></comment><comment><USER42> Takoyaki is delicious. But I don't know why the octopus can't be substituted with squid.

<comment><USER43> Octopus and squid have very different flavours. Octopuses also have a layer of fat that squids don't.

<comment><USER42> Octopus and squid don't taste much different to me. And I definitely wouldn't be able to tell the difference in takoyaki.

</comment></comment></comment><comment><USER44> We should move towards killing less animal, not more. Meat is necessary but killing highly intelligent animals is not. If anything we should find a way to create animals with no conscience/intelligence. A slightly sci-fi scenario for now, but better than eating creatures that are as smart as octopuses.

</comment><comment><USER45> I don't eat octopi, squid, nautili or cuttlefish because I don't want to be on His bad side when Cthulhu returns. All Hail Cthulhu...

</comment><comment><USER46> Counterpoint: Octopus is super delicious, especially when chargrilled. It's a traditional food in many cultures.

<comment><USER47> So is shark fin soup, but that doesn't excuse it.

<comment><USER42> I will attest that shark fin soup is not delicious. Nor does it taste like much of anything.

<comment><USER48> seconded.

</comment></comment></comment></comment><comment><USER49> I wonder if since we really only eat the tentacles, which have regenerative abilites, maybe they're easier to grow in the lab than beef or something.

Like, I get the argument that the authors (who are largely white and probably didn't grow up eating cephalopods unlike in other cultures; honestly the article is a bit tone-deaf in this respect) don't care for the loss of eating octopus but their argument that this is unsustainable and counterproductive is based on assuming current levels of biotechnology. Canada has already permitted GMO salmon, and Canadian consumers seem to have have forgotten about that.

<comment><USER50> Octopus is a pretty common foodstuff in Mediterranean cultures - I've seen people eating it in Spain and Greece.

Edit: I was never very keen on trying it and the one time I did I was rather ill for a couple of days after.

Edit2: I've since learned how smart they are so I wouldn't dream of eating one again.</comment></comment>


Self As Symbol - <AUTHOR> http://www.sciencenews.org/view/feature/id/337947/title/Self_as_Symbol <comment><USER2> On a related note, "Gödel, Escher, Bach: An Eternal Golden Braid" was good, though rather slow going. I figure most people here will have read it, but in case not, Hofstadter basically contends that any sufficiently complex system is capable of consciousness.

He _almost_ goes so far as to say that a complex system actually _necessitates_ consciousness. In much the same way that it's difficult to prevent a language from becoming Turing-complete, perhaps it's just as difficult to prevent biological systems from tending toward self-awareness. I'm inclined to agree, and this gives me a couple of hopes: first, that we will someday make an AI that most agree is genuinely conscious; and second, that we will find a way to gradually replace a brain in its entirety with a non-biological substitute, so that we could live forever—in mind if not in body. Far-off dreams, but what's the harm?

If there are any neurobiologists in the room, take it away. :P</comment>


Wikipedia Vandal Early Detection: From User Behavior to User Embedding [pdf] - <AUTHOR> https://pdfs.semanticscholar.org/83c5/279cff3efc3330fc7df2cc217b65e94ee2c4.pdf <comment><USER2> Not convinced their user embedding creation is useful. Did not read in detail but it seems to use a list of edits similar to how one may create paragraph vectors as an average of word vectors. But if I had to guess, they're not really capturing more information than they originally had with a one hot vector of whether or not a user had edited a specific article. It would have been better if they had bench marked against this. I would wager that a simple random forest and the one hot vector would do just as well if not better than their NN solution.</comment>


Why Cranes Keep Falling - <AUTHOR> http://www.popularmechanics.com/technology/infrastructure/a19612/why-cranes-fall/ <comment><USER2> This is one of those "Wow that certainly feels like an _exotic_ way to die; clearly, cranes must be more dangerous than cars in St. Louis." sort of situations.

Spoiler alert: they're not. Cranes are industrial equipment. They're getting progressively safer over time, due primarily to the general progress of technology and decreasing reliance on the most error prone component in the crane.

The most common crane-related fatality is not "crane falls over, killing operator and/or people on the ground." It is electrocution when the crane hits a power line. (c.f. OSHA or the Bureau of Labor Statistics.) This is almost invariably a consequence of human error and failure to follow well-understood safety procedures rather than "oh noes the software is so complicated these days."

<comment><USER3> Another recent tragic crane-related fatality: [http://www.nltimes.nl/2016/02/23/at-least-two-killed- after-p...](http://www.nltimes.nl/2016/02/23/at-least-two-killed-after- passenger-train-smashes-crane-train-overturned/)

Crane operater tries to drive a crane across a railroad crossing, underestimates the time it takes, passenger train slams into it killing the train driver and injuring a number of others.

(link text says two killed but it's wrong)

<comment><USER4> I assume the same rules exist as in the UK, where slow vehicles must telephone the railway signaller before using a crossing.

So this is just another version of not following the rules.

</comment></comment></comment><comment><USER5> Considering the work they do in the places they operate, I'm kind of amazed they manage to kill only 90 people a year. While it certainly is a tragedy, the politicians kind of make it sound like the companies are being purely and unnecessarily penny-pinchy to not have the cranes taken down when things get rough, yet in the same article the author points out that is sometimes a multi day/week process. That doesn't affect just the construction company, it's also a ton of lost productivity for the workers involved, and disassembling the crane during said conditions could be dangerous itself.

I was a kid growing up in Wisconsin when Big Blue fell, I remember the news coverage vividly and we took a drive down to Milwaukee that weekend to see it. Crazy stuff to think a machine that huge could fail (as a kid anyway).

</comment><comment><USER6> > Statistics from the United States Dept. of Labor's Bureau of Labor > Statistics shows that the United States suffers nearly 90 crane-related > deaths per year

In Europe I almost never hear about crane accidents, either they do not happen as often or are underreported. Anyway, seems me being uncomfortable walking past them is not too much paranoic.

<comment><USER7> I don't think I've ever seen mobile/crawler cranes here in Paris. All of them seem to be tower cranes and the structures seem quite stable (I couldn't find death by crane stats with a quick google). These tower cranes I see everywhere are on fixed construction sites... I suppose the use of mobile cranes is more for renovations -- and yes they seem very dangerous in comparison to a fixed- base crane. But still, when one is going to the effort of building/renovating something of such magnitude, why can't a fixed-base crane be used ? If done right it shouldn't be too hard to mount and dismount a modular tower crane -- maybe there's a market for this sort of thing...

<comment><USER8> Yeah I very rarely see crawler cranes here in London. The only times I see them are to disassemble tower cranes. I wonder if this has to do with the size of streets in New York vs London. In New York most streets are wide enough to accommodate a crawler crane while in London big crawler cranes have to be disassembled and brought to the building site in pieces and can't site in the street beside usually.

<comment><USER9> They're not at all uncommon around Victoria. Lots of construction around here.

<comment><USER8> Large crawler cranes? There are small ones around London, about the same size as truck cranes but very rarely do I see one the size of these ones on New York.

</comment></comment></comment></comment></comment><comment><USER10> Perhaps it has something to do with those gravitational waves we've been hearing about.

</comment><comment><USER11> "Operator error lies at the root of most crane collapses."

" Crane manufacturers are now trying to build in new automatic features to keep disaster from striking their eqiupment. "

Maybe skip through the features and make it fully automated.

<comment><USER12> Create an AI to operate cranes in all kinds of climates, geography and weather conditions, operating near city centers.

I'll have it by Friday.

</comment></comment><comment><USER13> > Such events highlight the awesome and scary power of cranes

On the one hand, I like that expression, on the other hand it sounds a little... dramatic.</comment>


Setting Up Your Own Algorithmic Trading Server: A How-To Guide - <AUTHOR> https://hackernoon.com/setting-up-your-own-algorithmic-trading-server-4bbdf0766c17 <comment><USER2> Interesting. Though maybe it would be better to use their docker container:

[https://hub.docker.com/r/quantconnect/lean](https://hub.docker.com/r/quantconnect/lean)

<comment><USER3> It is easier for me to do it that way as well but some people aren't familiar with docker and prefer to install into their OS.</comment></comment>


Apple's Jony Ive explains how people 'misuse' iPhones – Oct. 6, 2017 - <AUTHOR> http://money.cnn.com/2017/10/06/technology/culture/jony-ive-iphone-habits/index.html?section=money_technology <comment><USER2> Such a bad "article". Mentions an interview with Ivy but doesn't mention where or to whom it was given. The text reads like three tweets interspersed with ads. Also, what logic is that: We use the iPhone too much so instead we should use Apple Watch more to do the same things (in this case read mails)?</comment>


Robot Game: Comparing 6502 C, Assembly, and Forth - <AUTHOR> http://calc6502.com/RobotGame/summary.html <comment> compiler-guy The 6502 is still doing hundreds of millions of units a year, and is still a terrific introductory processor that is comparatively easy to wrap your head around, especially if you are interested in board bring up from scratch. (Compare the requirements to boot a 68000 to a 6502 into a nop loop, for example.)

The 6502 is far from dead.

<comment><USER2> Glad to hear it! I first learned assembly for 6502 on the Apple ][, and found it indeed easy to wrap my head around. Great machine, great architecture, TED II Editor/assembler was amazing...

<comment><USER3> The great thing about the Apple ][ was that it was largely the work of Woz and thus it was very much possible for a single person to fully understand the whole thing. Even the addition of AppleSoft BASIC and DOS didn't keep it from being comprehensible.

</comment></comment></comment><comment><USER4> This nicely provides empircal evidence on the slowdown of using Forth, which seems to be around 10 to 20 times slower than optimized assembly. I was initially surprised by how poorly Forth performed on all counts of speed, memory usage and development time. For something as complex as a game the lack of a type system and postfix nature make Forth quite unsuitable.

When I use Forth, it's often for high-level applications[0] with the performance critical words written in assembly. So this keeps the complexity relatively low as opposed to writing the whole thing in Forth.

[0] [https://github.com/siraben/zkeme80/blob/master/src/bootstrap...](https://github.com/siraben/zkeme80/blob/master/src/bootstrap- flash1.fs)

<comment><USER5> If you program Forth like it's C, and then use a non-optimizing compiler, you're going to have a bad time (e.g. 10/20x slowdowns).

I've written Forth compilers that generated output that was ~25% slower than optimized assembly, without putting that much work into it. There are companies that will sell you a much better compiler [0], at prices even approachable to hobbyists.

[0] - [https://www.mpeforth.com/software/pc-systems/vfx-forth- for-l...](https://www.mpeforth.com/software/pc-systems/vfx-forth-for-linux/)

<comment><USER6> FWIW: The URL is being truncated right at the "...for-linux" part. I was mildly surprised.

This particular distribution also ships with GTK+.

That being said, a simple "3 2 1 ?" (I was unsure what word would dump the stack) SIGSEGVs quite consistently.

It's also 32-bit, and the backtrace handler produces "XXXX:XXXX" style addresses (?).

<comment><USER5> You're dereferencing an invalid pointer with a variable lookup; try "3 2 1 .s" ... there're some good ANS Forth gems here [0].

[0] - [https://1scyem2bunjw1ghzsf1cjwwn-wpengine.netdna- ssl.com/wp-...](https://1scyem2bunjw1ghzsf1cjwwn-wpengine.netdna-ssl.com/wp- content/uploads/2018/01/Starting-FORTH.pdf)

</comment></comment></comment></comment><comment><USER7> When I used to write games in 6502 assembly, I'd use a more native style rather than modeling the code after a high-level language. For example, I'd maintain global settings instead of passing lots of parameters, often having these live across many function calls. I wouldn't pass more parameters than fit in A/X/Y. The main loop was sometimes a big run of inline code instead of having many routines that only get called once. And so on.

Nice project! Looks like it was fun to work on.

</comment><comment><USER8> I wonder if the author is familiar with the PLASMA [1] language and bytecode VM for 6502-based Apple computers. That might be another interesting option to add to the comparison.

[1]: [https://github.com/dschmenk/PLASMA](https://github.com/dschmenk/PLASMA)

<comment><AUTHOR> PLASMA is a really neat project! I considered it and a few other systems before settling on C, assembly and Forth. Ultimately I left it out because I was focusing on performance not size, so a byte-code VM would not be a good fit.

</comment></comment><comment><USER9> Interesting that OP ignored ca65 and went to NASM for the second assemble option especially since they were already using cc65.

Nice use of High Level Assembly with the macros!

</comment><comment><USER10> Unfortunately, it seems that for all practical purposes, and as much as we love it, 6502 in all its (still existing) incarnations is all but dead.Even MIPS has been dying, albeit slowly and painfully. The unpleasant truth is that as we now all know that ARM is currently the only sane choice for a hobbyist project (see, for example, Color Maximite 2), and we can only hope that RISC-V will someday replace it in the hands of CPU aficionados, but in the times when for a few pennies we can have an 8-pin ARM microcontroller, this is a no- brainer. (ESP32, being quite popular, due to its highly integrated nature and the focus on IoT is a somewhat different proposition.)

<comment><USER11> "What is sane for a hobbyist project" depends on the project and the wills of the designer.

I've built a couple of 6502 based systems now and added VGA output and floppy support which probably would've been easier with an ESP32 or something but my goal was to learn how to do this the hard way.

</comment></comment><comment><USER12> Is the mult5 example an actual piece of code of your program?

Any multiplication where one multiplicand is a constant should be much faster with shifts and adds than with a loop. mult5, e.g. is: x+(x<<2)

<comment><AUTHOR> Right, I do this in the assembly versions everywhere I multiply by a constant. mult5 is just an example.

</comment></comment><comment><USER13> I don't know Forth on the 6502 but I think the statement that STC is the fastest form of Forth is not always true. But it will lead to larger programs.

</comment><comment><USER14> It's kind of a funny coincidence that I also wrote a very similar looking game which I also called "Robot Game" at some point, and I also rewrote it at multiple points in time in different languages:

* Starting in Visual Basic 3 in 1999 ([http://www.az2000.de/projects/robot/](http://www.az2000.de/projects/robot/)),

* then later in Object Pascal / Lazarus in 2006 ([http://www.az2000.de/projects/robot2/](http://www.az2000.de/projects/robot2/)),

* and recently in Python in 2017 ([https://github.com/albertz/PyOverheadGame](https://github.com/albertz/PyOverheadGame)).

</comment><comment><USER15> > This brings us to one of the main shortcomings of Forth. If you need to > access more than three local variables at once (in the body of a loop for > example) there is just no convenient way to do so. [...] Consider the > variables used in this C function that draws 1 bit-per-pixel images with > optional rounded corners: > int DrawTile1bpp

Looking at the C version, the argument "tile" is used once in the function, to get the pointer to the tile. The pointer could be passed directly: one less local. x and y are passed only to calculate an address, this address could be passed directly - there are only three calls to this function, it might be worth the DRY exception.

t0 seems to be always 0, except when it is undefined.

The t_height, t_with are just offsets in the tile structure. This locals can go away too - probably eating the cost of fetching them each time is more effective than the cost of all the stack juggling done to avoid it. This reminds me a word from a Chess great master: "don't waste time trying to save one".

trans_row only exists to set skip_pixel, it seems one of them can go away. The logic seems to be "unless trans_row and something, do something". The C version might actually be more verbose than necessary.

Finally, the edge_style complicates a lot the logic. Using one function to do different things because it is so simple to "just add another parameter" is typical in many HLL, and often result in awful spaghetti code.

What a Forth programmer would do is to write one function for each edge style and see what the have in common. More often than not, they share a lot of subwords, so that having one function for each case is not more expensive than one function for all cases.

I suggest doing that with the C version and see what happens.

> Without parenthesis or commas, there is no way to tell just by looking at > the code which of those are functions, which ones are variables, which of > them are inputs to the others, or what any of them return. Forth fans will > say that that information is available in the stack comment for the word's > declaration, but that assumes that the programmer bothered to create one. > Even if they did, you have to search in several places in the file to figure > out what is instantly obvious if the same code were written in a language > like C or Python. It's easy to see why people criticize Forth for being > "write only." If you translated the line above into C, it could be doing any > of the following:

Actually even in C some follow certain naming conventions - like #defines being all caps, member things being prefixed by m_, etc. And you can do that in Forth too. Once again, "write only" has more to do with the author than wit the language.

<comment><AUTHOR> Hi astrobe_, interesting points! I disagree with you on a few things:

> Looking at the C version, the argument "tile" is used once in the function, > to get the pointer to the tile. The pointer could be passed directly: one > less local.

The argument "tile" is an 8-bit index, which is faster to pass than the 16-bit pointer to the tile. More importantly, that index is used for things other than looking up the tile pointer, such as finding color pairs to recolor the tile. In other words, you could pass the 16-bit tile pointer directly, but you'd still need a way to correlate that pointer with its matching color data, and that system would be slower than using the same 8-bit index for both.

> x and y are passed only to calculate an address, this address could be > passed directly

That would be more efficient and save a handful of cycles when the function is called. This does not answer the original criticism, however. As I mentioned on the page, x and y go away after the pointer is calculated, so I'm not counting those as variables that need to be available in the loop body. You still have over a dozen variables that you can't manage efficiently in Forth.

> t0 seems to be always 0, except when it is undefined.

Good point!

> The t_height, t_with are just offsets in the tile structure. This locals can > go away too

I don't think I see your point. If you're going for performance, doing one array access and saving the value saves a lot of cycles compared to indexing into the array each iteration, which eats a lot of cycles.

> trans_row only exists to set skip_pixel, it seems one of them can go away. > The logic seems to be "unless trans_row and something, do something". The C > version might actually be more verbose than necessary.

You could get rid of one of them at the expense of readability. Or maybe there is a good name that would indicate both purposes.

> Finally, the edge_style complicates a lot the logic. Using one function to > do different things because it is so simple to "just add another parameter" > is typical in many HLL, and often result in awful spaghetti code.

I don't think this function is awful spaghetti code. Yes, the logic is complicated. I mention on the page that I encoded the data for some tiles as 1 bit per pixel to save room and decided to make rounded transparent corners in code depending on a flag stored for each tile. This function is a compromise to save memory. Otherwise, you could just encode the tile like any other and have three colors including transparency but take up 8 times more memory.

> Actually even in C some follow certain naming conventions - like #defines > being all caps, member things being prefixed by m_, etc. And you can do that > in Forth too. Once again, "write only" has more to do with the author than > wit the language.

I really disagree on this one! All caps and so on for constants is nice but still does not tell you how many values, if any, a word pops and how many it leaves behind. That alone earns the "write only" label. For example: CONST_A m_foo CONST_B m_bar. What does m_foo return and what arguments does m_bar take?

Thanks for the comments!

<comment><USER15> To be clear, I don't think this function is spaghetti code.

I believe you are victim of premature optimization. You knew Forth would be slow because interpreted, so you feared for performance. Fear often makes you do the wrong things.

The nice thing about Forth is that speed is often correlated to the number of words in a definition, so you can start writing for source/memory compactness all while partitioning the program into meaningful words as much as you can. Then assess the situation on the performance side.

> I really disagree on this one! All caps and so on for constants is nice but > still does not tell you how many values, if any, a word pops and how many it > leaves behind

Just like in Lua or Go you cannot tell how many values a function returns, and in most dynamically typed languages, what are the types of the input arguments. Furthermore the name alone cannot tell you about the behavior for corner cases either, like what happens if you pass a null pointer as a second argument to a string concatenation function: no-op or crash? You cannot tell until you check out the docs or read the source of the function.

Chuck Moore even claims that "stack pictures" (comments describing the stack effects of a word) are unnecessary; the effects should be obvious from the definition or if it needs more elaborate commentary, it should be documented somewhere else.

Documentation is something people don't take seriously. When you see that the whole documentation of a project consists in Doxygen files this is usually a bad sign. It might be pretty and nice at first glance, but there is more to documentation than documenting the interface of functions and dropping a few lines of introduction on top of that. Documentation should tell a story. And for this story to be well told, you cannot follow the layout of the code.

So to answer your question, what a word does should be obvious from the name or from its definition. Someone said naming things is one of the two hard problems in CS. This is where Forth shows you the real problems and demands thoughtful solutions. 47 characters-long names are certainly not the solution. Documented naming conventions and making sure a word does not do too many things are.

<comment><AUTHOR> > I believe you are victim of premature optimization. You knew Forth would be > slow because interpreted, so you feared for performance. Fear often makes > you do the wrong things.

As I explain on the page, the Forth I'm using is not interpreted. It generates STC, and if the body of the word is smaller than a particular size which you set, it will inline the code. Someone measured the dispatch overhead for fetching the next word in FIG-Forth for the 6502 at over 80 cycles. STC only needs 12 for a JSR/RTS pair and potentially 0 if the word is inlined. In any case, if I'm trying to make each version as fast as I know how, it wouldn't matter if I knew that it was interpreted or not. On the other hand, I'm happy to look at any place in the source you find where it seems fear made me do the wrong thing.

> The nice thing about Forth is that speed is often correlated to the number > of words in a definition, so you can start writing for source/memory > compactness all while partitioning the program into meaningful words as much > as you can. Then assess the situation on the performance side.

Speed is correlated with number of words in that it goes down when you do a lot of factoring. Admittedly this depends on the architecture and penalty for subroutine calls. I was all set up to factor all my words down to a line or two after reading Starting Forth but switched to longer but much faster words after starting this project.

> Just like in Lua or Go you cannot tell how many values a function returns, > and in most dynamically typed languages, what are the types of the input > arguments. Furthermore the name alone cannot tell you about the behavior for > corner cases either, like what happens if you pass a null pointer as a > second argument to a string concatenation function: no-op or crash? You > cannot tell until you check out the docs or read the source of the function.

I've never used Lua or Go so I can't comment on that. This does not answer the original criticism. Sure, there are pieces of information in every language you don't get until you look at the documentation. The point still stands that you can tell what arguments a C function takes and what it's returning at a glance while you can't in Forth.

> Documentation is something people don't take seriously. When you see that > the whole documentation of a project consists in Doxygen files this is > usually a bad sign. It might be pretty and nice at first glance, but there > is more to documentation than documenting the interface of functions and > dropping a few lines of introduction on top of that. Documentation should > tell a story. And for this story to be well told, you cannot follow the > layout of the code.

Good point

> So to answer your question, what a word does should be obvious from the name > or from its definition. Someone said naming things is one of the two hard > problems in CS. This is where Forth shows you the real problems and demands > thoughtful solutions. 47 characters-long names are certainly not the > solution. Documented naming conventions and making sure a word does not do > too many things are.

This is something different than what I'm pointing out. Yes, good naming will tell you what it's doing, but it doesn't tell you HOW it's doing it. Even if the word is kept short and doesn't do too much, the programmer has a lot of freedom in how they choose to use the stack, so even in well-written Forth, the word name gives no indication of what the word does to the stack. It's understandable then that you don't want a word taking 13 arguments, but once we get to the point where a valid argument could be made to have a word either take one item off the stack or two, we are stuck in the same morass where we can't tell what anything takes or returns.

astrobe_, I picked DrawTile1bpp as an example where Forth is especially unwieldy. Would you like to rewrite it as an example? Maybe if someone experienced like you took a swing at it, it would better reflect what Forth can do on the 6502.

<comment><USER15> > Someone measured the dispatch overhead for fetching the next word in FIG- > Forth for the 6502 at over 80 cycles. STC only needs 12 for a JSR/RTS pair > and potentially 0 if the word is inlined.

I have implemented STC with cod inlining for 8086 a long time ago, as well as DTC and bytecode, in assembly, C and Forth (sic), so I did my share of cycle counting.

Sorry if I project my younger self on you, but cycle count is not the best approach to factoring. Factoring in Forth is about spotting redundancies. This is a bit different from what people mean today by "(re)factoring", which is more about how one splits a task, a program, into functions or classes. This should be called "restructuring" instead. Refactoring in Forth is really a compression process, even when you could not care less about the size of your object code.

The best approach is to write your definitions the way you like, mostly ignoring speed and cycles and byte count. This should result in clean, elegant definitions. This first step reveals some short words like your @+1 that could be good candidates for an implementation in assembler. Some other words can be inlined using IMMEDIATE. Some others can be de-factored as a result of this refactoring-for-speed process. Doing it that would have made you realize t0_ppp is always 1, just like t0 is in the C version.

The Python basis for this port needs some optimizations to begin with. If I am not mistaken, all tiles are square. No need for a t_height or a t_width. No need for both in the tiles structure either.

The C port of the Python program can be improved. Tiles are defined, then there's a big array of pointers to those tiles. This is necessary because the tile data does not have a constant length, but it seems to me preferable to have an array of structures defining the geometry and colors of the tiles, and a pointer to the pixel data. The size is the same, just a different layout, but I expect that delaying the indirection from fetching the tile to fetching the data of the tile to be more convenient for the code.

Spotting unneeded complexity is harder than one would expect. Past the point of complexity being the consequence of laziness or lack of skill or lack of time, you find out that complexity also results from (bad) habits. You need to configure a bunch of paths for your application, you start writing routines to read them from an initialization file. Then after a while you realize you are using an interpreted language, so you could have sourced the configuration file directly, duh. I'm still making that kind of mistake after years of practice.

Simplification is a progressive process. Jeff Fox explains it better than I would in the third chapter of his essay on Forth [0].

> we are stuck in the same morass where we can't tell what anything takes or > returns

I am puzzled to hear this complain from someone who can program in assembly. Forth and assembly are both un-typed, "no declaration needed" languages. What makes those properties acceptable in asm but not in Forth? Your expectations of Forth being a higher level language maybe?

In any case, all I can do is tell you that with practice, it is not as a big deal as you think, just like the weird symbols in APL are not a big deal, just like parenthesis in Lisp are not a big deal.

> Would you like to rewrite it as an example?

Sorry but no. I have no motivation to do that - I dislike coding challenges and prefer to code things that are actually useful for me - and nothing to gain from it.

[0] [http://www.ultratechnology.com/forth.htm](http://www.ultratechnology.com/forth.htm)

<comment><AUTHOR> > The best approach is to write your definitions the way you like, mostly > ignoring speed and cycles and byte count. This should result in clean, > elegant definitions. This first step reveals some short words like your @+1 > that could be good candidates for an implementation in assembler.

Yikes! When I get into debates about this, writing part of the program in assembly usually comes up eventually. This is a good example of how inefficient the system is when you have to write assembly to do what would be *ptr++ in C. Another example is something like "swap 5 + swap" which burns all kinds of cycles. Someone recommended I rewrite this in assembly as well although it would only be something like "x+=5" in C. The absurdity of that speaks for itself.

>The Python basis for this port needs some optimizations to begin with. If I am not mistaken, all tiles are square. No need for a t_height or a t_width. No need for both in the tiles structure either.

Sure, but storing those as one value instead of two would also slightly speed up the C and assembly versions. Forth would still be just as slow and inefficient compared to the other languages if you made that change.

> The C port of the Python program can be improved. Tiles are defined, then > there's a big array of pointers to those tiles. This is necessary because > the tile data does not have a constant length, but it seems to me preferable > to have an array of structures defining the geometry and colors of the > tiles, and a pointer to the pixel data. The size is the same, just a > different layout, but I expect that delaying the indirection from fetching > the tile to fetching the data of the tile to be more convenient for the > code.

No, the color data varies as well since some tiles have no color pairs and the rest have a varying number. Also, different color pairs can be applied to the same tile depending on the situation, so there is no 1:1 correspondence that would make your suggestion make sense here. In any case, adding one level of indirection to save memory and keep the system organized by passing an 8-bit index instead of a 16-bit pointer adds a few dozen cycles to a function that takes around 20,000 to draw the tile. Do you mean that if the C and Forth versions were reorganized, there wouldn't be such a large speed disparity between the two? That is highly doubtful.

>I am puzzled to hear this complain from someone who can program in assembly. Forth and assembly are both un-typed, "no declaration needed" languages. What makes those properties acceptable in asm but not in Forth? Your expectations of Forth being a higher level language maybe?

The original criticism is that you can't tell what anything takes or returns. If you look at the assembly, you'll see that the function calls there are just as clear as in C since we have named arguments and can instantly see what happens with the return value after the subroutine call. It's very telling that it's a lot easier to implement a usable scheme for local variables in assembly, primitive as it is, while Forth still lacks this.

> Sorry but no. I have no motivation to do that - I dislike coding challenges > and prefer to code things that are actually useful for me - and nothing to > gain from it.

Fair enough. How about an existing example you could point to then? There are a lot of unbelievable claims about the performance of Forth compared to C and assembly, but no one seems to be able to prove any of this. That's one of the main motivations for doing this project.</comment></comment></comment></comment></comment></comment>


Show HN: I made an embeddable user feedback tool – free for open source - <AUTHOR> Hi HN,
After I finished my thesis on feedback management for SaaS at the end of last year, I thought it was time to do something hands-on that topic. Since I like the idea of such feedback tools, that lets you collaborate with users to find solutions together - instead of having a separated feedback from each user - this became my starting point. I also like the approach of the chat widgets as they make it easy for users to get in touch with the people behind the app. So I tried to combine these two approaches with sleekplan.com.
Here are some of the main features:
* Collect & discuss feedback with an embedded widget
* Calculate an impact score for feedback items based on different factors (such as weight, users satisfaction, user engagement),
* Categories for different types of feedback (Feature requests, missing integrations, bugs)
* Custom statuses
* Roadmap
* Changelog
* Notify "followers" that are watching specific feedback items on status updates
* Keep discussions simple (jump straight into discussions via email)
I initially focused on developing the tool itself. The next step is an integration to sync Github issues.
I'm sure there's plenty of room for improvement, so what do you think about it? I would really appreciate your feedback, don't be nice, say anything that sucks. As Bill Gates says: "We all need people who will give us feedback. That's how we improve". <comment><USER2> This reminds me of canny.io

We decided against using it because given an option users might vote on features but unsure if they actually want a particular feature or not.

Worried about false positives distracting us, we decided against it.

However, I know a ton of products who still use it and they are happy with it.

<comment><USER3> I agree to some extent. Unless you can filter the feedback based on the level of the user (plan, MRR from account, user engagement), it can result in some lower importance features being built. Also, making the roadmap public reduces the product team's flexibility to an extent.

<comment><AUTHOR> Right, but these filters are not quite trivial. How would you filter (MRR by Upvotes, MRR by comments and subscriptions or all). I think it depends, that's one of the reasons I have implemented an impact score combining MRR, user engagement and so.

It's just more simple to filter. Therefore, a feedback item with 10 upvotes can have an impact score of 40, while a feedback with 100 upvotes can have an impact score of 3.

</comment></comment></comment><comment><AUTHOR> Site: [https://sleekplan.com/](https://sleekplan.com/) Docs: [https://sleekplan.com/docs/](https://sleekplan.com/docs/)

</comment><comment><USER4> The design looks slick.

Question on Pricing - Starter plan is $19 for 100 users and Business is $75 for 500 users.

Starter plan with 500 users - $79

There is not much difference in the plans either except for Prio* in support

<comment><AUTHOR> Thank you!

You're absolutely right. I have spent a lot of time thinking about pricing. Here is one of my calculations: [https://i.imgur.com/sB4CuAf.png](https://i.imgur.com/sB4CuAf.png) I just wanted to give some kind of "discount" for more usage. The higher the number of tracked users, the lower the price will be in the end. In general you can think of a per tricked user pricing.

Prio support is just a "nice to have" addition

<comment><USER4> Makes sense. But prio as "nice to have" will not hold much ground.

Maybe include a slider to show the pricing and remove the Business plan?

Or maybe not give out everything unlimited for the mid plan?

<comment><AUTHOR> That's really a good point, I like the idea of the slider solution! Maybe with some tiered pricing, that would also make it very easy to explain.

I think a limit on functionality would not go over so well since you have to pay for it and then getting limited by tracked user plus functionality.

</comment></comment></comment></comment><comment><AUTHOR> PS: here is the [https://sleekplan.com](https://sleekplan.com)</comment>


Evergreen: an open source feed reader for MacOS - <AUTHOR> https://github.com/brentsimmons/Evergreen <comment><USER2> The readme say: _It's also not actually usable at this point._

So why are you sharing this? I don't see any features that set it apart from the alternatives.

<comment><USER3> Its made by Brent Simmons, the creator of NetNewsWire (a popular RSS reader).</comment></comment>


UN Report: Robots Will Replace Two-Thirds of All Workers in the Developing World - <AUTHOR> https://futurism.com/un-report-robots-will-replace-two-thirds-of-all-workers-in-the-developing-world/ <comment><USER2> That's timely.

I just had a discussion with the taxi driver on the way to the airport here in southwest China about education. He seemed to be suggesting that, given I spoke Mandarin and English, I would be well-regarded as a teacher. I had to explain that the type of thing I do is not really available in the syllabus of universities or schools in China, and that while I'd investigated opening one the government policy made it a prohibitively difficult and unstable proposition to run a non-standard syllabus. I arrived at the airport, and had a 10 minute wait to get in the door, because people were employed to manually wave an explosives-detection wand over everyone's bag. Entering the main hall, the flights display did not have my flight listed. I asked a nearby shiny sash-wearing airport employee what was up. She directed me to the right place immediately. Evidently, nobody had bothered to update the computer.

The manual-only (despite the zero luggage encouraged nature of the airline) check-in wasn't yet opened, so I went up to the F&B level, where I met some Nepalis en-route back to Kathmandu from studying computing in Korea who needed to change money to eat and couldn't, because the manual change bureaus weren't open. I then had a ridiculously bad meal ordered from a place where the lights were only half functional where neither the table nor environment were properly cleaned. During the meal, manual cleaners and their trolleys wafted about the dining area without urgency. After the meal I opened my laptop and had to go through a dated SMS code-sending procedure to get on the airport wifi.

Robots and automation would have improved the experience on so many levels, but I don't want the world to turn in to a shiny fascist utopia like Singapore. I'm literally on the way to the Pearl River Delta (Hong Kong/Shenzhen) on a project to build food-making robots - [http://infinite- food.com/](http://infinite-food.com/) \- but the human question is a strong one and it unsettles me. In a wholly automated future, where is the sense of worth going to come from for the average citizen? Where does it come from now?

Somehow, after witnessing the miracle of transformation that is modern China (I've spent most of my adult life here), I can only believe that the human spirit will find a way, at least in this society. After all, on the grand scale of things, if we're all fed, clothed, housed, but simply bored... it's not a bad problem to have: onward to robotic noodles!

<comment><USER3> In some ways Japan may be addressing their demographic challenges in a way that works for Japan. For years the west (businesses, academia, think thanks) has tried to convince Japan they needed to open immigration to address low birth rates --however, given their aging population and the advances in robotics and automation, their holding back the popular tide might make their transition into automation easier as they are naturally drifting to an economy which needs fewer people...

Much of the west would also have plateauing or decreasing populations if it were not for the importation of foreign populations.

Even advanced economies will be unable to provide middle class lifestyles to everyone if most people are not being productive in some way. We may just have to get used to most people doing more with less. That might mean living healthy but more frugal and less consumerist lives.

<comment><USER4> > Even advanced economies will be unable to provide middle class lifestyles to > everyone if most people are not being productive in some way.

This doesn't really make sense to me.

If we look purely at the economy in terms of its inputs and outputs - in terms of goods and services - we won't suddenly have less goods and services. We'll have the same or more goods and services with lower costs (because robots will be cheaper than people - otherwise we'd just employ people). So you have the same end result (the goods and services) with less operating costs - seems to me like if you don't change anything you'd either 1) see business owners growing their share of wealth while the hordes of unemployed starve - or 2) you'd increase taxes and increase welfare spending and things would net out such that the average person's quality of life could be preserved.

Of course, if you're argument assumes that we're hurtling straight towards option 1, then yeah that makes sense.

But it doesn't mathematically make sense to me that automation _has_ to mean people become destitute.

</comment></comment></comment><comment><USER5> This is a bit of a capsule summary of better, longer pieces, and a bit hyperbolic. The policy brief is better and is still an easy read: [http://unctad.org/en/PublicationsLibrary/presspb2016d6_en.pd...](http://unctad.org/en/PublicationsLibrary/presspb2016d6_en.pdf)

The thing that always scares me reading any of those "X% of workers losing their jobs to automation" stories is thinking about what proportion of the (100-X)% of workers have jobs that (to a lesser or greater extent) depend on the idea that the X% are employed and have surplus income to spend.

<comment><USER6> i think that's essentially how recession works. some job market or region becomes outmoded or otherwise disadvantaged; the lack of wages means the workers lack income to engage with other businesses, which are in turn financially impacted, and so on, spiraling out.

<comment><USER5> Exactly. The feeling of being in a 'house of cards' is never so strong as when I'm around my own, rather hipster neighborhood - where you have a lot of handsomely paid 'creatives' doing jobs that seem like the frothiest portion of our current economy and spending their money on ridiculously priced burgers, etc. These folks have jobs that are about as far as you could get from being automated, but I would be very surprised to see any of them keep their jobs if there was a nasty crunch.

</comment></comment></comment><comment><USER7> Robots can only reduce costs of the production, but to earn any money corporations first need to be able to sell their products to someone, they need consumers. And you can't have starving, homeless consumers. You need to come up with some jobs so that majority of people still can earn money every month, so that you can sell them things regularly and finance all those fancy robots with a stable cash flow. Without that the whole economy as we know it would break. Not to mention that there would be a revolution or something long before that point. Transition, of course, will not be nice to many currently poor and unskilled workers, they'll be victims of the progress and this will continue for the few next generations for sure. But it's just a transition, jobs will eventually shift to something new, as they did before.

<comment><USER8> Consumers aren't really necessary. The economy will just start to allocate resources to the people that still have money to spend. Like the rich people that own the robots, or the government. Think more yacht and tank factories.

<comment><USER9> What a thought! No shopping malls, no supermarkets, no consumer product companies, no mass transport, no advertising (so no Google or FB etc.,) and so on. Numbers of the rich will rapidly dwindle and those yachts might lack for the odd amenity while the tank & robot factories risk being stuck for spare parts. A logistics headache at the very least!

</comment></comment></comment><comment><USER10> UN report authors don't understand economics.

If robots ever get cheap enough to replace sweatshop labor, that will mean a substantial increase in the number of people in the developing world that will be able to afford these robots. The same way smartphones were only found in the developed world a decade ago, and now are owned by over two billion people in the developing world, hundreds of millions of people in the developing world will be able to afford robots if prices come down enough.

This will profoundly increase the number of businesses that people in the developing world will be able to operate, and improve the quality of life of the average person there.

</comment><comment><USER11> The article casually mentions universal basic income (UBI) as a possible solution, but it's not, at least not for _this_ issue.

It is plausible to implement UBI (assuming political will to do so, which is debatable in most places) or some other wealth transfer solution in an advanced, wealthy technological society, where you tax the mostly automated production of goods and services to provide basic needs for all those people who are not necessary for economic production; even as the math of UBI doesn't IMHO really work out right now yet, it's plausible that it will in the coming decades with growing automated productivity and all those people becoming _actually_ economically unnecessary. Especially with the re-shoring discussed in the article moving lots of production capacity back to developed countries, reversing globalization and international integration, making them more self- sufficient.

However, it seems quite implausible that this re-shoring will result in the developed world funding an UBI for these two thirds of all workers in the developing world. I don't see the political will being there for at _least_ a generation if not much more - there will be painful debates about doing UBI for _their own_ people, where in addition to moral imperative and nationalism you also have a practical reason for the elites and producers to spend a small fraction of their wealth for 'bread and circuses' to ensure local social stability around their homes; but any proposals to do the same for the whole world simply won't fly.

It seems far more believable that these countries will rather choose to invest some resources in "building a wall", literally or metaphorically. Currently, importing labor is economically useful for many developed countries for demographic reasons; but as labor becomes useless, we can expect them to follow their interests and restrict migration even as the desire for migration grows.

</comment><comment><USER12> Technology wlll replace 90% of All Workers in the US (mid. 1800s)

<comment><USER6> i think that the idea that new jobs will always be created is a bit faith- based.

historical precedent tends to be relatively narrow, centered on the use of human physical labor. traditionally this has reduced the demand for such, and moved people into forms of work requiring some amount of thought and decision making that was not (yet) automatable.

once automation begins aggressively competing with human thinking, decision making and creative efforts... we'll be facing a distinctly new challenge.

<comment><USER13> Unless automation reduces the price of everything to free, we'll still have a market economy with supply and demand. Human demand is infinite, so the same forces that create jobs are still working.

If everything is free, then we're post-scarcity and work doesn't matter anyway.

<comment><USER8> There's no law of economics that says the value of human labor can't fall. When it falls below minimum wage you get unemployment.

Similarly, when horses became less valuable then the cost of feeding them, they were taken to the glue factory.

<comment><USER13> It would be weird if human labor became worthless and that didn't lower the cost of living, though. If it doesn't balance itself out there is some automation owner out there capturing all the value, and we can just have them shot as counterrevolutionaries.

<comment><USER6> > It would be weird if human labor became worthless and that didn't lower the > cost of living, though

it's something that could very well happen in a depression and extensive structural unemployment.

the problem with economic events is time. most simple models and equations don't "balance out" instantaneously, so to speak, due to the temporal lag between decisions and consequences.

as businesses pursue better quarterly profits and shiny year-over-year results through automating the previously un-automatible and reducing the labor force, they risk creating unemployment but not zero or near-zero cost goods.

the consequence of unemployment isn't felt immediately, which is why it can be very hard to stop things from spiraling out of control. but at some point purchasing power drops off, reducing sales... and on it goes.

at some point we might reach "free shit made and delivered by robots", but there's a substantial, possible rather brutal gap between here and there.

</comment></comment></comment></comment></comment></comment><comment><USER14> Foxconn plans to replace most of their workers with robots in the next few years. They already replaced 40,000 humans.

<comment><USER15> Foxconn said they'd replace about a million workers around ~2007. They employ more people now than they did back then.

Robots are a convenient villain.

<comment><USER14> But now they have a Foxbot that works. It took them three generations of robots to get one that can do phone assembly, but they finally succeeded.

</comment></comment></comment><comment><USER16> Since this is inevitable by most opinions the real question should be how do we increase the number of jobs by 66%

<comment><USER17> Service industry

</comment></comment><comment><USER17> Triggering mass immigration.

<comment><USER6> which, of course, is the true tragedy in all of this.</comment></comment>


EBay's $4 Billion Lesson in the Value of Hype - <AUTHOR> http://bits.blogs.nytimes.com/2007/10/01/ebays-4-billion-lesson-in-the-value-of-hype/index.html?hp

<comment><AUTHOR> Lessons learned, according to the article:

 _1\. Just because a company has a huge and growing audience doesn't mean it can find a huge revenue source_

 _2\. It's almost impossible to pay for a deal through "synergies"_

<comment><USER2> > 1\. Just because a company has a huge and growing audience doesn't mean it > can find a huge revenue source

How does this fit in with "make something people want". I don't think it invalidates it, maybe it just means "make it, then sell it in the hopes that someone else can find a way to make money from it"?

<comment><USER3> Well, make something people want first and find a revenue source later works just fine. It's not that Skype didn't find a way to make money and became a failure despite of it's uesr base. The problem is simply that Ebay paid way more than Skype was worth. $90 million in annual revenues is a decent amount of money and at a lower price it would have been a good investment.

<comment><AUTHOR> _The problem is simply that Ebay paid way more than Skype was worth. $90 million in annual revenues is a decent amount of money._

Right, Skype would have been a great deal at a lower price.

But it's a case study that might give future acquirers of other startups pause, as the last paragraph suggests:

 _"Here's a suggestion to every Internet executive: take a Post-It note, write 'EBay wasted $3 billion on Skype' and stick it to your monitor. Stare at it the next time some hot social whatever-2.0 company comes by and talks about growing fast and finding a revenue model later."_

</comment></comment></comment></comment><comment><USER4> An interesting point raised in the comments there is that it's hard to peg the actual value of a product that's coming at a problem in a totally new way. Skype is by far the leader in its approach, and if in the future the entire world moves away from landline phone they'll be well positioned to maybe even kill Ma Bell II with their really robust VOIP technology. Plus, with $90m in annual revenue, they're making a ton more than the nearest company with a web 2.0 logo (unless you count guaranteed payoffs from the likes of Microsoft and Google).

</comment><comment><USER5> Hmmm, the "lessons learned" are far from obvious for me. What were the performance criteria for Skype? Were they realistic, were they _meant_ to be realistic? Without the details it just looks like accounting trickery.</comment>


Ask HN: Blogging platforms for non-technical people? - <AUTHOR> Hi HN,
I was wondering if you could pinpoint me/others towards some blogging platforms like WordPress, that are easy to handle for non-technical people like myself.
Thanks! <comment><USER2> Happy to offer up mine, valME.io, which permits custom domains. [1]

[1] [https://valme.io/c/gettingstarted/69qqs/valme-io-now-with- cu...](https://valme.io/c/gettingstarted/69qqs/valme-io-now-with-custom- domains-including-sslhttps-support-and-a-bunch-of-other-improvements-while-we- were-in-the-code-take-that-wordpress-and-tumblr)

</comment><comment><USER3> I like [https://write.as](https://write.as)

<comment><USER4> Same. Been using it for over three years and couldn't be more simple.</comment></comment>


HN review: thoughts on Blue Frog Gaming's new Twitter game? - <AUTHOR> http://www.playstarfleet.com

<comment><USER2> do _NOT_ automatically tweet this "Join my crew in Starfleet Commander! <http://bit.ly/3SKmIA> #starfleet" without asking me.

ffs. That's a lame move. If you need to rely on auto-spamming, something is amiss.

Why would you think people would be ok with it tweeting using your account without asking you first?

I hesitated before allowing access, and actually changed to using a different test twitter account before I did - good job too.

Is twitter actually integral to the game? Or just a cheap spammy way to 'go viral'?

<comment><AUTHOR> Yeah, we have a way to turn them off, but are working on possibly modifying the startup flow to be more like Spymaster's current one where it asks you before you signup. Sorry if we came off as too spammy. We'll fix it somehow, just trying to find the best way.

Twitter is useful, it's not entirely integral yet. It will be though as we change things to for instance DM you when you're getting attacked, uses tweets for the internal messaging system, etc.

It's a port of a Facebook app that's doing well, the reason we posted this here but did not for the FB app is that we're not as familiar with Twitter as a lot of people here probably are, and some things change in translation.

<comment><USER3> _we're not as familiar with Twitter as a lot of people here probably are_

Well, here's the 5 second description of Twitter from a guy who sells bingo cards to elementary schoolteachers to probably the only person here who knows less about it than him: when somebody tweets, it interrupts the day of their friends and coworkers. Their friends and coworkers signed up to be interrupted, because they trusted that friend to not waste their time. If that friend wastes their time, they'd revoke the permission and trust that friend less.

You'll pointedly notice the distinct lack of "I think I'm going to ring a few hundred phones on a different continent three times in ten minutes as a consequence of playing a 4X game."

<comment><AUTHOR> How many people get SMSed every tweet? Or do you just mean DMs. I know I quickly turned off all SMSes other than DMs, but have no idea if that is typical Twitter behavior.

<comment><USER2> You seem to be totally missing the point here.

Don't spam. Simple. Don't do it.

<comment><AUTHOR> That's not simple at all. One man's spam is another man's ham. In games where these things are asked for specifically before playing, many people leave them on.

In our game you can turn them off on the options page. We don't make that clear enough, and there's one Tweet that cannot be prevented. We're fixing that.

</comment></comment></comment></comment></comment></comment><comment><USER4> From an email to Matt. Would be interesting to hear if others agree. Try to get beyond the obviously-you-should-stop-spamming issue.

\----

you gotta let me queue up build tasks (or it might be that i spent all my money on my first click)

also is the "time" under "build" the "build time"?

also, you should "ajax in" the sub tabs like research, shipyard, etc. the page will load a lot faster. You could make it feel like a desktop app depending on the transitions.

I'll play it a bit more and send any more thoughts.

Ohh, and you totally should try to get @levarburton on this. I would test having an "invite levar" button. that says: ".@levarburton please join my crew in starfleet command! [link]"

Because you have their auth, you can make it push-button. No extra confirmation step needed. Maybe a sidebar with levar's pic, and an entry field with that default text.

Also, it isn't clear whether inviting friends sends a DM. I think it does because there is a limit there.

Have you included all the people that follow me? I'd just have a "select all" and a auto-complete entry field. Maybe scrape the last 10 @replies i've sent and include those people. Hell, scrape the last 10 DMs, because you know I'm willing to send them DMs.

<comment><AUTHOR> There's no build queue in the game for game design reasons. The idea is that the game is all about attacking and taking stuff from people. You're not that far yet, but it comes into play after a couple days.

If people could pay for a bunch of buildings at once, there would be a lot fewer spare resources around to attack. We may, however, do a build queue that just doesn't pay for future buildings until the time to build them comes. For now we just left that out for UI simplicity.

As for the Twitter ideas, thanks. We should make it more clear that its a DM. Also prepopulating with your last replies rather than just alphabetical is f'ing brilliant. That idea alone is worth having posted here.

</comment></comment><comment><USER5> Maybe there should be something explaining how exactly it works. I'm not going to click on that green button which apparently already logs me in via Twitter and might already tweet to my followers with something a la "I've just joined Starfleet" and I don't think my followers will like that.

Frankly, I usually dislike games like because they tend to be borderline spam yet I wanted to check it out for curiosity - but well...

<comment><AUTHOR> Yeah, we do need more explanation on the splash page probably. We just copied the design of the other big Twitter games to get something launched, but should further improve it.

</comment></comment><comment><USER6> Hunh. I just clicked the link to do login with Twitter, but I didn't actually join the game and it Tweeted out on my behalf - <http://twitter.com/sachinag/status/4811174469> . That's lame.

<comment><AUTHOR> Not even sure how that's possible but we'll fix it.

</comment></comment><comment><USER7> I don't like the fact I have to allow Twitter access before I even know what the game _is_. My first guess is "Spymaster in space", but nothing on the page actually tells me if that's right or not...

Clicking through to about and the blog tells me more, but it's a bit of a jump.

</comment><comment><USER8> A video that shows the features of the game and how it is played or at least a couple of screenshots might make me consider playing the game.

</comment><comment><AUTHOR> Ok, be brutal.

<comment><USER3> Here we go: I've got no indication of there being anything I'll enjoy beyond that signup button, and no indication that you won't spam my friends as soon as I click it.

Given that the signup button is the only thing visible, well, this is going to be a pretty quick review.

</comment></comment><comment><USER9> Starf Leet: <http://www.youtube.com/watch?v=5QyqAglaojY> (second clip)

</comment><comment><USER4> I don't like the nav configuration, with ~7 top items, and ~7 sub items on home. You need to reorder that for it to make sense.

</comment><comment><USER10> What is the relation to Twitter, except for the spamming? It looks like ever other browser game on the market.

</comment><comment><USER11> Is this officially licensed or just a ripoff of the Star Trek brand?</comment>


Hacker News would scale better with some caching headers - <AUTHOR>

sayrer$ curl -I http://news.ycombinator.com/news
HTTP/1.0 200 OK
Content-Type: text/html; charset=utf-8
Connection: close <comment><USER2> It is being done for the images. I assume no caching for the front page since it's assumed the front page changes enough to not warrant it.

ryan$ curl -I <http://ycombinator.com/images/y18.gif>

HTTP/1.1 200 OK

Date: Tue, 24 Mar 2009 05:04:58 GMT

Server: Apache/2.2.10

Last-Modified: Sun, 18 Mar 2007 17:03:07 GMT

ETag: "7fa02b-64-42bf6725588c0"

Accept-Ranges: bytes

Content-Length: 100

Content-Type: image/gif

<comment><USER3> More likely: -- the content for the front page is served by Arc, whereas the static media is served from a separate Apache instance.

Arc's current HTTP server libary (src.arc) only supports HTTP/1.0.

<comment><AUTHOR> Well, HTTP doesn't really have versions other than as a shorthand for header defaults. For example, Connection: close handles implementations that assume HTTP 1.1, iirc.

An Expires header would help a lot for arc-generated pages served in response to requests that aren't associated with a logged in user.

</comment></comment></comment><comment><USER4> A question that must be asked before investing any time in adding to an existing application: would it solve an existing problem? The Right Thing isn't always necessary and often not worth the time.</comment>


Business Insider CTO fired for tweet from 2010 and comment on TechCrunch apology - <AUTHOR> http://amima42.tumblr.com/post/60917621574/firing-cto-for-a-couple-of-old-tweets-is-not-a-sign-of

<comment><USER2> "5\. The internet outrage suddenly switches to him. The employee of Business Insider calls him an asshole on twitter."

This is incorrect -- Anil Dash doesn't work for Business Insider. Agree with your first and second takeaways. Beyond that..not so much. You mentioned potential cultural differences, here's my American perspective:

While the tweets in question may be a small sample of the overall volume, you just can't make those statements as an officer of a company. Period. Because:

-He used the N word. Sounds like he was referencing a movie out around then, but given our country's history, that word is just 100% off limits and rightfully so.

-In the US, we're finally coming around to the fact that gay people aren't a scourge on society. We also (especially in tech) are working to make the workplace more friendly to women than it has been in the past. We're also a very litigious country, meaning that having an officer making those kinds of statements about protected classes while being involved in hiring/firing decisions exposes the company to risks that 95+% of executives would be wise/willing enough not to expose their employer to.

You may be right that most people have tweeted something that would outrage people, but if you want to be one of the faces of a company, part of your job is not doing that. I tweeted plenty of dumb stuff (not racist/sexist, mind you) while drunk in college and with a privacy-protected account. Given that I aspire to hold an executive-level position, I went through and removed all of those tweets as I was nearing graduation and made my account public, and I avoid those types of posts now. Image matters.

</comment><comment><USER3> Why can't people be true to them selfs and admit, that they're sexist or racist or something?

Everyone is in one or another way.

A big part of the problem is, that people tell them selfs they're the good guys.

"I'm not racist, but..." blablabla

You are! Everyone is!

It's not good, but it's even worse if you do racist/sexist stuff without even realizing it. Because then you give up control over your behaviour and let your subconsciousnes drive your live.

</comment><comment><USER4> This article adds nothing to the conversation and is poorly edited to boot. The author thinks it's bad that this happened and he rants about it for 10-or- so paragraphs. It's not worth reading, let alone having on the front page of HN.

<comment><AUTHOR> Well, it's not actually an article, it's just a summary of the story. I would appreciate your detailed feedback and will be happy to edit post and add something to it that you find valuable.

</comment></comment><comment><USER5> Insane overreactions are becoming extremely commonplace and quite frankly, its very disillusioning. I'm extremely disappointed in the tech community. Being an ass is not the same as discriminating against or hating a group of people.</comment>


Show HN: CoolBeans, an IDE distribution - <AUTHOR> http://coolbeans.xyz/ <comment><USER2> I legit didn't know NetBeans still existed. I've been on IntelliJ for most of the last decade.

Any NetBeans users feel like explaining why they've stuck with it?

<comment><USER3> I like the simplicity of it.

It has strong Maven-support, does code completion, suggests changes to my code, accelerates my typing with snippets and supports many common refactorings. I don't know how the quality of those features stack up against other IDEs. Maybe I'm missing out but I do feel that they are pretty good.

I give IntelliJ and Eclipse a test-drive from time to time but usually uninstall them within the hour.

Having said that NetBeans does have some flaws. Recently I've really come to appreciate the terminal integration in Visual Studio Code and would like to see something similar in NetBeans. The author of the article seems interested in native OS integration so perhaps we can expect to see some improvements in this area? ;-)

<comment><USER4> Love VSCode however had to start working with a Grails stack this year. Support for groovy and gsp not there but they are working on it... Rather, there seems to be movement in tackling the JVM based languages running along side each other. And by they I mean the various teams working on the extensions under the "Java Support" umbrella.

<comment><USER5> Not sure if any of those "Java Support" teams are really working on Apache Groovy support for VSCode -- they would be working on supporting growing JVM ecosystems (e.g. Java 11, Scala, Kotlin), not declining ones. Virtually every Grails stack out there is still using version 2, even though version 3 was released well over 3 years ago -- a sure sign of a declining ecosystem. Is the Grails stack you're working on any different?

<comment><USER4> It has been upgraded to Grails 3. I can't speak to the wider Groovy and Grails recent trends(I know they have been trending down in recent years), however Grails development seems to be picking up a bit and I'm certainly going to be dealing with it for the foreseeable future.

VS Code's Java support actually works really well now with a few rough edges based on a mostly Java project I was working with today. Unfortunately even when components are largely Java, a lot of testing and build scripting(Gradle) will be in Groovy. The terseness is nice for sure.. But it means leaving VS Code for IDEA.

</comment></comment></comment></comment></comment><comment><USER6> I spent a good part of my career in netbeans doing j2me.

These days I still use NB keybindings in pycharm.

This could really do with explaining what the changes and fixes are that it makes.

<comment><AUTHOR> You mean like some release notes? Good idea.

</comment></comment><comment><USER7> At a former startup I had to work with a mix of Java, PHP, js and html/css. After looking around found NetBeans to be more suitable than InelliJ/Eclipse + something else.

</comment><comment><USER8> I can't think of any reason anyone would want to switch to this IDE. Is it a natural choice for NetBeans users? Are there even NetBeans users left?

<comment><AUTHOR> Over 1 million active NetBeans users.

</comment></comment><comment><USER9> NetBeans is moving to the Apache Foundation, and this is an attempt to allow "more flexibility with regard to plugins licensing."

<comment><USER10> You mean the Apache Graveyard, where Google Wave now lies.

<comment><USER5> And Open Office. And Apache Groovy. 6 months ago, the Groovy project managers at the Apache Foundation removed version 3.0 preview support from version 2.6, and unofficially put version 3.0 into permanent alpha version. They're now milking Groovy and Grails for consulting fees and conferences like Gr8Conf and Greach, both of which are Groovy only in name because most of their talks are about other JVm technologies, not Groovy or Grails.

</comment></comment></comment><comment><USER11> I loved NB, but moved away from it when Python support was first thrown out to a separate extension, then made more and more difficult to install. I wonder if this is something this distribution aims to solve? That said, I'm mostly happy with vscode and am not switching back anyway.

<comment><AUTHOR> I believe non-Java communities would also like a good IDE.

PHP developers seem to be pretty dedicated once they start using NetBeans.

Python developers might also be the case. We also supported Ruby at some point.

</comment></comment><comment><USER12> I was surprised there is no link to the source for the "distribution." It seems like that would raise the hurdle for anyone wishing to submit bugfixes.

<comment><AUTHOR> I believe submitting fixes to the upstream Apache NetBeans is the way to go: [https://github.com/apache/incubator- netbeans](https://github.com/apache/incubator-netbeans)

PS: Although reproducible builds are on the list...

<comment><USER12> I would expect that is true only if coolbeans makes no code changes, but my impression from reading the page is that it "fixes minor annoyances" which sounds like code changes to me. My mental model for this situation is the same as the Debian and Ubuntu relationship.

Don't get me wrong, AFAIK since NB is Apache Licensed then he doesn't have to publish any of the changes; I was just surprised.

</comment></comment></comment><comment><USER13> Anyone know about Netbeans / CoolBeans' support for Angular / React and other front-end technologies?</comment>


Show HN: HomepageMe, a simple homepage for your browser, for students. - <AUTHOR> http://homepageme.com

<comment><USER2> I never understood homepage startups, do someone use them?

<comment><AUTHOR> Currently, mostly students, since course websites are kind of hard to find.</comment></comment>