Spacewar written in Apple Logo - <AUTHOR> https://paleotronic.com/2018/09/27/ancient-tongues-logo-spacewar/ <comment><USER2> There was a very interesting letter to the editor in Byte magazine in the late 70's (?) that I re-read recently.

It was from the guy who wrote Logo for MIT. He was really quite mad, and surprisingly candid about how MIT was screwing with his project.

He claimed that he'd made a perfectly lovely, functional Logo for the Apple //, but MIT wouldn't release it. He felt like it should be released because the whole reason he was asked to make it was so that it could be released to the public for public benefit ("Public domain" software, similar to "open source" for you young 'uns).

He contended that MIT was withholding Logo from the public because Texas Instruments was a big donor to MIT and asked that it not release Logo. TI, he said, only wanted Logo to exist on the 99/4A, to help boost sales in the educational market.

This aligns with my memories of the day, when Logo was only a TI 99/4A product for a very long time. I don't remember if it ever make it to Commodore or CP/M machines, which is where I was at the time.

Anyway, it's an interesting tale because it shows that corporate interference in this sort of thing is nothing new.

Plus, Logo!

<comment><USER3> This is so not true. I wrote the TI 99/4 Logo at MIT (translated from an implementation in Pascal by Gary Drescher). The Apple II implementation was overlapping, started a little later, the guys doing it had the next desk. It was licensed by MIT to Terrapin Inc and released ('82) not long after the 99/4 version ('81).

[https://www.dropbox.com/s/migcvjvgu31qaz9/LogoHistory_Microc...](https://www.dropbox.com/s/migcvjvgu31qaz9/LogoHistory_MicrocomputerEra.pdf?dl=0)

<comment><USER4> We also have Drescher's Pascal Logo incoming soon.

Preview: [https://github.com/PDP-10/its- vault/blob/master/files/aplogo...](https://github.com/PDP-10/its- vault/blob/master/files/aplogo/plogo.767)

<comment><USER3> Cool, though I have a printed copy of that. I looked through it recently trying to remember some details for an upcoming paper

</comment></comment></comment></comment><comment><USER5> Logo sucked you in with the turtle graphics and making cool shapes. It is basically a computer etch-a-sketch, but it does get boring at some point. I am so grateful that I had a teacher that pointed out there was an amazing language just past cute turtles. Logo was a real change from programming in BASIC, FORTH, and 6502 assembler. It was one thing to read about all the cool languages in Byte Magazine, but it was quite another to actually get a shot at programming one of the cooler ones.

<comment><USER6> Logo was more than turtle graphics. It also provided list processing with slightly friendlier names: Logo BUTFIRST is Lisp's CDR. This makes possible a great deal of purely linguistic programming, e.g. "20 questions game", text based adventure, etc. (I was one of the implementors of Logo for Apple II.)

<comment><USER5> thus I said _I am so grateful that I had a teacher that pointed out there was an amazing language just past cute turtles._

</comment></comment></comment><comment><USER7> Logo was my first programming language! I recently rewrote my own version of it so that I could draw a time-proportional train map. I wrote "fd 5" for 5 minutes, for example.

[http://peterburk.github.io/tra/](http://peterburk.github.io/tra/)

The version I wrote can read values from a spreadsheet, so could be used in other applications too. I think this kind of thing could be a great way for a young person to go from a homework project to the front of Hacker News. If any of you have kids, I'd be happy to help gather the data for some other subway networks!

</comment><comment><USER8> The paleotronic folks have been on fire lately. Their Apple II emulator, microM8 is fast becoming one of the most advanced, cross-platform emulators.

[https://paleotronic.com/microm8/](https://paleotronic.com/microm8/)

<comment><USER7> How do I contribute? I recently used ADTPro to copy a lot of old Apple II software onto my MacBook Pro as DSK images.

5.25 floppies:

[https://mega.nz/#!yDITXIZC!8fREZdAruk2yYLv859jKABGSWeG4UkRoC...](https://mega.nz/#!yDITXIZC!8fREZdAruk2yYLv859jKABGSWeG4UkRoCN4_feKnmIM)

[https://www.flickr.com/photos/150180606@N08/sets/72157672562...](https://www.flickr.com/photos/150180606@N08/sets/72157672562505858)

[https://www.flickr.com/photos/150180606@N08/sets/72157672589...](https://www.flickr.com/photos/150180606@N08/sets/72157672589613188)

I've also got a larger selection of DD floppies, HD floppies, JAZ disks, SCSI disks, IDE disks, MacFormat and other CDs. Please tell me if you want the links!

<comment><USER9> You might want to contact Jason Scott at the Internet Archive, especially if some of those are copy-protected: [http://ascii.textfiles.com/archives/5180](http://ascii.textfiles.com/archives/5180)

<comment><USER10> I know HN doesn't really do "this" or "me too" comments, but I want to underline this isn't just another option, this is the canonical option. Jason Scott is really an important and respected archivist and the IA should really be the first port of call before anyone looks at sending disks elsewhere.

</comment></comment></comment></comment><comment><USER11> It's quite cool that Logo's turtle occupies a certain position in Logo "space", and can be moved relative to that position by using commands such as fd (forward), rt (right turn) and so forth.

It's like the concept sets an absolute space relative to something and all positions within that are relative from the baseline coordinate. Much as CSS container wrapping works when you set an absolute within a relative.

</comment><comment><USER12> There was another logo for apple IIs (logowriter I think it was called?) that was very nearly a 2d game engine. You could have multiple turtles, change the image used for the turtles, and hide turtles, which could be (ab)used as a simple sprite engine. There was even a command to check if two turtles overlapped, making hit detection fairly easy.

</comment><comment><USER13> [https://www.guerra-espacial.rufina.link/](https://www.guerra- espacial.rufina.link/) Spacewar! written in Common Lisp

</comment><comment><USER14> Strange, but Spacewar (arcade version) is still my all time favorite game. Portal is close second.</comment>


The best user manuals EVER - <AUTHOR> http://headrush.typepad.com/creating_passionate_users/2007/03/the_best_user_t.html

<comment><USER2> Seeing "Best _blank_ ever" on Hacker News scares the hell out of me.

Even if it's about user manuals.

</comment><comment><USER3> It's a little over a year since Kathy Sierra stopped blogging. Shame.</comment>


New subreddit feature - comment scores may be hidden for a period of time - <AUTHOR> http://www.reddit.com/r/modnews/comments/1dd0xw/moderators_new_subreddit_feature_comment_scores/

<comment><USER2> _> The goal of this feature is to try to reduce the initial bandwagon/snowball voting, where if a comment gets a few initial downvotes it often continues going negative, or vice versa._

I've long held this perception, interesting to see it validated.

I'd love to see a graph of leaders, followers and influencers of moderation trends in a large community.

I'm particularly curious about the influence of community "celebrities". How often do they reverse the moderation trend by replying? Do they have followers who consistently moderate in response to their activity?</comment>


Ask HN: What's the Modern Equivalent of MS Access? - <AUTHOR> If you want to write a simple database-driven application for internal use, and don't want to have to develop the UI, what would you use?
My goal is to be able to define the fairly complex) relational data model, then define a few queries that will allow users to view and edit data in a spreadsheet-style UI.
Yes, this could be done with a custom web app, but that's a lot more work than just defining a DB scheme and some queries.  And the underlying data model is too complex to use actual spreadsheets (Excel or Google Sheets) for.
Any suggestions? <comment><USER2> Maybe something like Orbeon Forms?

[https://www.orbeon.com/](https://www.orbeon.com/)

</comment><comment><USER3> Maybe airtable.com?

Not sure if you are ok with a hosted solution

<comment><AUTHOR> Airtable is pretty close. It's not clear to me, though, whether it supports complex relational queries -- even after digging through the docs.

Edited: yikes, it looks like conditionals use Excel-like formulas? That's part of what I'm trying to get away from.</comment></comment>


Public Fried Chicken (by Scott Banister) - <AUTHOR> http://dustincurtis.com/public-fried-chicken.html

<comment><USER3> A ridiculous portion of the pain of health care costs goes away if you use catastrophic insurance for catastrophes and cash for everything else.

Example: I am covered under national insurance for dentistry in Japan, but Japanese dentistry is a nightmare (in no small part due to the fact that it is covered by national insurance), so I get it done when I go back to the US to visit family. Since I have no American insurance, I pay cash. And its _so easy_. After spending literally 15 minutes explaining to my dentist's office that I would be paying cash (and was not unwilling to pay cash, a concept they found almost mystifying), it was simplicity it self. They told me it cost $225, I passed over the credit card, _done_. See you next year.

No need to send paper back and forth between a massive paper-munching machine at the insurance company and a department at the dentist devoted solely to moving paper through that machine. No complicated contracts or regulations. Full pricing transparency -- I know I consumed $225 worth of services, and if that number actually mattered to me I could shop it around fairly effectively.

<comment><USER4> Well, in theory this is how insurance is supposed to work, and is how it works in other fields. The general idea of insurance is risk management: I have a huge unpredictable risk which worries me, so I transform it into a small, predictable risk by purchasing insurance.

And, true to form, with other types of insurance I pay "routine" types of costs myself; for example, I have auto insurance, but I don't expect it to pay for a tank of gas or an oil change. I pay those myself, and have the insurance available for things like accidents, which are unpredictable and far too expensive for me to pay for all in one go.

And yet... health insurance tends overwhelmingly to pay for predictable routine treatments (yearly checkups, for example) while balking at paying for precisely the sorts of large unpredictable costs it's meant to help manage. How'd we end up with that system?

<comment><USER5> Well, first of all, many health insurance plans _don't_ cover routine care (annual physicals, etc.).

Second of all, those plans that do cover routine care generally do so under the theory that, by paying a small amount of money for routine care, they're avoiding paying much more down the road when the cheap problems that would have been caught at a routine physical turn into big, expensive problems.

<comment><USER4> Increasingly, health insurance plans cover routine care under the banner of "wellness" (there's a reason why there are specialized procedure codes to identify them). Unfortunately, they often take the form of "sure, we'll cover that prostate screening, but if it turns out you actually have cancer, um, tough luck."

</comment></comment></comment></comment><comment><USER6> Wow, it's obvious. Health care is exactly like every other commodity. Why didn't we think of that before?

<http://www.who.int/bulletin/volumes/82/2/PHCBP.pdf>

<comment><USER7> I just logged on to post the exact same paper.

To anyone who doesn't want to download the pdf linked above: it's Kenneth Arrow's economics paper "Uncertainty and the Welfare Economics of Medical Care." It launched the field of health-care economics. It demonstrates that health care is not like fried chicken. It was published in _1963._

Of course, there are counter-arguments to be made. But an argument comparing health care to fried chicken _without taking Arrow's work into account_ is a worthless argument.

</comment></comment><comment><USER8> "If you have an FCP, they pay your bill for you. If you don't, you eat free."

I've paid massive emergency-room bills. The author and publisher (apparently not the same person) are morons if they believe it.

<comment><USER9> I don't mean to endorse the ideas. I will be publishing an article arguing the opposite position as well.

<comment><USER10> But it is poorly written and a bad analogy.

I can't think of a situation where I needed fried chicken to prevent my child from dying.

<comment><USER11> Yeah, what's the opposite position, an even less coherent analogy?

</comment></comment></comment></comment><comment><USER12> vertical and horizontal scrolling to read an article?

<comment><USER13> The vertical scrolling is not likely to be deliberate. The horizontal most certainly is.

<comment><USER14> The vertical scrolling is definitely deliberate for the people running a resolution that requires it -- note that once you scroll down all the way to read the article, you don't need to vertically scroll again.

</comment></comment></comment><comment><USER14> Is this the pro or anti article?

<comment><USER3> Here's the thesis: Routine health care, like routine food purchases, should be paid for directly by the consumer rather than paid for through indirections like insurance/employment benefits/government.

<comment><USER15> That makes sense when you keep it inside the metaphor; however there is a large difference between providing a chicken dinner, and providing healthcare. The full costs would be prohibitive for nearly everyone if everyone only paid for what they use. Meaning the system might be unfair but it is arguably better than no system at all.

<comment><USER16> I think an important issue is that _life_ isn't fair. Some people need nothing but routine checkups for 90 years. Some children need a million dollars of medical care before they're 10 years old. I don't think it's fair to say that if you happen to get a rare and costly-to-treat disease, you're just screwed. It makes much more sense to me to balance healthcare costs roughly equally across the whole population.

What keeps this system fair is that everyone really is recieving the same thing: the promise of good health care no matter what health issues they encounter. Health care systems work because most people pay for more than they "use." Whether it's the goverment or private companies that organize this system of most people paying a little more so some people can use a lot more makes no difference to me. I think it's the right system, so the question to me is just whether it works or not. Current U.S. health care is broken in a lot of ways, and I'm not sure it can fixed while it stays in the market. If the government can make a system where everyone pays roughly equally and everyone recieves all the care they need, then let them take it over. If they can't, then they should be working to find someone who can.

Or to come back to the analogy, some people need to eat 10 chickens a day and some people can live on a wing a week. If people pay out of pocket for their chicken, then some people will just starve to death. There is no avoiding it. No one can afford the amount of chicken that some people need.

</comment></comment></comment></comment><comment><USER17> There's no such thing as free chicken.

</comment><comment><USER18> The point that I agree with is that running healthcare through the gov't is going to mean we get 3rd tier care at 1st rate costs.

But at least we'll all be equally screwed.

<comment><USER19> What tier care are we getting now, at what rate costs? Sincerely curious as to your opinion.

<comment><USER18> Short version I would rate US as tier 1 care, at tier 1 pricing.

I dont know a simpler aggregate measure than life expectancy.

For the way that Americans live, the average life expectancy is nothing short of a medical miracle.

We don't rate at the top of the scale, but like everything, you have to take that in context - interesing argument here ->

[http://freakonomics.blogs.nytimes.com/2009/12/10/why-does- th...](http://freakonomics.blogs.nytimes.com/2009/12/10/why-does-the-us- rank-29th-in-longevity/)

As for costs, it's not cheap, but it's not out of reach for average working people - especially when you're solution oriented as commentator above who notes catastrophic only as a solution.

My fundamental problem with this entire debate is that true national health care tugs heart strings yet there are clearly much more effecient proposals than what the gov't is proposing.

In my experience the US gov't - eg the largest employer in the world - has one interest, and that's expanding their business.

<comment><USER19> I guess for those who can get health care, I'd agree with you. For those who have no insurance (which is often the same thing as no access, at least to expensive care) and/or pre-existing conditions, I guess they have either zero care or infinite pricing.

I think the "average working person" is slowly disappearing, replaced by the person with one, two or three no-benefit low wage jobs.

I expected nothing but sausage out of the government, particularly since the administration and the Dems were so set on getting an agreement, any agreement. It was theoretically possible for the two parties to have an honest debate and work toward an agreement that's good for citizens and uses taxes and other money efficiently, but in practice that would be impossible since their primary concern seems to be not agreeing to whatever the other side says.

It seems so plausible that we could have a much more rational and accessible health care system, however because health care is so expensive it can only be meaningfully underwritten by either or both of the government or insurance companies. The government is dysfunctional, and the insurance company's primary objective is to ensure _least_ access to health care while still convincing people that they're a good buy.

Feh.

<comment><USER18> More reason than ever to work hard, and do your best to inspire, mentor, and help anybody out there that shows signs of life as an entrepreneur - <USER2> industry CAN negotiate vs. insurance where individuals cannot.</comment></comment></comment></comment></comment>


FriendFeed: Be good - <AUTHOR> http://latimesblogs.latimes.com/technology/2008/06/friendfeed-be-g.html

<comment><USER2> I'm sorry but the words "Google" "AdSense" and the phrase "Don't be evil" mean nothing to me now that I've had years of first hand experience with the Goog.

It was cute when they coined it, and we all ate it up like crunch berries but let's get real, Google will protect their market share in advertising at all costs (which _gasp_ sometimes mean being a little evil)

<comment><USER3> What has Google done that's evil in the adsense area?

</comment></comment><comment><USER4> Funny how people need reminding to be good and not to be evil, as though falling to temptation and nastiness are the status quo.

<comment><USER5> It is, isn't it?

<comment><USER4> Yes, it is.</comment></comment></comment>


Solar Farms Shine a Ray of Hope on Bees and Butterflies - <AUTHOR> https://www.scientificamerican.com/article/solar-farms-shine-a-ray-of-hope-on-bees-and-butterflies/ <comment><USER2> There's a solar power plant in San Benito County, California where you can see something similar. The surrounding area is a blasted hellscape where marginal ranchers graze struggling cattle on BLM land they lease for $1/acre/year. The power plant owns about ten times more land than they need and the difference, after only a few years, between their land and the surrounding ranches is stark. For one thing their riparian habitats are recovering and host many wild species, where as soon as those streams cross the fence they become trampled muddy ditches. This is all on top of the obvious benefits of having a solar power station.

<comment><USER3> Ironically, environmental groups sued the project and forced it to be 1/3 the original size.

[https://www.mercurynews.com/2017/07/21/giant-solar- project-r...](https://www.mercurynews.com/2017/07/21/giant-solar-project- reduced-due-to-environmentalists-opposition/)

Driving down I-5, the smells and sights from some of the cattle operations along the highway are truly horrifying.

Harris Ranch just has a bunch of cows standing around in mud (or actually probably their own poop).

<comment><USER2> Yes it certainly was a low point for the Sierra Club who have proven unable to grasp the problem of climate change. They are stuck in the Boomer mindset that environmentalism means recycling cans and bottles.

<comment><USER3> In California, Sierra Club has apparently been co-opted by NIMBYs who basically use environmentalism as a cover to stop any new development against entrenched interests.

The good thing (at least wrt to the posted s article) is that the majority of people like to save money, and solar offers a way to save money. So the forces of economics and good policy at the state level will make more solar and storage projects happen.

<comment><USER4> The Sierra Club is not an enemy of environmentalism. It's not an advocacy organization for renewable energy, either. It is what it is, and if you are for development of undeveloped land, you are going to find yourself opposed to the Sierra Club.

It would seem that you are trying to use environmentalism as cover for other views that you have ("entrenched interests"? Who cares who cuts down a forest, and if they are entrenched or not, if the forest ends up cut down?)

I think you should take a hard look at where your personal interests overlap with the mission of the Sierra Club.

<comment><USER5> > if you are for development of undeveloped land

In SF at least, Sierra Club priorities are (at least facially) decidedly more "anti-development" than "pro-environment".

How does one explain their opposition to SB 827 [1] through an environmental lens? If we don't build more density _somewhere_ then we inevitably get more sprawl.

To add some meldodrama, how many people must die in the streets before we move the lever to help our fellow human? To some, "saving the Earth" can justify any amount of human suffering.

[1] [https://www.ethanelkind.com/sierra-club-now-opposes-one- of-t...](https://www.ethanelkind.com/sierra-club-now-opposes-one-of-the-most- important-climate-bills-in-california/)

</comment></comment></comment></comment></comment></comment><comment> m-i-l I've heard that one of the challenges of maintaining fields of solar panels is keeping the vegetation around the panels under control. Solutions include using grazing animals such as sheep or even guinea pigs[0]. It sounds like this doesn't solve the management issue, but does claim "a field of wildflowers requires less mowing and pesticides than conventional grass does".

[0] [https://digital.nepr.net/news/2016/04/01/the-solution-to- sol...](https://digital.nepr.net/news/2016/04/01/the-solution-to-solar-farm- vegetation-guinea-pig-lawnmowers/)

<comment><USER6> The issue with grazing animals on the land is that it removes the benefit of allowing it to revert to nature - Flowers and brush depth that foster wildlife are stripped away by the grazing stock.

Just musing:

If you leave a patch of ground alone for an extended period of time, it'll transition through various phases of regrowth and eventually end up back at whatever the wild state of being for that region is. Often the end state is woodlands.

So since that conflicts with being a productive PV estate, at some point maintenance is inevitable or you'll end up losing the panels beneath a canopy. That said, the scale of that kind of regeneration might be a century while the useful lifetime of new PV installs is what... ~20-30 years?

So on that timescale what issues are you likely to hit allowing the land underneath PV installs to grow wild? Access would need to be maintained, panels would need to be lofted to a height that avoids any overgrowth, fire risks (electricity + dry brush etc) would need to be mitigated.

Main question I have though is sunlight coverage - Surely the panels and plant life are going to compete to some extent. What's stopping a PV deployment covering ~100% of the land area, shading it all out just like a forest canopy would?

<comment><USER7> One big issue with just letting the land go wild is invasive plants and shrubs taking over. Take a look at himalayan blackberries in the Pacific Northwest – they smother everything else out of existence.

A lot of restoration work is really just pausing the ecological succession at some beneficial stage. This is essentially what native Americans did; they 'gardened' the earth to support a diversity of plants and wildlife that was sustainable, and beneficial to people. [1][2]

In terms of incorporating solar panels into a more 'wild' habitat, Agroforestry offers a good model. There are a lot of shade tolerant shrubs, etc, that are grown under a canopy of taller trees. [3]

Silvopasture, which is a subset of agroforestry, uses grazing animals to obtain the best of both worlds – the animals play a part in sustaining a diverse ecosystem that's also beneficial to people. [4]

1: [https://www.goodreads.com/book/show/39020.1491](https://www.goodreads.com/book/show/39020.1491)

2: [https://www.goodreads.com/book/show/6411373-whole-earth- disc...](https://www.goodreads.com/book/show/6411373-whole-earth-discipline)

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

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

</comment></comment></comment><comment><USER8> After a light skim, this seems like a good match; the land/area isn't used for much else anyway and since PV installations are usually devoid of humans and engines it wouldn't be a bad idea to roll this out on a larger scale.

<comment><USER9> Absolutely agreed, I am struggling to think of many downsides. Maybe some wasps or bees start a nest near a panel meaning it's difficult to clean the panel? Hopefully the nest gets left alone & the efficiency lost is tolerated, to let the bees/wasps live.

<comment><USER10> Panel cleaning can be done by robots, no?

<comment><USER11> I expect in 10-20 years most panel cleaning is done by robots similar to window cleaning robots, with small ramps allowing the robots easy traversal over the whole installation. The technology is directly transferable from vacuum robots and window cleaning robots, with the added benefit of knowing the geometry in advance.

</comment></comment></comment></comment><comment><USER7> Perfect opportunity to apply Permaculture principles like Guilds, where mutually beneficial plants (and animals) are used to create a system that reduces the need for inputs (labor, chemical, etc). [1]

1: [https://en.wikipedia.org/wiki/Permaculture#Guilds](https://en.wikipedia.org/wiki/Permaculture#Guilds)

<comment><USER12> Agreed, but permaculture techniques that work vary by region, even down to the microclimates. If local experts are consulted, it should work well... but if not, there will be some years of trial and error before they get it working well for each installation. Even so, better to start such an effort today and get through those trials, so we're in a better place in 10 years.

</comment></comment><comment><USER13> Maybe it is a little bit cooler on large fields too: a significant fraction of incoming radiation is drained away as electrival power.

<comment><USER13> OP: bad news for the bees: this Nature study ([https://www.nature.com/articles/srep35070](https://www.nature.com/articles/srep35070) ) suggests that PV fields are actually heat islands worse than parking lots... But these were not necessarily PV plants with flowers growing around them.</comment></comment>


Show HN: Florr.io - <AUTHOR> https://florr.io/ <comment><AUTHOR> Hi everyone.

This is a game I released about a month ago, and I think it has finally gotten to a state worth sharing here.

First of all: it runs _a lot_ smoother on Chrome than Firefox, so if your frame rate is a bit bad, try that.

The client and server are in C++. It uses WebAssembly for the web build (emscripten). It also has native Windows, Linux, macOS and iOS builds (using SDL2 and Skia, not a web wrapper or anything like that).

The engine is custom made, kinda evolved from Agar.io, then Diep.io, and now this.

Feel free to ask any questions or give feedback.</comment>


3D-printed guns: State Department orders firm to remove web blueprints - <AUTHOR> http://www.guardian.co.uk/technology/2013/may/09/3d-printed-guns-plans-state-department

<comment><USER2> Guess the points in this article sort of prove that it's already more or less illegal to build a gun with a 3d printer. Hopefully this will mean that politicians won't try to implement stupid new laws t...

>On Sunday, New York senator Charles Schumer said that legislation should be created to prevent people from making 3D printed guns.

Come on guys

This hack-a-day article([http://hackaday.com/2013/05/06/the-first-3d-printed- gun-has-...](http://hackaday.com/2013/05/06/the-first-3d-printed-gun-has-been- fired-and-i-dont-care/)) talks a bit about 3d guns, and namely how it is a false problem. Would be nice if everyone would read it</comment>


Roughtime Protocol Message Anatomy - <AUTHOR> https://int08h.com/post/roughtime-message-anatomy/ <comment><USER2> Nice. I too couldn't resist implementing this so I have a little Python implementation laying around. Though I never got around to publish it.

I think the wire format is nostalgically old-school. Not sure if you agree but it feels like parsing an older protocol. That is not necessarily a bad thing. Personally I would probably have used TLV:s directly instead of the pointer/offset table though :)</comment>


Ask HN: Anyone interested in working for clients, not just building startups? - <AUTHOR>

The prospect of building an app, or a startup, from the ground up is intriguing and incredibly sexy.  Your photo in Fast Company, your name written all over HN, the chance for TechCrunch to blog about you and spike your traffic for a day
I've done it, I'm in the middle of it, and it's fun but it's very tough.  And I say this as the business/strategy half of a startup tht hasn't yet failed (www.youintern.com).  It's been incredibly challenging.
I do this while working full-time in advertising and have for a year now considered trying to combine my skills and network with a talented programmer to try and create a service agency -- a company that builds tangible solutions, small or large, for all manner of clients.
Advantages would be that there's more direct money up-front, conceivable ends of every project, the challenge to keep working on new ones, and the prospect of acquiring new business regularly.
Starting the next boxee is exciting and inherently risky.  Why do programmers so rarely consider using their talents for more immediate gains?  Why the assumption that a startup is destined to become a 20-person hot shop with a cool office and news articles, but a "digital agency" could not?
I'd love to discuss this with anyone in NYC: chaparian at gmail dot com <comment><USER2> Services-based companies are of course a well-established and perfectly respectable type of business, but a very different kind of business to a product company. I worked in a service business for many years and it has good and bad points. It's less risky, because in general you don't do any work unless you know you are going to get paid for it, whereas with a product you have to do lots of development and marketing before you really find out whether your product will sell or not.

You do get lots of variety, but on the other hand you don't get so much choice or control of what you are working on.

A successful product business can be more successful (in terms of profit) than a service business. Because if lots of people like your product you sell a lot of it, with very little marginal cost of production.

For a services business to make _a lot_ of money, then you need to have a lot of staff. Then you need an HR department and middle managers and procedures and a dress code and before you know it you're a pointy-haired boss :-) And then making sure all those mouths remain fed is a tough task for the sales team. If you are short of work, you have to keep paying the salaries and you can lose money really quickly, whereas in good, busy times, the profits you can make are capped by the number of people and acceptable charge rates.

Of course you don't need to try to get big - you could set up a small service business and keep yourself in a pretty good lifestyle, without trying to become the next Accenture.

My choice to go for a product style company was mainly because of the creative aspects of it - I wanted to be able to decide myself what would go into the software, rather than having to develop someone else's idea of a product all the time.

<comment><AUTHOR> Interesting points. My issue is with your contention that as a service company, you don't decide what goes into the software. This is where a web production/service agency can learn from the creative industry.

Such a service agency should position itself as an industry expert, one that clients turn to for solutions, not products. That is, if a client -- let's say, a chain of local gyms -- comes to you and needs a website built, it shouldn't be turnkey and you should expect to contribute your thinking to the end product, not just the code that creates that.

Not code monkeys. Inform and shape the final product, because you know more than your client. They need you for a reason. They don't know the best answer, you do. That's why they hired you.

<comment><USER2> You're absolutely right that that's how it ought to work. And when you have a good relationship with your clients you can sometimes get close to that. In practice it won't always work like that, but you can try to pick and choose your assignments and 'train' your clients to move in that direction.

</comment></comment></comment><comment><USER3> I think a lot of the 'stigma' if you can call it that about consultancy and agencying is the perceived effort to reward ratio.

Startup? Put in some effort, create something awesome, become billionaire and retire to beach with daiquiri.

Consulting/agency? Have to put in graft every day for clients to keep the thing going. No big cash out, no ultimate win, constant pedal power. Maybe the odd holiday to the Bahamas.

I'm not saying this is _true_ , mind. But it's definitely the 'divide' I've seen and heard between the two options when talking to other entrepreneurs.

On the flipside some of us love building stuff to our own specification and not other people's. The previous points in this thread about choosing what you work on can make or break the idea, really.

</comment><comment><USER4> I do both. I'm currently developing my own startup thing on the side, working full time as a web developer, and doing web development/design work for clients

<comment><AUTHOR> An argument that I'd expect to hear is, "my startup work is more personally fulfilling."

Do you find this to be true? If yes, do you think this is because of the clients that you work with?

<comment><USER4> I definitely find this to be true, I think it's more to do with the fact that you're working for yourself and setting your own guidelines rather then having set hours or a strict set of tasks to do at a regular job.

</comment></comment></comment><comment><USER5> why does someone _just_ have to build startups? i do both. actually, i do all 3 -- i have a full-time job, work for clients freelance-style, and spend time working on personal startups when i manage to come up with an idea worth executing on.

<comment><AUTHOR> Nobody has to, it just dominates the discussion on this forum.

<comment><USER5> because thats what the forum is about? :)

</comment></comment></comment><comment><USER6> Emailed.</comment>


Google to bring Encrypted Search - <AUTHOR> http://blog.arpitnext.com/2010/05/encrypted-google-search.html <comment><USER2> This is quite cool, but doesn't address the fact that Google is still a centralized repository of search history. While moving to HTTPS does most definitely eliminate some major problems, it does nothing to fix one of the biggest structural weaknesses to search.

<comment><USER3> Exactly. That's why I think they should create a "private searching" mode that doesn't log anything, similarly to what browsers do in "private mode". Of course you'd still have to trust Google, but once they say they will do it and put it in writing, you just need one person to find out that they aren't really doing it to ruin a lot of trust, so they would have an incentive to do it (and it would probably be hard to keep it a secret eternally if they pretend to do it but actually don't -- ex-Googlers would leak it eventually).

<comment><USER4> They will never do this because of a couple reasons:

1) Ads. They need to be able to log your hits so they can charge advertisers money.

2) Security. Not logging visits means they wouldn't be able to trace back suspicious activity, etc. If you somehow managed to hack them through their private web search page, there wouldn't be any traces of you.

There aren't many good reasons for this anyway. It wouldn't make your searches anonymous to anyone but Google. Your ISP would still have a complete record of everything you've done. And since Google doesn't really see themselves as someone you need to be protected from, what is the point?

<comment><USER5> If connecting over SSL your ISP would not have a complete record of everything you've done, that's the very point of https.

</comment></comment></comment></comment><comment><USER3> Also here: <http://news.ycombinator.com/item?id=1348871></comment>


Mecca Then and Now – 128 Years of Growth - <AUTHOR> http://www.theatlantic.com/photo/2015/09/mecca-then-and-now-128-years-of-growth/408013/?single_page=true <comment><USER2> One thing I like to reflect on when seeing this pictures is the vast difference in the number of people present at the hajj. It's truly orders of magnitude more.

This huge increase in pilgrims over the last century is because of new technology like air travel, and the peace the world has experienced over the past few decades that allows people to move freely across the world. But it is due to the efforts of the Saudis to expand the masjid, build camps at Mina, allow hotels to be constructed, modernize the facilities, etc. that every person is able to actually perform the rites of hajj at the proper times. Hajj consists of a number of rites that have to be performed in certain places at certain times on certain days. Think about what it takes to organize millions of people trying to do this. It's very different than organizing thousands, or tens of thousands. You have to accommodate all their sleeping arrangements. You have to provide enough space for marketplaces so they can get something to eat. You have to widen the roads, air condition the facilities, make sure each group leaves at their own time, etc.

It's true that the Saudis aren't perfect, and they make mistakes, but my point is that it's easy to get the impression from the massive construction projects that they are just trying to make another Dubai or Olympics. But really, there is a spiritual purpose behind it, not connected to money, and there is also a lot going on behind the scenes that you can't see in the pictures. It would be easier for the Saudis to just restrict the visas to a tiny fraction and not go through with all of the construction and organizing, but they are making the effort as you can see. I know this is not going to be a popular comment here but I'm just trying to offset all the negative comments with some positive.

<comment><USER3> > "not connected to money..."

Kaaba has always been about trade/commerce/money, since well before Muhammad and Islam.

It is not a coincidence that Muhammad's tribe had the control of Kaaba where pagan pilgrims came before Islam to revere their many gods (whose representations (statues, icons, figures, etc.) were placed around Kaaba). And, very conveniently, it remained to be a holy place in Islam where each and every Muslim who can afford it must visit at least once during their lifetime.

<comment><USER4> The Ka'bah was (re-)built by Abraham and his son, who were Muslims (i.e. Submitters). The fact that there was polytheistic practices around it at some point in time does not change the fact that it is a place of worship for Muslims.

<comment><USER3> > The Ka'bah was (re-)built by Abraham and his son...

That is mythological not truly historical.

<comment><USER4> Citation needed.

In any case, even the non-Muslim Arabs at the time also acknowledged this fact. As such, given that Prophet Muhammad, Peace be upon him, is a descendant of Abraham, Peace be upon him, and both are Muslims, it follows that they would have similar traditions, coming from the same source. Reclaiming the Ka'abah as a place of worship for Muslims is in accordance with this.

<comment><USER3> A myth is an attempt to explain mysteries, supernatural events, and cultural traditions. Sometimes sacred in nature, a myth can involve gods or other supernatural creatures.

The fact that the same sources that assert the existence of figures such as Abraham and Ishmael also state that an angel talked to Ishmael's pregnant mother and that the Sakina (a spirit sent by God) or Gabriel guided father and son to the location of the Kaaba, etc. make this story mythical.

<comment><USER4> Edit: I see your point, that mythology by definition implies the supernatural.

At the same time, we have events that had elements attributed to the supernatural, which did take place, and are historically documented. The two need not be mutually exclusive.

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> Amazing city. It's unfortunate the Ajyad Fortress (1) had to be demolished to make way for the tower with the largest clock face in the world (2). I also note every time I visited a devout Muslim's small business or home, and they have a picture of the Grand Mosque, it's free of the new modern additions that will facilitate two million (and growing) pilgrims who visit every year. I suppose the Saudi government didn't care much for past heritage and tradition because, for muslims, Islam is the religion for the present, and the future.

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

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

<comment><USER6> A certain amount of almost Byzantine-style iconoclasm seems to be a feature of Wahabbism[1] in particular, rather than Islam as a whole.

[1]: [https://en.wikipedia.org/wiki/Wahhabism#Shi.27a_criticism](https://en.wikipedia.org/wiki/Wahhabism#Shi.27a_criticism)

<comment><USER7> Note that the Byzantine iconoclasts were heavily influenced by the very early Mohammedan conquests, which rather tends to support the Wahabbists' claims to be the original Islam.

</comment></comment></comment><comment><USER8> That clock tower and hotel are an abomination and in bad taste.It's as if someone decided to put a Las Vegas style Casino style building right next to the Vatican.

<comment><USER9> I know I used to work for Dar Al Handasha (who designed that clock tower) and even as a non mulslim I think its a shocking way to treat they holy places.

<comment><USER10> In the west we do the same thing, e.g. just look at Niagra falls.

<comment><USER11> Better example might be the private Gettysburg National Tower that stood from 1974 to 2000: [https://c2.staticflickr.com/6/5481/11078991455_f4ebf6ffc0_b....](https://c2.staticflickr.com/6/5481/11078991455_f4ebf6ffc0_b.jpg)

</comment></comment></comment></comment><comment><USER12> I'm not muslim but did live in Saudi Arabia for many years (aramco) and have to say that the saudi government is very devout when it comes to hajj. When accidents happened, the entire country was upset regardless of the news blackouts. The ability to provide hajj underpins the royal family's authority. They take is very personally.

But a few things...

(1) The ban on non-muslims is not as tight as portrayed. More than a few westerners have been to mecca, many to advise on hajj matters. There are also legendary stories of non-muslim children being brought on hajj by saudi families. I heard stories from neighbours, things more than rumours, but never met anyone who actually witnessed this.

(2) Lots of the people sleeping rough do so by choice. Many simply do not want pillows and beds during hajj. For them it isn't meant to be comfortable. More hotel-type rooms may help, but it will never get everyone off the streets.

(3) Security is a huge issue. Religious extremists have caused plenty of trouble. The Saudis have large numbers of soldiers hidden just out of sight to quell any repeat.

(4) The clockface is horrible, but that is the style in the country. People who go to Vegas sometimes remark about that style, but it is just a matter of taste. If you were living there it wouldn't seem nearly as bad. The clock itself also serves a purpose. Many pilgrims do not wear watches, most all are suffering jet lag and much of the process is now indoors. So like vegas, it is very easy to loose track of time. The various clocks are all big and horrible, but do serve some function. (It also has to be a mechanical clock, else everyone would insist on arabic numerals, which I've never seen on any digial wallclock.)

(5) The King actually does hajj each year, during the appropriate time. He has guards, but they could do nothing for him in a crush. For a man his age we have to give him some credit.

</comment><comment><USER13> "The most comprehensive database of Hajj and Umrah ratings and reviews worldwide! Find out what pilgrims say before you choose your Hajj or Umrah travel agent, company, or group."

[http://www.hajjratings.com/](http://www.hajjratings.com/)

Like trip advisor but for pilgrims. Wonderful comments.

"They are terrible guys. They gave me wrong transportation and they overcharged me for the airline ticket as opposed to other people.

Avoid at any cost!!!! "

People just like us and many from HN travel to these places and they experience it in a great many ways. Hajj is not a holiday, but it's certainly travel!

</comment><comment><USER14> Someone should pay more attention to preserving old heritage sites and historical structures in Mecca. The boorish Saudi Royal family is turning this into a religious disneyland. What shame.

<comment><USER15> > The boorish Saudi Royal family is turning this into a religious disneyland.

My guess is that they're doing it to put a Wahabbi stamp on things and erase everything else.

<comment><USER16> The Wahabbi/Salifists see destroying all that old stuff as a feature not a bug.

</comment></comment></comment><comment><USER17> The comments below the article are very interesting especially the ones about destroying the ottoman heritage.

</comment><comment><USER18> Perhaps somebody here knows, why are tents still used at the midway point in Mina? It seems that permanent structures and infrastructure would do a more efficient job of housing all the pilgrims. Is it tradition or a religious requirement of some sort?

<comment><USER19> It looks like they are building as fast as they can to be honest. I'm sure its only a matter of time.

</comment></comment><comment><USER20> In case you don't see any pictures, unblock "Optimizely". At least with the standard ghostery install it did not load any pictures before I allowed Optimizely.

<comment><USER21> It's amazing how many people implement Optimizely in a way that breaks the site if you block it.

</comment></comment><comment><USER22> The huge towers are pretty amazing. I have never seen them in any other pictures of the Kabba [https://en.wikipedia.org/wiki/Abraj_Al_Bait](https://en.wikipedia.org/wiki/Abraj_Al_Bait)

</comment><comment><USER23> Mecca seems like a pretty fascinating place. It's a terrible shame non-Muslims are banned.

<comment><USER24> These are legitimate questions - how do they know who is Muslim and who is not Muslim? Do they check before you get to the camps?

<comment><USER25> To be a bit facile: circumcision.

<comment><USER26> How about women?

</comment></comment></comment></comment><comment><USER27> Islamic Perspective in Rough (need citation):

Prophet Adam (Peace be upon Him) created the first House of Worship at Kaaba.

During the time of Prophet Nuh (Noah) (Peace be Upon Him), it was in one sense, 'lost'.

Then Prophet Ibrahim (Abraham) 'the true' and Prophet Ismail (?) (Peace be Upon them) rebuilt the Kabba again.

Again and Again, Kabba and Mecca with it, were lost (to what?)

Until At last, Prophet Muhammad (Peace be upon him) cleaned it for the last time. Removing the 360+ idols placed within.

A interesting story, just Before the time of Prophet Muhammad (Peace be upon him) is that a certain king vowed to destroy the Kaaba, and plunder the city of Mecca. To which he was roughly told 'The Owner of this House is well capable of protecting it'. The Army of that King was killed by a hailstorm of stones carried by countless birds, a sign for those who believe.

<comment><USER28> Your username looked familiar. I finally figured out where I'd seen it. Earlier this year, we both commented on an article about the Charlie Hebdo massacre.[1][2] You said, "I think both parties were at wrong here." and, "…the level of Satire in question here, was perhaps too much."[3]

I recall being utterly astonished by your comment. People were _murdered for drawing cartoons_ and you insinuate that it was partially their fault. Shame on you.

1\. HN thread: [https://news.ycombinator.com/item?id=8879215](https://news.ycombinator.com/item?id=8879215)

2\. My comment: [https://news.ycombinator.com/item?id=8879389](https://news.ycombinator.com/item?id=8879389)

3\. rikacomet's comment: [https://news.ycombinator.com/item?id=8879528](https://news.ycombinator.com/item?id=8879528)

</comment></comment><comment><USER29> While a cool and nicely illustrated article, I fail to see how it's relevant to HN.

<comment><USER30> Just out of interest: what do you think is on-topic for HN?

Also, from the guidelines.

> On-Topic: Anything that good hackers would find interesting. That includes > more than hacking and startups. If you had to reduce it to a sentence, the > answer might be: anything that gratifies one's intellectual curiosity.

<comment><USER29> Well you just said it: "Anything that good hackers would find interesting" and not "Anything that anyone would find interesting".

<comment><USER31> I'm a hacker, and I found this interesting. What now?</comment></comment></comment></comment>


Doctors aghast at Groupon deals for medical care - <AUTHOR> https://arstechnica.com/science/2019/09/medical-groupons-show-how-bonkers-us-healthcare-is-doc-says/ <comment><USER2> Groupons for services just don't work. No matter how good a provider is they can't provide full service at cut-rate prices and still make a living. The only way to do it is to reduce the service itself which is the last thing you want to get if you are being serviced by a doctor.

No thank you...</comment>


Google escalates standoff with China: postpones two Android phones - <AUTHOR> http://www.scientificamerican.com/blog/post.cfm?id=google-escalates-standoff-with-chin-2010-01-20

<comment><USER2> Spinning it's propoganda to make it seem like the west is trying to enforce it's ways on the Chinese...

</comment><comment><USER3> good luck with that google - where will you go for cheap handsets now? Taiwan? Oh, wait - its part of China. D'oh!</comment>


Establishing a Secure Password Generator for Your Website - <AUTHOR> https://medium.com/p/establishing-a-secure-password-generator-for-your-user-base-f7c0814b152a <comment><USER2> This is a horrible horrible article, because it gives horrible insecure advice. You should never use Math.random for password generation.

Use Crypto.getRandomValues() instead

</comment><comment><USER3> I am using pwgen, any reason I shouldn't?</comment>


Tinc – A Virtual Private Network (VPN) Daemon - <AUTHOR> http://tinc-vpn.org/ <comment><USER2> Main author of tinc here: it's great to see this get to the front page of HN! Development has been quite slow the last few years. Feel free to contribute to tinc!

It would be great to get version 1.1 out the door, and then focus on the future. One possibility that is very tempting would be to use Wireguard as a back-end for the end-to-end communication between peers, but have tinc manage the whole mesh, to get the best of both worlds.

</comment><comment><USER3> As others note, it's trivial with tinc to setup mesh networks, with both direct and indirect routing among peers. It's the basis of CCC's ChaosVPN.[0] Also, it works well as a Tor v3 onion service, and so provides an alternative to OnionCat, which will become unusable when the Tor Project deprecates the v2 onion protocol next year.

0) [https://wiki.hamburg.ccc.de/ChaosVPN](https://wiki.hamburg.ccc.de/ChaosVPN)

</comment><comment><USER4> I was a long time user of this for both work and personal. It's a really fantastic and underrated project.

I've since followed the momentum and moved to wireguard, but I'm a little sad Tinc hasn't gained the mindshare it deserves.

The simplicity of config and mesh networking are far more pleasant and practical to work with than Wireguard, at the expense of a few ms in latency.

<comment><USER5> How do you manage your wireguard setup? Mine breaks pretty much every time I upgrade because it depends on a kernel module. Maybe this goes away when I can upgrade to the latest kernel with native support?

<comment><USER6> Here's where we're at with WireGuard distro kernel shipping support, as of writing (July 4, 2020):

\- Ubuntu Focal 20.04 LTS: native built-in

\- Ubuntu Eoan 19.10: native built-in

\- Ubuntu Bionic 18.04 LTS: native built-in

\- Ubuntu Xenial 16.04 LTS: dkms :(

\- Ubuntu Trusty 14.04 LTS: dkms :(

\- Debian: native built-in

\- Fedora: native built-in

\- Mageia: native built-in

\- Arch: native built-in

\- OpenSUSE: native built-in

\- SUSE Linux Enterprise: native built-in

\- Alpine: native built-in

\- Gentoo: native built-in

\- Exherbo: native built-in

\- NixOS: native built-in

\- RHEL/CentOS: dkms and elrepo kmod :(

\- Void: native built-in

\- Adélie: native built-in

\- Source Mage: native built-in

\- Buildroot: native built-in

The rule of thumb here is: distros with kernel ≥ 5.6 have it native built-in, plus a few distros that have backported it, like Ubuntu, Debian, and SUSE. I'm in the process of working with other distros to get it backported; we'll see if I'm successful. I'm also maintaining a 5.4.y backport for distros who ship this LTS kernel (like Oracle's UEK), to make backporting it easier: <[https://git.zx2c4.com/wireguard- linux/log/?h=backport-5.4.y>](https://git.zx2c4.com/wireguard- linux/log/?h=backport-5.4.y>). There are instructions for each distro on <[https://www.wireguard.com/install/>](https://www.wireguard.com/install/>).

If you're presently having "update troubles", make sure you're using the latest variant of any of the "native built-in" distros written above.

<comment><USER7> I hope FreeBSD gets it soon too. I know they're working on it.

<comment><USER8> Already in ports:

[https://www.freshports.org/net/wireguard/](https://www.freshports.org/net/wireguard/)

Work for in-kernel are in full swing.

</comment></comment></comment></comment></comment><comment><USER9> If curious see also

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

</comment><comment><USER10> Use tinc for work and personally, recently built a hybrid k8s use tinc as flannel backend, reliable and easy to maintain, also use tinc Switch mode, works on L2, so DHCP works, wireguard can only work on L4.

<comment><USER11> Similar issue here - I want functional mDNS so I'm sticking with tinc for the foreseeable future. I'd really like to see tinc evolve to be able to use pluggable transports so that WG could form the backbone though.

</comment></comment><comment><USER5> How does this or ZeroTier compare to WireGuard besides the fact WireGuard doesn't have much of a UI or key management?

<comment><USER12> WireGuard is like a modernized version of the SPTPS protocol --- SPTPS is a denatured variant of TLS --- that tinc uses, (ordinarily) coupled to the Linux networking stack. It is something you would build a modern version of tinc on top of, not a competitor to tinc. See Tailscale for an example of something that looks a lot like tinc, but built on WireGuard.

Tinc's security track record has not been especially great†, and while WireGuard and tinc are both written in C, tinc is a great ghastly blob of C, and WireGuard was written defensively by a vulnerability researcher to minimize attack surface --- the whole thing is about 4000 lines of code, and can be run without memory allocation.

So if you were just comparing SPTPS to WireGuard, it'd be no contest at all: you'd always, always prefer WireGuard. And that's what most people should do, because most people run simple access VPNs that don't need elaborate mesh routing features. For the minority that do, for now, there's Tailscale and Tinc; maybe Tinc can do a 2.0 on top of WireGuard, with its userland components in a memory-safe language.

† _This, in particular, is not the commit message you want to see in a fix for an error oracle vulnerability:[https://www.tinc- vpn.org/git/browse?p=tinc;a=commit;h=d3297f...](https://www.tinc- vpn.org/git/browse?p=tinc;a=commit;h=d3297fbd3b8c8c8a4661f5bbf89aca5cacba8b5a) _

<comment><USER5> Thanks for the rundown. I'm already using wireguard so I'll stick with that and hopefully figure out some of the kernel upgrade issues I've ran into.

Tailscale is an automatic no for me. I won't use proprietary software for something as important as this. Even with tincs history I'd much rather go with opensource.

<comment><USER13> Tailscale is open source. Your data might route through their servers (e.g. STUN) but it's E2E encrypted, which you can verify easily.

<comment><USER14> It is NOT. It's a paid commercial software where only the client is open source.

</comment></comment></comment></comment></comment><comment><USER15> Years ago when I was building out a Docker hosting startup that never went anywhere, it was largely based on using Tinc to create a VPN so that your applications in different containers could all talk together.

</comment><comment><USER16> I always found tinc rather difficult to set up. Have had a more convenient experience with zerotier one.

<comment><USER17> I agree, but the actual simplicity (no meta server etc.) is amazing. I've found it to be incredibly reliable and low overhead. (I've been using for years for MySQL replication and docker across low latency WAN connections).

<comment><USER18> > I've found it to be incredibly reliable and low overhead.

(I'm a bit confused which of tinc and zerotier in the parent post you're referring to....)

By "it", you mean _tinc_ , correct?

</comment></comment></comment><comment><USER19> Are there implementations in memory safe languages?</comment>


Ask HN: Why is linking to paywalled articles so common here? - <AUTHOR> You rarely or never see this on reddit or pretty much any other community board. Why does it happen so often here when anyone submitting can easily find a non-paywalled source with the same information? <comment><USER2> The HN convention is that paywalled sites are fine as long as there's a way to bypass the paywall - usually by browsing to it via Google, which is easily accessible from the "Web" link below the title in the post's comments page.

Posts to pages behind impenetrable paywalls get flagged into oblivion.

 _Why does it happen so often here when anyone submitting can easily find a non-paywalled source with the same information?_

Because this usually isn't the case at all. Quality of sources varies considerably, and HN always wants the best one.

</comment><comment><USER3> People complain about ads.

And they complain about paywalls.

And they complain about subpar journalism.

\---

HN may just have a different proportion of complaints.

</comment><comment><USER4> Well I'd argue you do see it on reddit. But its on sub reddits that often have more discussion than say /r/pics. /r/Science and /r/AdvancedFitness are the two subreddits i'm thinking of here.

As to why you see it here, it probably has to do with the topics that this site likes. Business, for better or worse, gets a fair bit of air time here. That's one area that has typically charged for access to its news/research.

Secondly, I'd argue that there is an element of "you get what you pay for". I pay alot more than the average person for access to news, and I strongly believe that this is true.

Thirdly, many of us make our living by having others directly pay for what we produce. This can make you a bit more sympathetic to the idea of paying for the work of others.

<comment><USER5> > Secondly, I'd argue that there is an element of "you get what you pay for". > I pay alot more than the average person for access to news, and I strongly > believe that this is true.

"You get what you pay for" is mostly a marketing effect, not an actual phenomenon.

<comment><USER6> There are many cases where it is an effect of "what you want requires skilled time. Someone must pay for that".

</comment></comment></comment><comment><USER6> tl;dr journalists can't pay the bills with exposure.

Because this forum values well-thought-out articles. These articles generally require a lot of time to compose. If the authors' don't have some other job, then they have to be paid for their time. In order for the company to acquire the money to pay, they need to collect money from: 1) advertisements, which for general-audience text media, aren't that valuable.

2) subscriptions, which few people will pay for if they can get the content for free.

</comment><comment><USER7> Sometimes the same information can be much better expressed or presented by high quality sources that are often paywalled (NYTimes, WSJ, etc.) I don't doubt that the HN audience probably has more disposable income than the general internet but it's more likely that our reading habits tend to lean towards these paywalled sources.

</comment><comment> angry-hacker Because a lot of people here are wealthier than average and in general prefer paywalls to ads.

Too bad it often 'breaks' the internet as we know.

</comment><comment><USER8> while it's probably well known among HN's cognoscenti, the wsj.com paywall is easily breached by copying the title of the article then paste into Google search. Same with barrons.com (less often linked, however) Other paywalls, I've noticed, give a free pass to mobile browsers.

</comment><comment><USER5> I often benefit from reading the discussion generated by a paywalled article, rather than reading the article itself. So, I don't mind seeing paywalled articles posted. Do others feel similarly?

Also see this comment by ljsocal in this thread.

</comment><comment><USER9> Probably a co-incidence. It's plausible that an entrepreneurial-ly bent individual pays for WSJ, Barrons, NYTimes etc. Just like teens use snapchat more than others, certain pay-walled content is more popular with the HN audience.

</comment><comment><USER10> Maybe the content with paywalls overlap with interests of some HN users? I haven't seen any paywalls at all (to my recollection) so maybe it's business and political topics.

</comment><comment><USER11> Maybe HN should do deal with WSJ etc. to show HN users just the paywalled articles that get on the front page of HN. You then take out a single (cheaper) HN subscription that gets you over the paywall on all the major sites.

</comment><comment><USER12> Because actual sources of good journalism have almost all moved to paywalls of different kinds – from the metered model of The New Yorker to more rigorous implementations like the WSJ.

</comment><comment><USER13> Hmm?</comment>


Why SAAS will win  - <AUTHOR> http://www.maximise.dk/blog/2007/01/moving-applications-to-web.html

<comment><USER2> I'm not sure why anyone needs to be convinced on why SAAS will win. Charging for a product is one of the most basic and successful things a company can do. Its 2000+ years of positive growth speaks for itself.

<comment><AUTHOR> Maybe I titled it wrongly, the post is really more about design principles for SAAS in a browser.</comment></comment>


Top contributors to React (JS) - <AUTHOR> https://medium.com/@briskat/react-js-contributor-stats-deaf26993ec2 <comment><USER2> Is "petehunt" really a different person from "Pete Hunt"?

<comment><AUTHOR> Stat's are taken from git repo. In general, it's not trivial to recognize the same person if he/she uses different names/emails. There isn't any heuristics in place and some people can appear more than once.</comment></comment>


A short history of Zhvandun, Afghanistan's lost magazine - <AUTHOR> http://www.bbc.co.uk/news/in-pictures-42878241 <comment><USER2> I just made a wiki article for this magazine. Please add any info you might know.

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

</comment><comment><USER3> If you want to see the entire collection:

[https://www.wdl.org/en/search/?collection=zhvandun- magazine](https://www.wdl.org/en/search/?collection=zhvandun-magazine)</comment>


Gender differences in participation and reward on Stack Overflow - <AUTHOR> https://link.springer.com/article/10.1007/s10664-019-09685-x <comment><USER2> The proposed solution of equal reward for question and answer does not make sense. Many questions are badly worded or repetitive and do not help anybody but the asker. In a perfect world these questions would all be removed but a lot of them stay up.

Furthermore, questions are a lot easier to ask imo than it is to answer a question, and the answer is the most important part since if a question helps more than one person many people have the chance and the want to ask it while to answer it someone would have to take the time to read the question and have the knowledge to be able to answer and the only reward is additional points on one's profile.

A good question should be more rewarded, but so many people don't upvote questions or don't even have an account or login anyways.</comment>


Why3 – A platform for deductive program verification - <AUTHOR> http://why3.lri.fr/ <comment><USER2> It seems like the Why3 project attempts verification of only "simple" programs without concurrency and higher-order functions. On the other hand, the Iris Project is an attempt to verify higher-order concurrent programs, see e.g. [https://iris-project.org/pdfs/2017-case-study-verifying- dart...](https://iris-project.org/pdfs/2017-case-study-verifying-dartino- framework.pdf)

<comment><USER3> Iris is a separation logic, a framework for proving the properties of programs. There are many like it, Iris is just one of the recent examples.

To prove statements in this logic, you have to rely on the proving facilities of the host environment, for instance Coq in your linked example. Most of the proof is then written by hand and quite tedious. The difference is that Why3 attempts to automatise as much of this workload as possible, most frequently with the help of SMT solvers.

</comment></comment><comment><USER4> With the unexpected result that the here so beloved Z3 solver is actually the worst of all used solvers. You shouldn't blindly use everything with a python binding. [https://hal.inria.fr/hal-00967132/en/](https://hal.inria.fr/hal-00967132/en/)

</comment><comment><USER5> Has anyone used this to verify any significant (or insignificant) real world software? Like programs or libraries used in production? How long did it take? How hard was it?

<comment><USER6> It's mainly used as a backend by stuff like Frama-C and SPARK. They, esp SPARK, do get used in industry. I stay submitting that stuff on Lobste.rs so click the formalmethods tag if interested. Here's a list of Why3 stuff:

[https://lobste.rs/search?utf8=%E2%9C%93&q=nickpsecurity+why3...](https://lobste.rs/search?utf8=%E2%9C%93&q=nickpsecurity+why3&what=stories&order=relevance)

Here's SPARK in action:

[http://mstl.atl.calpoly.edu/~bklofas/Presentations/Developer...](http://mstl.atl.calpoly.edu/~bklofas/Presentations/DevelopersWorkshop2017/4_CarlBrandon.pdf)

</comment></comment><comment><USER7> Anyone have a good comparison of Why3 to FStar?</comment>


Nim binary size from 160 KB to 150 Bytes - def- http://hookrace.net/blog/nim-binary-size/ <comment><AUTHOR> Today I looked at Nim in a bit more depth because it keeps popping up. I have a slightly uncomfortable feeling about it that I hope is unfounded!

To me it looks like it makes the unsafety of c more accessible because of better tooling and nicer syntax. Looking at e.g. [1] there are still pointers, null-pointers etc, just like in c. So now you have a language that looks superficially simple but is actually very dangerous. Compare this to e.g. rust which was the most painful thing I learned recently but I also know that it brings something fundamentally new to the table.

Anyway, there's a lot I don't understand about Nim and I'd be happy to see evidence to the contrary.

[1] [http://nim-lang.org/0.11.0/tut1.html#advanced-types- referenc...](http://nim-lang.org/0.11.0/tut1.html#advanced-types-reference- and-pointer-types)

<comment><USER2> So Rust has some cool safety features, especially for concurrent code. But, and perhaps I'm just uninformed, I never really understood the safety benefit of Rust's 'never nil' design. Nil is a useful modelling tool, even in Rust where it exists via Option<>/None, correct? Perhaps by forcing you to be extremely explicit (and enforcing `match` always handles all conditions) you gain some arguable safety, but at what cost? It's certainly not easier to use and reason about, IMO. And it seems just as likely you'll end up crashing your program due to a bounds-check error (which may happen more often since Rust encourages indexing over references due to this very design.. at least, so I've read).

It seems to me the design was chosen more as a way to ensure memory lifetime could be better predicted by the compiler rather than any strong argument for safety.. but then, I'm not well read on the subject, and It's very likely there's good safety arguments for it I'm not aware of.. either way, in my experience nil-deref errors are rarely a painful thing. They happen often, but are also fixed quickly.

<comment><USER3> > Nil is a useful modelling tool, even in Rust where it exists via > Option<>/None, correct?

It's not that null is not useful. It's that most pointers can never be null, so nullability is the wrong default. And it is useful for the compiler to force you to handle the case in which pointers are null.

> Perhaps by forcing you to be extremely explicit (and enforcing `match` > always handles all conditions) you gain some arguable safety, but at what > cost?

There's basically no downside to having no null pointers. With constructs like Option::map the code is usually even less verbose than the equivalent code with null.

> It's certainly not easier to use and reason about, IMO.

You never have to worry about your program failing whenever you type "." or "∗". With null, the semantics of the language are that an exception can be thrown [1] whenever those constructs are invoked. That's pretty much _objectively_ easier to reason about.

> It seems to me the design was chosen more as a way to ensure memory lifetime > could be better predicted by the compiler rather than any strong argument > for safety

Huh? Lifetimes are totally independent. We could have had null pointers with the lifetime system (and there were languages like Cyclone that had both). The system exists precisely because of safety.

We also get some really nice optimizations out of it that are impossible to get in C. All pointers in Rust are _dereferenceable_ per the LLVM definition, which opens up some really neat optimizations like loop invariant code motion on loads.

> in my experience nil-deref errors are rarely a painful thing. They happen > often, but are also fixed quickly.

Not in my experience. They show up in production all the time.

[1]: Or you could do what Nim does, and make dereferencing null undefined behavior instead of guaranteeing that an exception is thrown, but that strikes me as worse than what Java does.

<comment><USER2> > it is useful for the compiler to force you to handle the case in which > pointers are null.

Well I agree that it's very useful (and we have that in Nim), but..

> With constructs like Option::map the code is usually even less verbose than > the equivalent code with null.

I'm still not convinced of this part. It certainly hasn't been the case with the, admittedly small amount of, Rust code I've seen. However, I'll look for more comparisons in the future (or offer Nim comparisons to Rust snippets anyone posts). Point is, nil is still a useful and commonly used tool. So the argument for verbosity and conveniences is relevant, IMO.

> With null, the semantics of the language are that an exception can be thrown > [1] whenever those constructs are invoked. That's pretty much objectively > easier to reason about.

That completely depends on how often you want to use nil refs, and how easy they are to use. Like I said in another response, I agree Rust's design may be better for some domains, but I certainly wouldn't call it "objectively" easier to reason about in a general sense.

> Huh? Lifetimes are totally independent.

Well like my post implied, I was only guessing as to the design. And it's interesting to hear that it takes advantages of special compiler optimizations. That said, I still don't see how it's completely decoupled from the life-time system.. you're saying that if I have a Option<> reference to a mutable list in Rust, the compiler can determine weather or not the list is 'frozen' based on the runtime state of that reference?

> Or you could do what Nim does, and make dereferencing null undefined > behavior.

I didn't think derefing nil was undefined behavior. I thought only dereferencing a pointer which points to once-valid-but-now-free memory was undefined behavior, and that situation is covered by GCed refs. Can you explain this a bit?

EDIT:

> Not in my experience. They show up in production all the time.

I did say 'rarely', and I drew a comparison to bounds-check crashes, which surely also show up in production.

<comment><USER3> > Point is, nil is still a useful and commonly used tool. So the argument for > verbosity and conveniences is relevant, IMO.

The only advantage of having null references is that the pattern "if this reference is null, dereference it; otherwise throw an exception" is shorter. But the question is: how often do you want that pattern? In a robust program, the answer to that is "rarely".

Put another way, it would be trivial to add sugar for the ".unwrap()" pattern to Rust (perhaps with the "!" operator) if it were necessary, gaining back the only verbosity-related advantage of null pointers. But nobody in the Rust community is asking for it. That's because _this pattern is rare_. If it were a problem, someone would have at least submitted an RFC by now!

> I certainly wouldn't call it "objectively" easier to reason about in a > general sense.

If you write down, formally, what the star or dot operators do, there are strictly more steps involved when you have null pointers. That's why a language without null is objectively easier to reason about.

> if I have a Option<> reference to a mutable list in Rust, the compiler can > determine weather or not the list is 'frozen' based on the runtime state of > that reference?

I don't know what this means. Lifetimes rule out dangling pointers. They don't have anything to do with nullability. The borrow checker only cares about the structure of your data enough to construct loan paths.

> Can you explain this a bit?

Dereference of null is undefined behavior in C, and Nim compiles to C code that blindly dereferences pointers without inserting null checks. So dereference of null is UB in Nim too. In an earlier comment I was able to construct a Nim program that exhibited very different behavior in debug and optimized builds, using nothing but GC'd pointers.

> I did say 'rarely', and I drew a comparison to bounds-check crashes, which > surely also show up in production.

Actually, Rust does try to prevent indexing-related issues by preferring iterators to raw array indexing. But, in any case, the comparison isn't relevant for a couple of reasons. First of all, in a general sense if you have big problems A and B, the fact that you can't solve B isn't an excuse to not solve A. More specifically, though, the amount of type system machinery needed to fully eliminate bounds check failures is much higher than that needed to eliminate null pointer exceptions—you basically need dependent types, whereas to eliminate null pointers all you need are bog-standard algebraic data types, which have existed since the 70s.

<comment><USER2> > there are strictly more steps involved when you have null pointers.

Well yes, and both Nim and Rust have non-nil pointers.. I suppose I misread your original statement as "Rust is objectively better ..." when you actually just said non-nil vars are an objectively better design pattern in general. My mistake.

Our argument seems to stem around the two assertions (one from you, and one from me), those are: "nil vars _are_ be rare (in optimally written code)", and "Rust's way of working with 'nil' vars is verbose". I suppose I'll concede that non-nil vars is a better default (though I will hold reservation until I see more real statistics, I don't find "no RFC yet!" as hugely convincing), but I also feel Rust could do a better job of giving access to "nilable" vars when they're needed.

> I don't know what this means. Lifetimes rule out dangling pointers...

I mean, Rust prevents you (via compile-time mechanisms) from mutating a variable while it's borrowed by another reference.. If that reference is Option<>, it's only known at runtime weather or not a reference has actually borrowed said varaible. Rust must either treat every Option<> reference as a potential 'loan path', which would significantly diminish their usefulness as a references, encouraging indexing for these scenarios, which leads to almost identical potential for out-of-bounds crashes... or it's relying on some kind of more complex mechanism (lifetime vars maybe?).. or additional runtime overhead.

I really don't know enough about Rust to know how far off-base that is. So any clarity is appreciated.

> In an earlier comment I was able to construct a Nim program that exhibited > very different behavior in debug and optimized builds, using nothing but > GC'd pointers.

I remember this comment, but I didn't remember it achieving UB in debug code.. I'll look through the history and take another look.

<comment><USER4> > Rust must either treat every Option<> reference as a potential 'loan path', > which would significantly diminish their usefulness as a references, > encouraging indexing for these scenarios, which leads to almost identical > potential for out-of-bounds crashes... or it's relying on some kind of more > complex mechanism (lifetime vars maybe?).. or additional runtime overhead.

Can you give a concrete example of this? I'm a bit confused, but it might just be a terminology thing. In Rust, `Option<T>` does not imply a reference. If you have a `Option<i32>` there are no references involved. An `Option<T>` also owns the `T` if there is one. You can get a reference to it, but you have to check that it indeed holds a `T` (via `match` or `match` using functionality).

Note: I should clarify: What's confusing me is the indexing stuff. I'm not sure if this is referring to something about the `Option<T>` or something else.

<comment><USER2> > I should clarify: What's confusing me is the indexing stuff. I'm not sure if > this is referring to something about the `Option<T>` or something else.

By indexing, I meant as an alternative to references.. For example, if you had a Sprite type which held a 'reference' to a Texture in your game's Texture list.. as soon as you allocate a Sprite it must borrow a reference to a Texture, preventing any future mutation of the Textures list for the lifetime of the Sprite, which obviously is too restricting for most games.. so the alternative is to have the Sprite simply hold an index to an item in the array instead, but this basically comes with the same pitfalls as nilable refs (ie, if you accidentally change it, your program can crash due to bounds-checking errors.. or end up with visual glitches.. not sure which would be more annoying).

The other alternative is to use an Option<&Texture> instead. However, I'm not familiar enough with Rust to know of the restrictions here, or even if that's possible (taking a look at the docs, it looks like it's possible, but life- time vars come into play, which could complicate things).

<comment><USER4> Rust solutions would probably be the following: Some kind of runtime assistance (`Rc<T>`, `Arc<T>` et al), using indices as you mentioned (though with `list.get(index)` you'd still have to deal with the fact that it might not be valid, since `get` will return an `Option<T>`)[1] Another solution might be to allocate the textures in an arena that lives outside of the scope of your game logic, and have both the texture list and sprites contain borrows (Note I'm not sure about this, as I haven't done much with arenas yet).

Although I'm unsure where the `not nil` as discussed above comes into play here. What part in Nim would be `nil` here where Rust would have `Option<T>`? The difference between `Option<&Texture>` and `&Texture` is that you have to somehow deal with the possibility of no texture when handling the former.

[1] I should note that actual indexing behavior (`list[index]`) will assume you know there is one in there and panic if it isn't. This is one of the things I dislike and hope there will be an optional (no pun intended) lint post-1.0.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> I've tried Rust, Nim and Go and I prefer Nim. But this could also be because of my background as a C/C++ programmer, and my particular requirements (general purpose programming language that doesn't try to hold my hand _too_ much).

There are things I don't like about the language (eg. case-insensitivity), but overall if I had to choose a newish language for a new task, I'd choose Nim over Rust and Go. (However, if you threw D into the equation I'd probably go with D simply because I feel it's slightly more mature).

Incidentally, the way I tried to teach myself Nim (and to see if the language was usable for creating small Windows apps) was to write a WinApi program. It took about the same or less effort as what it would have taken me in C/C++, but it just felt much safer and more pleasant to work with.

<comment><USER6> Do you have some directions on the WinAPI in Nim?

I felt a bit overwhelmed with the whole wrapping thing.

<comment><USER5> You don't have to wrap anything. It's exactly like using it from C, except maybe a bit easier/safer. Just import windows. Then you can write code like this:

        hWndMain = CreateWindowEx(
            WS_EX_TOPMOST,              # Optional window styles.
            CLASS_NAME,                 # Window class
            WINDOWNAME,                 # Window text
            windowStyles,               # Window style

            # Size and position
            centerX, centerY,
            APP_WIDTH, APP_HEIGHT,

            cast[HWND](nil),        # Parent window
            cast[HMENU](nil),       # Menu
            hInstance,              # Instance handle
            cast[LPVOID](nil)       # Additional application data
            );

</comment></comment></comment><comment><USER7> Comparison summary between the Rust inspiration and the Nim version:

* Nim/GCC gains 2 bytes by smartly reusing the previously set AX register's value to set DI where Rust/Clang uses an immediate

* Nim can't express that stuff after the EXIT syscall is unreachable and wastes a byte on a RETQ.

</comment><comment><USER8> I read this, and wonder why software has gotten so fat? Any simple application these days is easily on the few dozen of MB, most a few hundred, with a few on a few GB in size. Why aren't we streamlining software to reduce its size? I understand we have gotten "rich" on storage, but if the trend continues...

I am sure many portable devices would benefit if applications were trimmed down.

<comment><USER9> My experience writing KnightOS has given me the understanding that we are wasting the obscene amount of resources available to us from modern computers.

</comment></comment><comment><USER10> I love these articles; I make sure to bookmark them just in case one day I want to build binaries that do nothing.

<comment><USER11> In case you haven't seen it, here's a similar article on making a tiny ELF executable. [1]

[1] [http://www.muppetlabs.com/~breadbox/software/tiny/teensy.htm...](http://www.muppetlabs.com/~breadbox/software/tiny/teensy.html)

</comment></comment><comment><USER12> This post is Nim specific, but the key ideas for getting to a small binary (optimize for size, remove the standard library, avoid compiler main() / crt0 baggage by defining _start, use system calls directly) are the same in C, C++, Rust, etc.

</comment><comment><USER13> I like the end result. However, it makes me wonder just why it's so acceptable that simple programs like this even compile down to a 160KB executable in the first place.

The actual active code is essentially some text and an interrupt. That much, at least, should be language independent. Are modern compilers incapable of discarding unreferenced code, or am I missing something?

<comment> def- The first compilation, which is 160 KB, is totally unoptimized, contains all kinds of debugging and checks. It's just supposed to be for yourself during development of the program.

Also there is some overhead every Nim program has. But if you get to bigger programs you'll see that Nim's binary size is just fine, for example a NES emulator is just 136 KB: [http://hookrace.net/blog/porting-nes-go- nim/#comparison-of-g...](http://hookrace.net/blog/porting-nes-go- nim/#comparison-of-go-and-nim)

<comment><USER13> Good to know. Also, pretty cool emulator!

</comment></comment></comment><comment><USER14> > (1 byte smaller than in Rust)

Nice achievement! The article is quite the journey through various build parameters, switching gcc for clang and glibc for musl along the way. In the end, the secret sauce is syscalls and custom linking, though (as always with this kind of thing).

</comment><comment><USER15> This seems mostly useful in highly constrained embedded environments (AVR, MSP430, ARM M0, PIC etc.) Unfortunately it seems like none of these "modern" system languages (Nim, Rust) seem to be putting too much effort towards embedded platforms :(

<comment><USER16> Rust isn't putting a lot of specific effort into embedded, but we already work on many embedded platforms. As the language matures, I expect that support to grow.

<comment><USER17> Embedded and especially bare-metal applications really are 2nd class citizens in the rust ecosystem though. You basically can't use cargo (or at least not without a whole bunch of hacks) and many important features for low-level code are still gated and won't be available for 1.0.

I think it's a bit of a shame because that's basically the #1 differentiator with languages like Go or Java as far as I'm concerned.

But beyond that it's true that the language itself has a lot of potential for embedded applications. The runtime can be made almost as tiny as C's and with libcore you get a much nicer and safer "bare metal" environment than what you'd get in C. And thanks to LLVM you can easily target a whole bunch of architectures.

<comment><USER18> Why can't one use Cargo for bare-metal applications?

<comment><USER16> See all the extra work that had to be done here: [https://github.com/Ogeon/rust-on-raspberry-pi](https://github.com/Ogeon/rust- on-raspberry-pi)

</comment></comment></comment></comment></comment><comment><USER19> > Who needs error handling when you can have a 6 KB binary instead

Haha!

What I found was most impressive was the small binary even without the tricks.

</comment><comment><USER20> "The speed optimized binary is much smaller..."

Did I miss where he optimized for speed?

<comment><USER21> Including `-d:release` optimizes it, so that's probably what he meant. It's one of the first things in the [tutorial]([http://nim- lang.org/0.11.0/tut1.html](http://nim-lang.org/0.11.0/tut1.html)).

</comment></comment><comment><USER22> WOW. 10/10

<comment><USER23> Hey this isn't a constructive comment & you'll probably get downvoted for it. It happens to me whenever I comment in a thread that mentions Node.js because of my name. It is the best, but not everyone understands.</comment></comment>


Dating App Bumble Preparing for $6B-Plus IPO - <AUTHOR> https://www.bloomberg.com/news/articles/2020-09-01/dating-app-bumble-is-said-to-prepare-for-6-billion-plus-ipo <comment><USER2> No thanks. Bumble is yet another example of an arrogant tech company forcing its ideology and values on the world. I really don't want a monoculture where even dating is inaccessible if you aren't a progressive: [https://thefederalist.com/2020/06/24/bumble-app-demands- you-...](https://thefederalist.com/2020/06/24/bumble-app-demands-you-pledge- allegiance-to-the-left-to-find-a-date/)

Not to mention that the actual experience of Bumble is terrible. Like most dating apps it is a major time sink and money pit, and has low return for men unless you're attractive in a very mainstream way. The League, as a comparative example, is much more cleverly designed. It avoids turning dating into a second job.

<comment><USER3> You criticize Bumble for being a "time sink" but you like the League because it is like a second job"...which one is it?

<comment><USER2> The League limits you on number of prospective matches per day and it also rewards engagement and punishes lack of engagement. There is no swiping thousands of times, and no window shopping. You get to see a certain number of matches each day and those are _all_ the matches you get to consider. It forces people to actually connect with low time investment. Their CEO, Amanda Bradford, has some interesting presentations/interviews you can search for that talk about their design philosophy.

</comment></comment></comment><comment><USER4> Bumble was refreshingly better than Tinder in about 2014-2018 or so. Making it so the woman has to write first solved a lot of dating app problems:

\- Women getting overwhelmed by too many messages and fleeing the app

\- Men being able to determine which of their matches are actually interested vs. not. It's so tiring to send dozens of messages and not get a response. It's a really nice signal when a women actually writes you first.

But now, Hinge is the champion. The prompts, the scrolling vs. swiping. Combining messaging with swiping is really smart. You're able to add a little touch to your match request but you also don't have to see the failed ones (the ones who didn't write you back).

Hinge's redesign worked out quite well. [https://www.theverge.com/2019/4/9/18297278/hinge-designed- to...](https://www.theverge.com/2019/4/9/18297278/hinge-designed-to-be- deleted-dating-app-redesign)

</comment><comment><USER5> Quite a bubble we are in</comment>