Moo Grows Up, Gets Business Cards - <AUTHOR> http://gigaom.com/2008/06/25/moo-grows-up-gets-business-cards/ <comment><USER2> I use the blank side of received business cards to write down details of my meeting with the person. Covering that space with a picture reduces the value of a business card for me.

Is that reduction in usability Moo's business card selling point?

<comment><USER3> Arguably this makes the card stand out even more than some boring one-sided text-only card, especially if your occupation happens to be something that would benefit from that.

And arguably, there are other uses for business cards. Given how I've seen the moo minicards being used, I wouldn't be surprised if a lot of these are going to be used for more artsy stuff vs. business-y.

My business card is almost all black on both sides, and I haven't come across anyone having problems writing something on it since it's matte and even if you write with a black pen it'll show up pretty nicely.

</comment></comment><comment><USER4> Wow, 50 for $22. You can get 1,000 full color, double sided, 14 pt UV gloss for about $30.

[http://smartlevels.com/prodfeature.aspx?ProdSubCatId=PS119&#...</a>

<comment><USER5> You're assuming that the point is to hand out as many business cards as possible. Most people will throw them away. The Moo cards look nice and seem special because there are few of them. You'll think before you hand them out.

<comment><USER6> The point of business cards is to hand out as many as possible.

<comment><USER5> I don't know, seems like a waste to me. I haven't had to hand out business cards out though, but I can see a lot of them being tossed out.</comment></comment></comment></comment>


Douglas Engelbart : The Mother of All Demos (1968) - <AUTHOR> http://www.youtube.com/watch?v=JfIgzSoTMOs

<comment><AUTHOR> It blows my mind that the functionality of his programs are better then some applications found today. His first example; A task list with drag and drop nesting ability (there's an app for that). Groups the items by location (It think I saw something like that in iOS 5). With a click it shows his route how with quick links at each location to the items he needs to pickup (I haven't heard of an app for that).

Seriously, how is this not built into my cell phone yet?

<comment><USER2> I feel the same way about the "Alternate Reality Kit" from 1987 <http://www.open-video.org/details.php?videoid=8050></comment></comment>


Evaluation of CPU profiling tools: gperftools, Valgrind and gprof (2015) - <AUTHOR> http://gernotklingler.com/blog/gprof-valgrind-gperftools-evaluation-tools-application-level-cpu-profiling-linux/ <comment><USER2> Also worth mentioning here is perf[1], which is great for low overhead profiling. Also, perf profiles can be turned into profiles compatible with GCC and LLVM PGO to build optimized binaries based on production runs, using autofdo[2]. In my use case, the instrumentation overhead was too high to use regular profiling on production workloads.

[1]: [https://en.m.wikipedia.org/wiki/Perf_%28Linux%29](https://en.m.wikipedia.org/wiki/Perf_%28Linux%29)

[2]: [https://github.com/google/autofdo](https://github.com/google/autofdo)

<comment><USER3> Don't forget Hotspot as a way to visualize perf results, which vanilla perf is unfortunately a bit lacking in: [https://github.com/KDAB/hotspot](https://github.com/KDAB/hotspot)

<comment><USER4> Thank you, I have been looking for something that could display perf recordings as a swimming lane view for threads.

</comment></comment></comment><comment><USER5> I'm just going to drop coz[1] as another suggestion. Ever since their talk/paper I expected other implementations of a causal profiler but for some reason everyone is steeped in the old ways. The concept just seems like such a huge efficiency boost compared to raw flame graphs. If you have time to watch their talk, it's linked on the github readme.

[1] [https://github.com/plasma- umass/coz/blob/master/README.md](https://github.com/plasma- umass/coz/blob/master/README.md)

<comment><USER6> coz requires the user to instrument the code. So it's interesting but also much more costly to run experiments with.

I suspect it's cheaper to start with callgring to get an idea of the hot spots in the code base, find the low hanging fruits. Then switch to coz if you really need to squeeze out the last performance juice.

<comment><USER7> If you watch the talk, he finds a number of examples of already implemented optimizations that don't work. I wouldn't be surprised if it was better to immediately start with coz. If nothing else, it forces you to model the problem better so there's overlap with test driven design there, no?

</comment></comment></comment><comment><USER8> I absolutely love flamegraphs for analysing performance. If you haven't used one before and you're interested in optimization (in particular, of large programs you're unfamiliar with) then check them out! I also find them to be an easy way to get a grasp on complicated call stacks, since the addition of method linking on the call stacks makes it really easy to follow.

<comment><USER9> I've asked before without luck: How are flamegraphs preferable to the well- established sorts of visualizations in the common HPC performance tools, like CUBE, Paraver, and TAU, say? They typically provide at least inclusive or exclusive function/region views with choices of metrics for profiling and/or tracing over serial, threaded, or distributed execution.

<comment><USER8> Well, I'll start by saying I'm not familiar with any of those tools. Took a quick look at them though. It looks like Paraver offers a time domain look at performance? And cube seems to offer time based and a graphviz of the call tree.

In a flame graph the width of a stack frame correlates to the % of CPU time spent in that stack frame, and the y is the particular call stack.

This means that you can quickly tell what functions, and from what call sites, are the most expensive.

The only visualization I know of that matches the ability to quickly zero in on things, while maintaining context, is a graph of call stack with frames colored by cumulative CPU time, but that has the issue that laying out the graph is hard, and seeing everything at once is difficult.

<comment><USER9> That may be OK in simple cases where you can easily eyeball it, if you're only interested in aggregated CPU time as a metric, and if you win most from optimizing the obvious function in all modes of the program. That's not necessarily the case in complex scientific codes, for instance, especially parallel ones.

<comment><USER8> This is true. It's more useful for optimizing usage than it is for deep sleuthing of "why is this particular thing performing poorly".

</comment></comment></comment></comment></comment><comment><USER10> Julia Evans has this really nice ezine regarding Linux debugging tools: [https://wizardzines.com/zines/debugging/](https://wizardzines.com/zines/debugging/)

</comment><comment><USER11> The pictures in the article don't work (at least for me). Here is the wayback machine snapshot where everything displays correctly.

[https://web.archive.org/web/20160718172225/http://gernotklin...](https://web.archive.org/web/20160718172225/http://gernotklingler.com/blog/gprof- valgrind-gperftools-evaluation-tools-application-level-cpu-profiling-linux/)

</comment><comment><USER12> A problem with google perftools is the `SIGPROF` signal used in sampling will interrupt polling such as used in ZeroMQ. Otherwise, it is a good tool in the toolbox.

<comment><USER13> that is/was a problem with zeroMQ, not gperftools:

       27    SIGPROF      terminate process    profiling timer alarm (see setitimer(2))

its use is specifically what that signal is for.

Additionally, it seems fixed in zeroMQ for some things already in 2016... so i doubt thats still valid issue.

</comment></comment><comment><USER14> The most interesting tool that I've found along these lines is sysdig.

The amount of different ways and the ease with which it can be used to dig in to and evaluate performance and other characteristics is truly awesome.

It can't do everything. But it can do a lot.

</comment><comment><USER15> Also worth considering is Oprofile: [https://en.m.wikipedia.org/wiki/OProfile](https://en.m.wikipedia.org/wiki/OProfile)

<comment><USER16> I used to use oprofile, but I don't think it works on current kernels.

So I use "perf stat" now. :)

</comment></comment><comment><USER17> No love for VTune?

<comment><USER18> It was great on physical hosts but could not get it working in EC2 VMs

<comment><USER9> It requires access to hardware counters you don't normally have in EC2, and at a privilege level I wouldn't want to enable in a multi-user compute system.

</comment></comment></comment><comment><USER19> gcc has an address and thread sanitizer built in these days.

        gcc -fsanitize=address ...

        gcc -fsanitize=thread ...

They perform better than valgrind.

<comment><USER20> This article refers to valgrind's profiling features (callgrind) and not its more common/popular 'memcheck' feature.

Sanitizers and memcheck are unrelated to the profiling discussion here.</comment></comment>


The hype over driverless cars: is it overdone? - <AUTHOR> http://fortune.com/2015/02/18/the-hype-over-driverless-cars-is-it-overdone/

<comment><USER2> Even if it's two decades instead of one it is going to be a huge huge change worthy of the hype. There will be huge consequences. For example the job that employs the most Americans is truck driving.</comment>


OpenJDK Migrates to GitHub - <AUTHOR> https://www.infoq.com/news/2020/07/openjdk-github-migration/ <comment><USER2> It bothers me that they repeatedly write about a migration "from Mercurial to GitHub", rather than "from Mercurial to Git". It seems to imply that GitHub hosting is the only way to run Git.

It's perfectly fine to say that they are moving to GitHub hosting, but not to put it on the same level as Mercurial: Mercurial and Git are applications/protocols, while GitHub is a hosting service. You should compare application with application and hosting service with hosting service.

<comment><USER3> For most people it is.

Just like we can discuss all day about POSIX, UNIX and various implementations of them, while most people would relate to Ubuntu.

<comment><USER4> Or even worse, describing an entire Linux binary compatibility layer as "Bash on Ubuntu on Windows", like Microsoft originally did.

[https://blogs.windows.com/windowsdeveloper/2016/03/30/run- ba...](https://blogs.windows.com/windowsdeveloper/2016/03/30/run-bash-on- ubuntu-on-windows/)

<comment><USER5> I'm not sure what's objectionable about that blog post? It describes a common scenario for using the compatibility layer (and indeed the main motivation for creating it).

Especially early on when the compatibility layer was only fully tested with a specific version of Ubuntu.

</comment></comment></comment></comment><comment><USER6> The problem with consolidating everything on GitHub is that, to me, you're selling your user's and contributor's clicks. Moreover, GitHub blocks indie search crawlers, and as such is just a content silo. Now F/OSS software licenses, at least of the reciprocal kind, make very much a political statement by their license choice, willingly or not, that is questioned by using GitHub (or any other gateway cashing in on user engagement data) as project host. The really ugly and depressing thing is that F/OSS projects seek networking effects on GitHub, turning a super-powerful and easy dSCM into a centralized hub in a heartbeat; to me, they kindof devalue their own (massive) work by trading it for only the attention value it gets on GitHub, and contributing to the oligopolistic web. Hosting GPL software on GitHub is like sticking fingers in your ears, dogmatically adhering to a licensing taxonomy of yesteryear, while refusing to face today's problems. I'm not sure what incentive to go to GitHub is there for a project with a defacto closed group of developers that's been in the works for years or decades already; it's not like the project seeks indie contributors anyway. Might be better to support [https://codeberg.org/](https://codeberg.org/) .

<comment><USER7> oh wow, this is just a straight up github clone. I actually kinda like that, it's an interface pretty much everyone is used to, and it's good too. Maybe they should change the color scheme or something a little though, so you don't forget you're not just on github, cause if I scrolled down and reopened the tab, I would definitely think I was on github

<comment><USER8> Codeberg is just a hosted Gitea instance (click help in the menu bar and it takes you to the Gitea docs).

Gitea is wonderful and definitely something you can host yourself for friends and family. I've even enabled KaTeX rendering in comments/issues/Markdown files on mine, which is something GitHub probably won't do anytime soon.

I'd definitely check it out.

<comment><USER7> oh huh, I had heard of gitea but I didn't know it was so similar to github. I may actually set up an instance for myself then, I'm using github issues for some personal stuff that isn't collaborative

</comment></comment></comment></comment><comment><USER9> > Host all OpenJDK Git repositories at > [https://github.com/openjdk/](https://github.com/openjdk/).

Good choice from moving to Git [0], very risky move on moving to GitHub. If this was just a mirror then that would be fine but it is moving from Mecurial to Git and then the whole project to GitHub.

They should do what Xfce, GNOME and KDE have done and they have self-hosted their own repositories on Gitlab, which GitHub requires the Enterprise Edition for self-hosting. Not really an option, unless you want to pay for this.

The risks outweigh the pros for GitHub as I have said before [1] and will say it again. Self-hosting over 'centralising everything' on GitHub.

[0] [https://openjdk.java.net/jeps/357](https://openjdk.java.net/jeps/357)

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

<comment><USER10> I work on OpenJDK. Here are some steps we've taken to not overly depend on GitHub:

1\. Issues stay on a self-hosted JIRA.

2\. All PRs get an automatically generated patch that's posted to the mailing list, and all comments are two-way mirrored between GH and the mailing list.

3\. All links to commits in issues don't point directly at GH but at an indirection through our domain.

4\. All bots work on both GH and GitLab

This means that we can move off of GH pretty much instantly if the need arises. But self hosting with GitLab just wouldn't serve our goals. We want speed all around the world, and we don't want to spend resources on administration.

<comment><USER11> _Issues stay on a self-hosted JIRA._ It's really sad as you will have order of magnitude less contributions on jira. Couldn't you autosynchronize github.com issues to jira ones? Otherwise, you're hurting the ecosystem as a whole

</comment></comment></comment><comment><USER12> YEARS ago at a conference I got really mad at Gosling and told him that Java was going to be Open Source one way or another and that they might as well Open Source it now and maybe SUN wouldn't implode.

Well... I was right.

<comment><USER13> How would this have prevented Sun from "imploding"?

Wasn't Sun's main issue that they were selling extremely expensive hardware and a proprietary OS that were completely overtaken by x86 and Linux?

I remember getting to play with the very expensive hardware they'd handout to startups in the late 90's and early 00's. It was good hardware, but it wasn't so much better than the slightly more buggy and much less costly Linux systems at the time.

<comment><USER14> According to Larry Ellison, one of the biggest problems that Oracle discovered when they acquired Sun was that sales compensation was based solely on the value of the sale, with no requirement for the deal to make a profit. Their sales team had been merrily selling them to bankruptcy. [1]

Geniuses with tech, but maybe not so good on the business side?

[https://www.barrons.com/articles/BL- TB-24039](https://www.barrons.com/articles/BL-TB-24039)

<comment><USER15> Reminds of the saying: when a measure becomes a target, it ceases to be a good measure.

Also a good read: [https://www.atlasobscura.com/articles/hanoi-rat- massacre-190...](https://www.atlasobscura.com/articles/hanoi-rat- massacre-1902)

<comment><USER16> Interesting. "But then there started to be curious sightings, all around town: Rats, alive and healthy, running around without their tails.

It turned out the hunters would rather amputate a live animal's tail than take a healthy rat, capable of breeding and creating so many more rats—with those valuable tails—out of commission. There were also reports that some Vietnamese were smuggling foreign rats into the city. And then the final straw: Health inspectors discovered, in the countryside on the outskirts of Hanoi, pop-up farming operations dedicated to breeding rats."

</comment></comment></comment></comment></comment><comment><USER17> Java development is now hosted by Microsoft. :-)

<comment><USER18> I don't exactly know why you are being downvoted, you are absolutely right, albeit a bit snarky.

Microsoft is currently embracing open source and people wonder why that is. Their history around FOSS is worrying and some question if it's part of "Embrace, Extend, Extinguish".

Plus it's very ironic that Microsoft is now the hoster of Java's source code after their failed proprietary Java implementation (J++) which eventually lead to the creation of C# after being sued by Sun.

<comment><USER19> A minor point: while MS has been embracing OSS, they've never been in support of software freedoms ("libre") because it's fundamentally incompatible with their business models. Yes, most OSS software is also libre, but MS doesn't care about that.

<comment><USER3> Neither do many FOSS developers nowadays regardless of the dream, as supermarkets don't take pull requests so they end up adopting dual licenses or putting the golden eggs behind Server walls.

</comment></comment></comment></comment><comment><USER20> How many applications are left that still use Mercurial? I can only think of two big ones, the JDK and Mozilla's entire code base. Are there still others around? Seems like everyone's moving to Git these days, which is great considering I never did get the hang of Mercurial.

<comment><USER21> It's a bit odd that there's such a monoculture around git though, where are the competitors?

<comment><USER22> Should we care about a monoculture around a local used/hosted, open source tool?

I might worry about a monoculture around a hosted service like github, but not git itself.

<comment><USER23> I'm sorry because both the ui and the underlying model of Mercurial is factually Better than git

<comment><USER24> > is factually Better than git

It obviously isn't 'factually' better - that's a matter of opinion not fact.

And in my experience, both Mercurial's model and UI is very over-complicated with far too many concepts. Git has a smaller number of simpler primitives and primitive operations. I think that makes the underlying model of Git better and that's why I prefer it.

</comment></comment></comment></comment></comment><comment><USER25> Will they be moving contributions to GitHub pull requests as well?

<comment><USER11> Yes

</comment></comment><comment><USER26> Having worked with multiple Mercurial repositories managed by a custom tool which is now also being converted to Git, I can confirm that the smart choice for a new developer is to choose Git.

It's no longer "Choose Git or Mercurial?" that is the topic, but instead it is which Git branching model to choose.

<comment> yjftsjthsd-h Why is that? Hg still seems nicer to use in my experience

<comment><USER26> For the usual VCS operations such as adding files, committing and pushing i'd say they are quite similar.

If you're doing really complicated merges (which you should avoid anyway), then yes Mercurial is better in my opinion.

But given the prevalence of Git, e.g. it is much easier to find a new dev with Git experience and also much easier to Google a Git problem, it seems only natural that more and more Mercurial repos will be converted to Git.

</comment></comment></comment><comment><USER27> Lol. I was looking for the openjdk source code. Was confused about current status. Good to know.

</comment><comment><USER11> I wonder how much this will increase contributions and as such how much the JVM will improve :)</comment>


Comparing the Bunyan and Winston Node.js logging frameworks  - <AUTHOR> http://strongloop.com/strongblog/compare-node-js-logging-winston-bunyan/ <comment><USER2> Bunyan and Winston are both decent but they still do too much. If your app isn't a logger itself features like log rotation, log levels, and configurable transports don't belong in your app. Just because you delegate those features to a module doesn't excuse the fact that they're additional responsibilities your app is taking on.</comment>


Why Investors Have Learned to Love Wind and Solar Power - <AUTHOR> https://www.wsj.com/articles/why-investors-have-learned-to-love-wind-and-solar-power-11594027941 <comment><AUTHOR> [http://archive.is/qfpdV](http://archive.is/qfpdV)

"After a stormy, dependent youth, the wind-and-solar-energy industries have matured into boring, profitable middle age. This year's plunging interest rates make that a more appealing proposition than ever for investors. Wind turbines and solar panels, which once proliferated thanks to government handouts, now produce energy more cheaply than coal and natural gas."

</comment><comment><USER2> Seems like the biggest win came from "Chinese manufacturers sell solar panels at a fifth of the price a decade ago.", everything else is just a corollary.

<comment><USER3> I read an article that I can't vouch for mush less dredge up from the murky depths of the internet. But it went like this.

Chinese government circa 2000. So how much would it cost to prove solar technology at scale? Chinese industry.. umm.. err... $10 billion. Chinese government. LOL! Is that all? Haha here's $10 billion.

Chinese industry circa 2005. Um... we spent $10 billion and have proven will scale. Chinese government, so how much to scale? Industry $100 billion. Chinese government. LOL is that all? Here have $100 Billion.

Meanwhile people in the US are still butthurt about losing $500 million on Solyndra.

</comment></comment><comment><USER4> because the Government forces the public to buy it, subsidise its production, invest in its distribution infrastructure, without any requirement to deliver 24/7.

Wouldn't it be great if all businesses could do that.</comment>


Google Cloud Workflow - <AUTHOR> https://cloud.google.com/workflows/docs/overview <comment><USER2> Ugh couldn't they figure out native data planes invoke To cloud functions instead of having to do the dance of url exposing and setting up auth identities for every single functions https endpoint.</comment>


7 Reasons Why European Cities Will Be Better Innovation Hubs - <AUTHOR> http://www.fastcoexist.com/3060446/world-changing-ideas/7-reasons-why-european-cities-are-going-to-beat-us-cities-as-hubs-for-i <comment><AUTHOR> I posted this for two reasons. One, I really do believe old European city centers are better in many ways, but outside the centers they aren't, in my exp, that much different from the US.

The second reason is that I'm interested in quality sources covering of European innovation. Most of the good American sites rarely venture over the border, let alone the oceans.</comment>


Ask HN: Geeks moving to the Netherlands - <AUTHOR>

Hey guys, my roommate and I have been mulling over this idea for a short time and wanted to get some input from the wider community, in hopes of getting more relevant information than Google is able to provide.
Background: We're both Canadian and 27 years old. He's a web developer, and I'm a Linux systems administrator. We both have a good deal of experience in our respective fields, though I also have experience in web development; neither of us, however, have university educations.
We can apply for working holiday visas, which get us into the country and let us work without having to go through the approval process, so getting into the country isn't the problem. What's tricky is that we don't know anything about the tech community in the Netherlands, and there's probably a lot more that we don't know we don't know.
I was hoping that the HN community could give us some pointers. What kind of jobs are out there? How do they pay? Where are they? Should we be looking in Amsterdam or Rotterdam or Den Haag, or perhaps somewhere else? What's the work situation like for IT people? Do people ever/often work from home? Is there anything else we should know? <comment><USER2> I would like to know: Why the Netherlands? Any specific reasons?

I am sorry that I can not really give you any good pointers. I am German, all I can say that I consider my neighbours to be very friendly people.

Perhaps it is a good idea to contact xs4all <http://en.wikipedia.org/wiki/XS4ALL> or perhaps send a mail to Rop (prominent hacker; seems to be a very nice guy) <http://rop.gonggri.jp/>

If it helps: from my experience most younger people do speak English.

<comment><AUTHOR> No specific reason for the Netherlands, other than the easy availability of a working holiday visa.

I'd forgotten about XS4ALL, I'll take a look at them and see what they have to say.

</comment></comment><comment> tomh- I'm from the Netherlands and can recommend you to settle down in Amsterdam. There are a lot of tech startups/companies located there which have more interesting jobs than the local consultancy branches of big international corporations. If you can't find interesting jobs in Amsterdam there are various cities within a very reasonable distance such as Utrecht (25 min by train).

Some companies offer opportunities to work from home for 1 day a week.

Personally I'm a little bit jealous on the tech communities of other countries. They tend to have more interesting jobs and companies than over here. Search on crunchbase for some of the startups in Holland. Else you will most likely end up in some consultancy job or web design agency, which is fine, but it has to be your thing. For linux sys admins Amsterdam is also perfect since the majority of big hosting companies in Europe have servers in some datacenter in Amsterdam.

There are some ruby meetups around Amsterdam too as far as I'm aware, you might want to search for amsterdam-rb.

</comment><comment><USER3> You should also look into the '30% tax ruling'

Basically the employer can reimburse the extra territorial costs of the employee tax free. To be able to do this the employee must hand over all the receipts and the employer must check and approve them. This can lead to a lot of work, especially if more employees are in a similar situation. To make it easier employer and employee can request the tax office (foreign tax office in Heerlen) to grant the 30% ruling to the employee for his activities for the employer. This way the employer can, once granted, pay out a tax free allowance of (roughly said) 30% of the salary of the employee. The 30% allowance will be included in the salary in such way that the costs for the employer will not be higher, while the employee has a higher net salary.

</comment><comment><USER4> I'm in The Netherlands, and I recently checked for jobs: most are mid-career level in Java, C#/VB(6/.net) and PHP.

Work is concentrated around the cities Amsterdam, The Hague, Rotterdam, Eindhoven. Most jobs I've seen currently are at small companies which may turn out a bit of a hassle since cultural differences can cause problems.

Telecommunications here provide a dense high-speed cable-network even in rural areas, but workfloor-traditions require lots of face-time.

Entrepeneurs are not keen on telecommuting by their employees. Large corporations are probably better organized so you can do work from home, but the coffee is usually free and commuting distances are rarely more than an hours drive (50km).

Wages for webdevelopment is between 2500 and 3500 euro per month for mid- career.

Look out for housing: it's extremely difficult to find a affordable and decent apartment - especially in the bigger cities. You could end up paying 1200 euro per month for a 3-room attic.

A friend of mine used to rent rooms to temp workers for a reasonable price. However, he is planning to move to Canada next year.

</comment><comment><USER5> Check out unduchtables (<http://www.undutchables.nl/>) they have jobs for people like you, and they can probably help you with a lot of the other stuff. compared to Canada you'll find that housing is quite a bit smaller than you're used to. Especially if you want to live in or near the centre of any larger city. However, I would encourage you to compromise on space when searching for housing, rather than searching a large house in an unfortunate location. The city centres are a so much nicer place to live than the outskirts (in my opinion any way). Finally, cars are very expensive here, and trafic (especially rushhour trafic) is terrible. Being able to use public transport or a bicycle to get to work is a big (BIG!) plus, so try to look out for that when looking for work and a place to live.

</comment><comment><USER6> Immigration policies have toughened up in recent years but coming from Canada it shouldn't be a problem.

Developers/administrators are needed in all major cities but I think Amsterdam would be your best bet. It's the most international city and certainly has to offer most culturally.

I don't know how Canadian taxes compare to those in Holland but in general taxes here are pretty high. You'll get quite a bit in return though.

I'll refer you to a recent article in the NY Times that details on the experiences of an US expat in Holland: [http://www.nytimes.com/2009/05/03/magazine/03european-t.html...](http://www.nytimes.com/2009/05/03/magazine/03european-t.html?_r=1)

<comment><AUTHOR> Thanks for the link! Taxes in Canada aren't too unreasonable (sales taxes are at about 12%, income taxes in my tax bracket are about 25%).

</comment></comment><comment><USER7> If you come to the Netherlands, you will be qualified as highly-skilled migrants. In this case, you can't work where ever you want. There is a list of companies, institutions and organisations which have submitted a statement regarding the admission of highly skilled migrants. You can find it here: [http://www.ind.nl/en/inbedrijf/wonenenwerken/kennismigranten...](http://www.ind.nl/en/inbedrijf/wonenenwerken/kennismigranten/organisaties_in_procedure.asp)

I would recommend Utrecht as a city to live because of its central location. With in one hour you can commute to many major cities.

<comment><AUTHOR> My understanding is that if we show up as working holiday participants, we can work wherever, but afterwards you can apply for a skilled migrant visa which is different.

</comment></comment><comment><USER8> Interesting that you are having this idea... After reading an article that came through HN about the Netherlands a while back I had the same idea! Unfortunately I am a little tied down by friends and my girlfriend, but at some point it is still something I would like to do.

Where abouts in Canada are you? I'm in Toronto. Toronto HN meetup?

<comment><AUTHOR> In Vancouver at the moment, not Toronto. I'd be tied down as well, but I'm bringing my best (guy) friend and my girlfriend with me. Makes it easier. ;)

</comment></comment><comment><USER9> My friend sometimes visits Holland for some projects. He manages development works here in İstanbul / Turkey and goes to Holland to deploy their solutions on the clients sites. He's mainly an expert on DB-systems and seems satisfied with that job because he keeps on doing it for years. I don't know anything more about Holland.

</comment><comment><USER10> Last summer I did an internship in Den Haag with Streamtech. (<http://www.streamtech.nl>) I don't know much about the job situation, but it's a great place to live.</comment>


Show HN: Fuzzpy, a fuzzer for testing CPython - <AUTHOR> https://mail.python.org/pipermail/python-dev/2016-February/143441.html <comment><USER2> Because there is nothing for people to try out and play with, this seems to be more of a "regular" announcement type story than a "Show HN".

<comment><AUTHOR> Sorry if it wasn't clear by linking to a post instead of the repository itself. There is indeed something to try out, here's the git repo along with details on how to build and run the tests and create new tests: [https://bitbucket.org/ebadf/fuzzpy/](https://bitbucket.org/ebadf/fuzzpy/)

<comment><USER2> Curious, if you are the author...that's another aspect of the "Show HN" guidelines.

<comment><AUTHOR> I am.</comment></comment></comment></comment>


Talkyard: Open-Source forum software – a StackOverflow, Reddit, Disqus hybrid - <AUTHOR> https://github.com/debiki/talkyard <comment><USER2> The ability to function as either a standalone forum, or as a disqus style comment add on for an existing blog is neat.

Is there documentation somewhere? I can see it has some kind of spam protection by skimming the source code, but I don't see any docs.

<comment><USER3> Sorry, there is barely any documentation yet.

What things would you want me to focus on, when adding documentation?

(How would you like to use it / maybe integrate with sth else?)

<comment><USER2> No worries. I was just curious, having done some forum admin in the past...how you approached spam. I would guess a "getting started" doc would be the #1 priority. Especially since the server is Scala, and many may not have worked with a JVM.

<comment><USER3> Getting started, from the point of view of a site admin / moderator?

(Rather than how to install the software? For that I hope the readme file works ok.)

Hmm, you mentioned Scala and the JVM — I'm wondering if you have in mind "Getting started" with editing the source code

(I'm curious about what forum software you used in the past, as an admin, and how did you like it?)

</comment></comment></comment></comment><comment><USER4> That's not a FOSS StackOverflow, it's a cross between several platforms.

For those interested, There's already another initiative for a free, non- commercial, community-governed StackExchange alternative, called codidact: [https://codidact.org/](https://codidact.org/)

I don't know that it's good (or bad), I just know there's been planning work going on around it, following the recent upheavals and resignations on the StackExchange network.

<comment><USER5> Looking at that homepage, I have zero idea about what it does or even looks like. It seems to be all mission statement fluff and no description of the actual tool.

<comment><USER4> It's still in a very early stage. But there's a forum with a bunch of activity, and it sounds like people are writing code.

</comment></comment></comment><comment><USER6> Gets points with me for honesty in the comparisions page ([https://www.talkyard.io/compared-with](https://www.talkyard.io/compared- with))

<comment><USER3> Thanks. (I suppose it's still a bit biased — not so easy for me to be completely impartial.)

(And also I'm less familiar with those other tools; there're good things about them that I don't know about)

</comment></comment><comment><USER7> Anyone know how the self-hosting experience is? Also whether it has Activity Pub support? If this reaches it's potential, it would be great if it were part of the Fediverse.

<comment><USER3> From what I've heard, people like the auto self-upgrade feature.

No Activity Pub support, ...

... It'd be nice if some day in the future, Talkyard could pull in toots (tweets) from Mastodon and show as posts in a discussion forum topic, or as blog post comments (after having been approved by a moderator).

What Fediverse software do you use the most? Like the most?

</comment></comment><comment><USER8> Love the idea overall, at my job we have a total mess of Jira + Gitlab + Confluence + Confluence Questions + Sharepoint + Mattermost.

I believe there are efficiency gains to be had from having a unified platform that is self hosted.

<comment><USER9> Have a look at JetBrains Space.

<comment><USER10> Space looks super promising, but I looked at the EAP in late January and it seemed far from ready for actual use. It seemed like it needed another year in development to flesh everything out. I really hope it comes together like they plan for it to. It'd be nice to switch from our stack of Redmine, 2 instances of GitLab, Slack, and a custom wiki solution.

</comment></comment></comment><comment><USER11> > You need about 6 GB RAM for the development environment (whereas the > production environment needs about 2 GB). And an internet connection — > you'll download perhaps 1 GB Docker images and other files.

Scala/JVM - a bit too heavy for something simple as this. The system requirements are ridiculous. Why not implement similar things in Go? Gitea vs GitLab performance and ease of deploy is the best showcase for these tasks.

<comment><USER3> > Why not implement similar things in Go?

Yes that's what I would have done, if I were to start this project now. Well, not Go, but Rust.

</comment></comment><comment><USER12> I've been using the hosted version of this ([https://www.talkyard.io](https://www.talkyard.io)) on a blog for a while and have been very satisfied. I like how the threaded discussion looks, and also like the live preview edit box which works well for long form comments.

<comment><USER13> I'm not a fan of the style that threaded discussions have (too much padding, and I'm not sure about arrows too), but I always wanted to experiment with that sort of arrangement of messages, where long chain of one-on-one replies does not get pushed to the right but instead have some sort of linear representation. Will definitely have a closer look on that software.

Edit: what this implementation of threads lacks though is an ability to fold all sibling messages before the one that I'm interested in, so that I can have a quick look at the context and avoid a lot of manual scrolling and folding myself. Most implementations (like here on HN for instance) only do folding of child messages, which I personally find a bit less useful.

<comment><USER3> > too much padding

I've been thinking about that — after all, Reddit with its concise design, is pretty nice.

I'd want there to be an optional concise theme, so Talkyard could look more like HN or Reddit, for those who prefer that.

> fold all sibling messages before the one that I'm interested in

Where could be a good place to place a Fold-all-siblings button? There is a Fold-whole-thread button already at the top of each post, to the right of the author name (it looks like: ^ and to un-fold: v ), ...

... but if one has scrolled down a bit, and want to fold all siblings, when the parent post is a bit away, then, could be impractical to have to scroll up to it, and click a button up there?

Maybe clicking the arrow could open a power user menu, with "Scroll to parent" as the default, and also a "Collapse siblings" button?

Example: If you go here: [https://insightful.demo.talkyard.io/-9#post-24](https://insightful.demo.talkyard.io/-9#post-24) and click the arrow to the left, maybe this poweruser popup menu could open?

And / or you have other ideas? :- )

<comment><USER13> I think "show me every parent message prior to this one" would be a better way to describe the feature that I occasionally miss in every implementation of threaded conversations. Sibling folding is just one of the ways to implement that.

The problem is that in very large threads it's quite hard to remind yourself about the context of the conversation that you're currently reading: you either need to scroll a lot to get to some grand-grandparent and back, or start manually folding messages above, one by one, subthread by subthread, until the context gets uncluttered.

Let met illustrate what I was describing: [https://i.imgur.com/pm1SIRJ.png?r](https://i.imgur.com/pm1SIRJ.png?r) (You could imagine way more replies in those shaded areas—a situation that is not that uncommon here on HN.)

<comment><USER3> > remind yourself about the context of the conversation > Let met illustrate > [...]

Thanks for showing / clarifying. I have the precise same problem (here at HN mostly).

> "show me every parent message prior to this one"

> Sibling folding is just one of the ways to implement that.

3 ideas:

1\. What if, at the top of the page, there were buttons like "Scroll to parent"? So that when you look up, to see if you can see the parent post there somewhere, then, instead you see a "Scroll to parent" button. — Once one has scrolled to the parent, maybe to the grandparent, there's a Back button to scroll back down and continue reading.

2\. What about keyboard shortcuts? If you click 'P', the page could scroll to the Parent. 'P' once more, scrolls to the grandparent. 'B' scrolls back down to the parent, 'B' again scrolls back so you can continue reading. (But how would Talkyard know which post, of many, you're reading, if the screen is large? How know which parent, of many possible, you have in mind? Maybe there could be one Scroll to Parent button per indentation depth)

3\. A button "Show ansectors", for every post. Click it, and Talkyard would popup a dialog, with all ancestors (parent, grandparent, ...) and you could scroll up-up-up inside the dialog and have a look, and close it, once you're done reading — without affecting your scroll position on the "real" page.

<comment><USER13> > 2\. What about keyboard shortcuts?

That just would not work on smartphones.

> But how would Talkyard know which post, of many, you're reading, if the > screen is large

One way is to implement arrow-key navigation and highlight current message in some way (border, bgcolor or whatever), but I'm not sure if that would work well outside of some special keyboard-centric navigation mode designed to cater to fans of software like mutt or vimperator.

Zulip comes to mind: in there selected message affects what topic people are going to reply into, and if people are not used to that feature (or to the idea of chats with topics in general), they can easily dismiss or fail to notice that very selection and treat the input box just like they would that in any other chat app, which would result in misdirected replies. Some teams are fine with spending some time babysitting the conversation (change topics of other people's replies after the fact, teach colleagues how to use that particular software etc.), but others would just switch to simpler software, with flatter conversations and/or less navigation features.

> 1\. What if, at the top of the page, there were buttons like "Scroll to > parent"?

Do you talk about the very top of the whole page (scroll position 0) or about sticky header at the top of the viewport? If it's the latter, then it's going to be as problematic as keyboard shortcuts (i.e. can't decide which message's parent we need to jump and where to return to).

> 3\. A button "Show ansectors", for every post. Click it, and Talkyard would > popup a dialog, with all ancestors (parent, grandparent, ...)

That implementations seems to be both the most robust and the easiest to implement.

<comment><USER3> >> A button "Show ansectors"

> That implementations seems to be both the most robust and the easiest to > implement

I think so too. I'd like to implement it.

If you want to, you could send me an email (see my profile)? Then I can send you an email, once I've built this ( >= 2 weeks), if you'd like to see how it works & maybe have feedback

\\* * *

> arrow-key navigation and highlight current message in some way

I've thought about that some times. Could also be nice for people with accessibilyty problems? (e.g. shaky hands, keyboard navigation better than the mouse pointer)

If the screen is small, e.g. on mobile, Talkyard could probably be pretty certain which post one is currently reading, so might work ok well, automatically.

> not sure if that would work well outside of some special keyboard-centric > navigation mode

Yes, maybe this would be for power users and people with disabilities.

> but others would just switch to simpler software, with flatter conversations > and/or less navigation features

I suppose such power user navigation things, should be disabled by default.

\\* * *

> sticky header at the top of the viewport?

Yes

> going to be as problematic as keyboard shortcuts (i.e. can't decide which > message's parent we need to jump and where to return to).

This is also related to highlighting the post one is reading — there'd be one specific parent post to jump to, when pressing 'P'(arten).

Could also _experiment with_ mouse pointing on a post, to make it the keyboard target. And then pressing 'P' to jump to its parent.

\\* * *

> Zulip comes to mind: in there selected message affects what topic people are > going to reply into [ ...] result in misdirected replies

Now I'm wondering if this is a reason why e.g. Mattermost is more popular than Zulip.

Maybe it's not only that Mattermost is better at marketing (are they?) but also that they are _less_ "power user focused"?

<comment><USER13> > If the screen is small, e.g. on mobile, Talkyard could probably be pretty > certain which post one is currently reading, so might work ok well, > automatically.

Modern smartphones easily fit a couple of comments on a screen, at least here on HN and on that forum that I mentioned in the other thread. Heck, I just dug out a 3rd-gen iPod Touch just to see how these websites look on its comparatively small screen. The result is that even devices with comparable screens (think iPhone 4S and other phones of that time) can occasionally fit a number of one-liners or, depending on a font size, a couple of longer comments.

The trick might still work though if you prefer much larger fonts, but otherwise smartphones don't make this feature easier to implement.

\----

Speaking of mobile: I once experimented with showing replies one at a time. It did a good job at keeping the context around, looked and worked well on mobile devices, but I'm pretty sure it would make harder to find new comments, skim over discussions (and, say, find interesting/insightful comments just by scrolling around), and probably worsen experience in some other way. You can have a look over at [https://vthriller.github.io/tmp-hn- comments/carousel.html](https://vthriller.github.io/tmp-hn- comments/carousel.html)

> Could also experiment with mouse pointing on a post, to make it the keyboard > target. And then pressing 'P' to jump to its parent.

People often prefer keyboard navigation because they want to minimize palm movement as much as possible, and that means reduction of mouse usage as well. Aside from that, if mouse is in your hand already, you might as well click on an on-screen button near the comment—that would be faster than bringing palm back to keyboard.

You might want to try to mitigate that by switching binding to a key on the other half of the keyboard, so that it can be pressed with the other hand, but even then only a handful of people that spend hours navigating through threaded comment jungles will teach themselves to use both input devices to aid reading threads, and it's hard to think about anyone that can fit into that category. (At first I thought about on-duty moderators of traffic-heavy forums, but they don't usually need that much of a context to notice violations.)

However, you made a good point about accessibility earlier: people with some sort of impairment might win from that kind of hybrid navigation mode. But would it be easier for them than, say, keyboard-only navigation? This area needs much more research.

> Maybe it's not only that Mattermost is better at marketing (are they?) but > also that they are less "power user focused"?

Familiarity plays a significant role here. There's plenty of chat apps that look and behave in a similar way, so it's easier to pick up or switch to another one if you so desire.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> I've been looking for a forum software that would let me have verified identities for my users, either restrict the forum only to verified users or even let users optionally verify themselves, and I haven't found one yet.

Have you considered adding a feature like this?

<comment><USER15> If you can write some code discourse can do it. I've done it and it's easy [https://meta.discourse.org/t/official-single-sign-on-for- dis...](https://meta.discourse.org/t/official-single-sign-on-for-discourse- sso/13045)

<comment><USER14> Nice, I see the link talks about SSO with Discourse but not sure which service you use to do the identity verification. Could you say a little more about how you did it?

<comment><USER3> @jimkleiber, Discourse, and Talkyard too, also have settings for Require- manual-approval-of-new-users. And restricting signups to whitelisted email domains.

How will / do-you-have-in-mind-to verify people's identities?

Talkyard (like Discourse) has Single Sign-On via API — so you can have an external piece of software that somehow verifies people's identities, and Single Sign-On connects to Talkyard and upserts those verified users (like @nerdbaggy wrote).

With Talkyard, the SSO API looks like this: Your own piece of software sends `POST talkyard-server/-/v0/sso-upsert-user-generate-login-secret` plus JSON for an external user. Then you get back a login secret, and you can redirect the end user's browser to `talkyard-server/-/v0/login-with- secret?oneTimeSecret=...`

\\* * *

@jimkleiber you asked @nerdbaggy:

> not sure which service you use to do the identity verification. Could you > say a little more about how you did it?

I'm thinking @nerdbaggy meant s/he Single Sign-On integrated with Discourse? But maybe didn't actually verify people's identities. Those are two different things, and I'm thinking likely you'll need to come up with your own way to verify people's identities (?)

</comment></comment></comment></comment><comment><USER16> Have been running Talkyard as a sandbox for a month and it's great.

Will you be bringing on other developers, opening up to other contributors? My only worry is the dependence on just you KajMagnus. Amazing job so far!!

<comment><USER3> Thanks :- )

> bringing on other developers, opening up to other contributors?

Yes that's the plan, definitely

This far, some people have contributed translations. I think right now it's a bit complicated to get started with writing source code and running tests, and there are some refactorings and renames I started but didn't finish yet, making the source code directory structure a bit confusing.

(If you have ideas about how / where to find people who might want to try to contribute, it'd be interesting to hear)

<comment><USER16> Would it be possible for you to list out some of the easier tasks that you have on your to-do list, and solicit coders to work on those. i know that bringing in other devs is a huge step, but you've put together a very solid platform, and it'd be great to see it keep growing.

<comment><USER3> > list out some of the easier tasks that you have on your to-do list

I think that's a good idea. Maybe the next steps for finding contributors, isn't to find a place on the Internet where many want-to-be-contibutor-to- something hangs out, but instead have better docs and to-do lists for those who find their way to Talkyard already somehow.

> bringing in other devs is a huge step

I think the first contribution tasks would be to just find out where they get stuck, when they try to get something done. And then I'll remove such "roadblocks" one at a time, until people can actually get things done. — Maybe this means many small steps :- )

</comment></comment></comment></comment><comment><USER17> If only it was also a wiki.

<comment><USER3> It can work as a wiki, if one edits the per category security settings, which look like so:

        These people: [All Members  v]
        may do this:

          :
          [ ] Edit other people's topics
          [ ] Edit others' comments
          [x] Edit one's own stuff
          [ ] Delete others' topics
          :
          :

This: ` [All Members v] ` is a choose-group dropdown. There're custom groups and trust level groups, e.g. Full Members and Trusted Members.

<comment><USER18> Two important aspects of being a wiki replacement, especially at a larger scale:

\- Group ownership of particular topics or sections of topics. This allows for things like "anyone on the team responsible for project X can edit/moderate things regarding their project"

\- History of edits made to topics, linked to author. It's incredibly valuable organizationally to be able to see the evolution of knowledge, as well as provides protection from content deletion, both accidental and malicious.

<comment><USER3> Thanks for the feedback! I've never edited a wiki as a member of a large organization.

Talkyard does the things you mentioned, although it's not so discoverable: Most people don't think about clicking their way to the Category | Security settings, and looking at the checkboxes, and thinking about how to combine them to create a Wiki.

Maybe Wiki features could be listed on the homepage, or at least in a feature matrix. And, when creating a new forum topics category, one could get a question about if it's going to be a Wiki topics category.

* * *

There's one Wiki feature that Talkyard lacks though: Easy linking between different pages. At Wikipedia, for example, one types: '[[Target page name#Target section|Link text]]' — there's nothing like that in Talkyard.

A wiki main page shortcut link somewhere would be nice too (e.g. in the left hand sidebar).

(I'm curious about if you use wikis where you are now, which Wiki software, and how do you like it?)

</comment></comment></comment></comment><comment><USER19> Looks great. Does it have multilingual support?

A few remarks:

\- It would be nice to have a button to collapse replies for a given comment, but not the comment itself.

\- On mobile (andoid), it is bit laggy.

Thank you for open-sourcing.

<comment><USER3> There's multilingual support yes, and user contributed out-of-date translations to Brazilian Portuguese, Russian and Polish

(I keep adding new buttons and labels, and renaming things, so the translations get out-of-date / fallback to English.)

There's RTL support but no Arabic / Hebrew / etc translations yet.

* * *

> It would be nice to have a button to collapse replies for a given comment, > but not the comment itself

Yes :- ) Do you mean 1) for yourself only, or 2) for all site visitors (so those replies would be collapsed by default, for everyone) ?

Actually there was a feature for 2, in the past, but it's disabled now though. The database fields are still there, plan to make that code work again some time in the future. (Then you could manually "curate" a discussion, by collapsing all replies to certain posts, to make the reading experience better for your site visitors.)

* * *

Can I ask which Android version and phone do you use? — I optimized Talkyard a while ago, by looking in Chrome Dev Tools, but this was on my laptop.

What things lag the most? (Some specific button(s) or animation or scrolling or ... ?)

<comment><USER19> > Yes :- ) Do you mean 1) for yourself only, or 2) for all site visitors (so > those replies would be collapsed by default, for everyone) ?

Rather for myself, but as an account setting so that I don't have to collapse them manually for each thread. Actually it stems from something that bothers me with HN: when there are a lot of nested replies, I lose track of the which comment corresponds to which parent. For example, try reading this thread : [https://news.ycombinator.com/item?id=22705222](https://news.ycombinator.com/item?id=22705222), I find it difficult.

If there are 5 comments (level 0), that each has 10 replies (level 1) and each one of them has 10 replies (level 2), I wish I was able to collapse level n>0 replies to read the comments first, then be able to unfold level 1 replies for the first comment, while keeping level 2 hidden, and so on. This might not be the ideal solution, maybe simply the way you added arrows to replies would make the above thread easier to read.

> What things lag the most? (Some specific button(s) or animation or scrolling > or ... ?)

I just found it's not specific to android (I'm using Android 10 on a recent galaxy smartphone). Mostly animations. On the desktop version, If I click on the plus button near 'Chat Channels', the login window is show progressively, and the background is dimmed in way that 'feels' slow. Also when I unfold a collapsed reply, the page moves slowly (is there a reason it moves ?). When I click reply, a window is shown, 'loading draft...' appears then disappears quickly and then the preview is highlighted, it somehow feels slow.

<comment><USER3> > I lose track of the which comment corresponds to which parent

Me too, here at HN. When I'm reading on my phone, looking at reply R to a parent post P somewhere far above, and I want to re-read P — then I place my finger to the left on the screen, at the current indentation depth, and scroll up up up, past the even-more-indented-replies above ... until the indentation depth becomes 1 step less than my finger. Then I've found the parent comment :- )

Problem is, how do I find the reply R again. And, sometimes I accidentally move my finger, losing track of both R and P.

In Talkyard, one can instead click the arrows to jump to the parent, and the Back to jump back to the reply R — here's a demo about that: [https://www.talkyard.io/-32/how-hacker-news-can-be- improved-...](https://www.talkyard.io/-32/how-hacker-news-can-be- improved-3-things)

If you want to try this yourself, go here: [https://www.talkyard.io/-71#post-16](https://www.talkyard.io/-71#post-16) then click the long arrow to the left, then click Back at the bottom of the screen.

> unfold level 1 replies for the first comment, while keeping level 2 hidden

Something like that, yes. At the same time, since popular / "good" replies are sorted first, I think it can make sense to unfold a few of the level 2 replies, for the topmost level 1 replies — so one needs to click fewer times, to read the "most interesting" things. But these are minor details; I agree with the overall idea.

> Rather for myself, but as an account setting

Ok. There're also custom user groups — so a site admin could configure this setting for the Everyone group, and then one could override it, individually.

\\* * *

>> what things lag the most

> Mostly animations [...]

Ok, thanks for the detailed feedback. I think the code is doing things too much sequentially — like, first loading any draft — an X * 100 ms round trip to the server. Then scrolling the post one replies to into view, Y * 100 ms, then scrolling the preview into view, Z * 100 ms (so both are visible at the same time, if possible). — If instead everything happened at once, it'd seem more instant.

(Also, there're editor Javascript:s that JIT-compiles and runs the first time one opens the editor.)

</comment></comment></comment></comment><comment><USER20> Have you worked on Discourse as well or just borrowing heavily from their styles because you like them?

<comment><USER3> > Have you worked on Discourse

No

> because you like them?

Yes (the software, ... and the company & founders & employees I like too, & their visions)

</comment></comment><comment><USER21> why does the code use reactjs AND jquery ? [https://github.com/debiki/talkyard/blob/master/package.json](https://github.com/debiki/talkyard/blob/master/package.json)

<comment><USER22> What? Is this really controversial? Sometimes you need a UI library, sometimes you need really quick interactivity to toggle a menu. I use alpine.js on my marketing pages, and I use vue/svelte within sections of my app.

<comment><USER23> Using them on separate pages is fine, but using React and jQuery on the same page is usually not a good idea since React needs to "own" its slice of the DOM and changing things in there with jQuery could cause weird bugs.

But anyway, it's impossible to tell from just the package.json file whether React and jQuery are being used on the same page, or just both used in different parts of the app.

<comment><USER3> Now jQuery is gone (see my other reply just nearby, in this same comments tree).

Actually, when I was starting with React, then for a while Talkyard did use both jQuery and React on the same pages (not a good idea, I agree). I was careful to avoid the bugs you have in mind from happening, so that wasn't a problem,

however, loading & using both libs wasn't good for performance — just parsing and executing the 30 kb min.js.gz jQuery bundle took maybe half a second? a second? on mobile phones, back at the time (2.5 years ago).

<comment><USER22> I was a very early adopter of React at my company (fall 2013) and IIRC, using jQuery with React was still in the docs.

edit: and it still is today, just a tad updated: [https://reactjs.org/docs/integrating-with-other- libraries.ht...](https://reactjs.org/docs/integrating-with-other- libraries.html)

<comment><USER3> Same here :- ) Just a bit later, fall / winter 2014.

Thanks for the link. I think I saw that page, or sth similar, back then. ... Now I found an old question I posted at StackOverflow about jQuery + React: [https://stackoverflow.com/questions/27646347/is-it-okay- to-d...](https://stackoverflow.com/questions/27646347/is-it-okay-to-do-all- these-jquery-things-to-a-react-js-dom-tree)</comment></comment></comment></comment></comment></comment>


Ask HN: How someone can start work on/find part-time freelancing projects? - <AUTHOR> For those who work on part-time jobs as contractors on freelancing projects. How can someone with professional experience get started and find one of both consulting & software freelancing projects ?. I have some free time, and I would like to know how can I start finding these jobs. I tried using ODesk, but unfortunately, the level of projects submitted by most clients is vague (without clear milestones), in addition to that the level of price competition is very low (for someone living in expensive city). I tried also "who is hiring", but most of companies look for full-time employees, not seasoned data engineerS/data scientists, who can work on part-time projects (approximately: 5-4 hours a day). Please, share your experience with us ? <comment><USER2> [https://news.ycombinator.com/item?id=10492087](https://news.ycombinator.com/item?id=10492087)

whoishiring also posts for freelancing gigs</comment>


Etcd 3.4 - <AUTHOR> https://kubernetes.io/blog/2019/08/30/announcing-etcd-3-4/ <comment><USER2> I really wish Kubernetes would make it's storage backend pluggable or the k3s folks would push their work to allow a SQL database as the backed upstream. Then you could just back Kubernetes with some Cloud SQL offering.

<comment><USER3> I'd like that too (I trust SQLite more than almost anything), but it would prove difficult in some respects. Kubernetes intimately relies on etcd's watch capability. k3s does this with polling, which works fine, but some consideration would need to be given as to how to most effectively replicate that behaviour (eg. would LISTEN/NOTIFY work well on postgresql? I have no idea).

Further out, a case can be made that the whole business of reconciliation is one of event stream processing. My gut feeling for some time has been that the intersection of event stream and bitemporalism[1][2] makes a lot of the problems that motivate consensus protocols approximately moot. Done properly it might be possible to do away with the need for a master for a lot of things, which would improve scalability, failure tolerance and security.

[1] or Johnston's tritemporalism, I don't yet feel confident enough in my understanding to say.

[2] I am not alone and probably not the first to think so. For an example of a streaming-oriented bitemporal store, see Crux: [https://juxt.pro/crux/index.html](https://juxt.pro/crux/index.html)

</comment></comment><comment><USER4> One of the failure conditions is having a new follower read data off of the leader as it bootstraps, which adds extra load on the system.

It seems like a follower could pull the initial snapshot off of another follower to start instead?

</comment><comment><USER5> Why is client-go sending http requests to kube-apiserver? I wonder if a message queue would have been a more reliable and scalable transport option.

<comment><USER6> Sometimes you need or want synchronous communication.

<comment><USER5> With client-go one is often watching for notifications. Looks like what you would do with an mq.

<comment><USER7> The way kubernetes uses this streaming is to keep datastructures up to date in memory. A node needs a list of all its pods, so it makes a list call at startup and then starts a watch from that resource version onwards to keep the in-memory list in sync.

The whole architecture is designed such that the etcd storage backend could be swapped out completely and the only thing that would care is the api servers. Much like the transition from etcdv2 over http with json objects to grpc with etcdv3 and protobufs.

You can also create alternative implementations of kubelet, kube-proxy, the scheduler, the controller-manager, etc because they all access the data via the api server's well-defined public facing API and anyone using the API can easily watch objects in any programming language using the same semantics as the rest of the API. It also works from browsers, etc.

Additionally, kubernetes supports RBAC for nodes themselves such that they can only see updates for objects related to pods running on them - you wouldn't want any node to be able to watch all secrets in the cluster needlessly.

Overall, I think we'd lose a lot if kubernetes switched to having all of its components access the data store directly. Every operator ultimately needs the same things the controller-manager, scheduler and the other kubernetes components need

<comment><USER5> I think in addition to the initial full list it has to do additional full list requests upon expiration of the resync intervall.

I didn't ask about accessing etcd directly, i just wonder if http is the best transport for this case.

</comment></comment></comment></comment></comment><comment><USER8> Which k8s version will use this version by default? Has it been tested with any current versions?

<comment><USER9> According to [https://github.com/kubernetes/kubernetes/pull/81434](https://github.com/kubernetes/kubernetes/pull/81434) , some of the bugs will be fixed in k8s 1.16 with the update to etcd 3.3. All previous versions are affected.

</comment></comment><comment><USER10> Note that the etcd project ignored this report of a data loss/corruption bug on MacOS:

[https://github.com/etcd-io/bbolt/issues/124](https://github.com/etcd- io/bbolt/issues/124)

<comment><USER11> IMHO, why shouldn't they? MacOS is not a server OS, it's a consumer OS. Doesn't matter if it's derived from the FreeBSD family. Apple will prioritize user experience over anything else. Anyone working on a server app is more concerned about Linux or Windows first and then the pure BSDs such as FreeBSD/OpenBSD and everything else is maybe.

</comment></comment><comment><USER3> > _For instance, a flaky (or rejoining) member drops in and out, and starts > campaign. This member ends up with higher terms, ignores all incoming > messages with lower terms, and sends out messages with higher terms. When > the leader receives this message of a higher term, it reverts back to > follower. This becomes more disruptive when there's a network partition._

I'm glad this has been fixed, considering that one of the use cases for using partition-tolerant data stores is to tolerate partitions.

Cloud Foundry used earlier versions of etcd and this category of problem was the leading cause of severe outages. To the point that several years of effort were invested to tear it out of everything and replace it with bog-ordinary RDBMSes.

Disclosure: I work for Pivotal, we did a lot of that work, but I wasn't at the front line. Just watching from a safe distance.</comment>


How Science Makes "Rick and Morty" Great - <AUTHOR> http://nautil.us/blog/how-science-makes-rick-and-morty-great <comment><USER2> I'm getting pretty tired of Rick and Morty fans blowing the greatness of the show way out of proportion. I love the show, but not because it's "smart" or "nihilistic' or because it references science. It's a zany cartoon with witty dialog, and it's hilarious, but to claim it's more profound than that has so far proven to be little more than reading too far into it. Referencing pop culture isn't "smart" in and of itself, and it doesn't require extraordinary intelligence to recognize.

By the way, Rick is not a nihilist. He might be very careless and ambivalent, but that doesn't translate to any form of nihilism I'm aware of; in the case of the show, he's definitely not en existential nihilist, and it's arguable that he's not even a moral nihilist. The rest of the characters on the show are not nihilists; myopic would be a more accurate description. You want a really nihilistic show? Watch Seinfeld.

<comment><USER3> _> You want a really nihilistic show? Watch Seinfeld._

Eh? Do you mean nihilist in the (meta) sense that the show "is about nothing" and has no inherent meaning? Because none of the characters on Seinfeld strike me as nihilist either.

That's not to say I disagree with your point about Rick and Morty having nihilist characters; I don't think Rick is a nihilist, but I also don't think nihilism translates well to film and television. It's difficult to maintain compelling character development that can bring in a large viewership if a character is truly nihilist, in my opinion.

For my purposes I don't believe it's enough to have a character profess adherence to existential nihilism - I don't agree a character is nihilist unless they also act like it, and that is fundamentally difficult to do convincingly. I very often see writers use stoicism, ruthless utilitarianism, (dysfunctional) cynicism and even atheism as proxies to demonstrate a character is nihilistic, but none of those really hits it on the mark. I consider it like free will: you can make extremely compelling arguments that free will (in the sense of the capacity for non-deterministic decision making) simply doesn't exist (or is at best implausible), but there's not really a convincing framework for altering your behavior even if you claim to believe that. This is _unlike_ atheism or agnosticism, which do have clear behavioral proxies when you abstract them away from considerations of intrinsic meaning - simply don't participate in religious communities, gatherings or activities for its own sake.

<comment><USER4> No, they mean _the characters_. Virtually every character on Seinfeld is a nihilist. Nobody on Seinfeld --- with the possible exception of Jerry's parents --- cares about anybody or anything. Susan dies from licking poisonous envelopes and they all go out for coffee before George tries to hit on Marissa Tomei. Jerry's girlfriend gets Jerry to care about things for half an episode, turns into an anti-Jerry; the episode resolves itself with Jerry being shocked back into normal Jerry by George temporarily revealing his own emotions. Or, just compare Kevin, "The Bizarro Jerry", to Jerry himself.

It's a profoundly nihilistic show, in a way that Rick and Morty doesn't even really touch.

Rick can travel between dimensions and meet infinite alternate Ricks and infinite alternate Mortys. The show informs us that he knows any one Morty or any one Beth doesn't actually matter. And Rick _still_ occasionally cares about them. The subtext of Rick and Morty is almost anti-nihilist.

The nihilism in Seinfeld is presented realistically and non-fantastically and is so unsettling that people have a hard time even recognizing it for what it is.

<comment><USER5> Kramer chides the group for poor behavior or passivity from time to time. He helps people with their problems. I'd dispute that he's nihilist.

<comment><USER4> That's true, but that's part of the joke: only the weirdest, most uncomfortable of the 4 characters is allowed any humanity.

</comment></comment></comment></comment></comment><comment><USER6> Rick And Morty has a great number of good "science" jokes, but really its more about general Sci-Fi tropes. (Time Travel, Multiverses, Clones, Aliens, and Androids aren't really "science" as much as they are about "Science fiction")

But the hardest thing for me was to get used to the straight up nihilism of Rick. True, there have been plenty of Nihilistic "protagonists" in other shows: Peter Griffin in Family Guy, Eric Cartman from South Park, Homer Simpson (depending on the season of course).

But Rick is different: while the other characters are arguably Nihilistic due to ignorance, Rick purposefully and specifically pursues the "I don't care" attitude and gets away with it due to his intelligence (while other characters in other shows seem to get away with it due to literally dumb luck).

That difference continuously pisses me off in Rick and Morty, and as such its difficult for me to enjoy a lot of the episodes.

Nothing against the fanbase or anything: I recognize that Rick and Morty is a huge following, and the enormous lines at McDonalds for the special Rick and Morty Sauce just a few days ago demonstrates that Rick and Morty are the new "mainstream" cartoon. But its apathetic and malicious main character really grates on me, and I personally an unable to enjoy it as much as everyone else seems to.

<comment><USER7> I saw one episode and had the same reaction. I thought Rick was going to be like the professor from back to the future. Instead he's the bright but shallow kid making all the annoying smart alec comments, with a facile outlook on life he gets away with due to not having to live in the real world.

<comment><USER6> Rick and Morty has a lot of "bad" episodes IMO, where there's nothing in them except Rick being an annoying jerk.

I was forced to keep watching since a group of my friends continued to watch Rick and Morty regularly, and I can definitely say that some episodes are way better than others. "A Rinkle in Time" (Season 2 episode 1) was mostly great episode for instance, and I can recommend it as one of the best that Rick and Morty can offer.

I haven't seen all of Rick and Morty: there may be some other really good episodes in there. But I've only seen maybe... 6 or 7 episodes across S1 and S2 (and I haven't seen any of S3). I recognize that Rick does occasionally care about Morty, but seriously, his treatment of Morty is downright abusive in the vast majority of episodes.

The fact that Rick saves Morty on some episodes doesn't change the fact that Rick's treatment of Morty is incredibly unfair.

<comment><USER8> I kind of agree and disagree with the criticisms in this thread. For a while in season 2 I didn't watch much of the show for pretty much the reasons given here. Nevertheless, I watched a good bit of the first and third seasons, including the [IMHO excellent] finale of Season 3 that prompted Elon Musk to get into a twitter discussion with the show about singularities and partying like Kurt Cobain. [1]

Rick and Morty are, I think, intended to be more archetypes rather than actual people most of the time, although sometimes their humanity (particularly Morty's, which is leveraged for comedic effect) shows through. Rick is definitely shown to have something of a softer side that he keeps deeply hidden.

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

<comment><USER9> Eh, I would say that Rick incompletely rejects his softer side rather than keeping it hidden.

He doesn't _want_ to care about anyone or anything; it is how he copes with living in a crap-sack multiverse where he regularly sees himself or his family die, or even kills them himself. Hell, we don't even know that his S1 family was his original family; he abandoned them easily enough in the Cronenberg episode. For all we know, his Beth did die as a child like in his (false) memory in S3E1. He might have returned years later to a different universe, one abandoned by another Rick. We don't know that Morty is his original Morty; the memories in the flashback episode could have been collected from dozens or hundreds of Mortys who didn't make it. Heck, even Rick isn't the original Rick; he has body-hopped through several incarnations on-screen.

So he rejects all meaning, but he's still a human with irrational attachments, so sometimes he will stop and do something for someone else. But to him, it's the same as his crippling substance abuse, just one more weakness being indulged for his momentary gratification.

<comment><USER7> Exactly, Rick is a faithful depiction of someone who believes individual lives are ultimately meaningless, which is implied by the whole multiverse scenario. Why does it matter if Morty1 is mistreated and is only kept alive for selfish pleasure? There are an infinite number of Mortys, so Morty1 is nothing special.

</comment></comment></comment></comment></comment></comment><comment><USER10> _Science was one of the few classes that I really responded to in grade school. You're learning all the cool, big stuff, about evolution, and we were seeing those Pillars of Creation, that amazing Hubble image.

It was so fascinating, hearing these big, broad ideas. It would be like, "Now we're going to talk about DNA and Lamarckian genetics." But when you had to be smarter for it, like, "Now we're going to use pipettes and study pH balances," I was like, "Eh, science is getting a little too sciencey for me."_

I think this nicely captures the appeal of fun sci-fi adventure series like "Rick and Morty" and "Doctor Who." Learning mind-blowing new things becomes harder and rarer as you get older, and sci-fi keeps the experience fresh for us.

(Also, I was surprised to see them mention a dozen or so sci-fi shows and authors without a single nod to Doctor Who, which seems like the most direct inspiration for Rick and Morty. The inscrutable but often joyous magician traveling space and time with a magical device, constantly getting into mortal peril yet overcoming armies when he needs to, changing the fate of civilizations, encountering reminders of his colorful past, traveling humbly yet openly reveling in his power when he's forced to wield it, his callous facade complicated by his compulsive and somewhat careless habit of bringing an ordinary person along. And of course the theme song is an obvious homage.)

</comment><comment><USER11> Morty seems to represent our inner scared timid self while Rick seems to represent our inner projected/desired self. Nerdy introverts can relate to this duality I think. The science and pop references are just frosting on top of the themes we can relate to, like a broken family struggling to hold itself together, struggling to understand your kids, struggling to connect with your parents, and so on.

Similar to Futurama, the science reference where great, but when I think of the show I remember the dog sitting in front of the pizza shop waiting for fry before the science gags.

<comment><USER12> > Morty seems to represent our inner scared timid self while Rick seems to > represent our inner projected/desired self.

See, that's interesting, because besides being voiced by the same actor, there is some evidence in the show that Morty _is_ Rick.

<comment><USER2> Do you remember where this is implied in the show? That theory is super interesting.

</comment></comment></comment><comment><USER13> Right, rick and morty is one of the few things that "science" makes great. The rest of the sciency mumbo jumbo, meh, boring. /s

</comment><comment> onion-soup Yea right, turning into a pickle is very sciency

</comment><comment><USER14> Rick and Morty is a prime example of things that have been destroyed by its own fans. Arrow (Olicity...) or Undertale is also a really good example.

<comment><USER15> True and succinct, although "destroyed" is excessive -- its still just as possible to enjoy undertale on its own.

R&m though really is a victim of its fanbase. I tried watching the fan favorite s3e01 with my dad, who has seen all of seasons 1 and 2, and he really couldnt follow the plot. It made me realize that I probably only liked it because I watched each episode of seasons 1 and 2 at least twice (the dvd commentary is great). I'm just going to skip watching the council of ricks episode from season 3 with him, it's really self indulgent.

<comment><USER16> Maybe do a rerun of the council of ricks episode from Season 1 with your dad instead? As one of my favorite episodes, it feels bizzare that you'd rather skip it just because it references a previous episode.

</comment></comment></comment><comment><USER17> Looks good, but exaggerated infatuation. Come on..

</comment><comment><USER18> Honestly I'd rather have the ridiculous fans than pretentious people here arguing and nit picking stupid shit to sound more intelligent. It's a show, watch it, enjoy it, stop trying to hold everything against some fictional ideal model. "Ooh but it's not really THAT existential and nihilistic" who the fuck cares you hipster; what elements it has in those areas goes well beyond most other available shows. Much like creating a government to hide from the government, it's pretty damn hypocritical for you all* to sit here and complain about other peoples opinions gumming up the show by complaining about the show with your own overblown armchair drivel. Watch it or don't but shut the fuck up and move on with your day.

* Of course not actually everyone

<comment><USER2> I feel like you're missing the point that people are making. I personally agree with you when you say "It's a show, watch it, enjoy it, stop trying to hold everything against some fictional ideal model." I don't even have a problem with people seeing something in a form of art that I don't. If someone sees a lot of nihilism or even meaning in Rick and Morty, there's nothing wrong with that.

My gripe with Rick and Morty fans, as a group, is that they seem to make a lot of claims that come off as arrogance against people who "just can't understand" the show as they see it. I know a lot of Rick and Morty fans in real life, and I do like the show myself, but I've even met people offline that seem to believe that being a fan of the show means you're of some apex intelligence. I nitpick these claims because they're often made through an objective standpoint, not a subjective one. I have no problem with subjective views, but once I'm told "Oh this thing is so nihilistic, so intelligent, so smart... you just don't get it", of course I'm going to refute those points when I find little basis for them.

I normally don't let public opinion dictate what I should like, but a lot of fan behavior I've experienced is so toxic that I'm now having difficulty having anything to do with it. I mean, waiting in line at McDonalds and even jumping the counter for some freaking sauce packets mentioned one time in the show? That's so over-the-top pathetic, I feel kinda gross even thinking about it. I shutter to think that they, many of whom are grown adults, are going to become parents.

> what elements it has in those areas goes well beyond most other available > shows

What are some of those elements?

</comment></comment><comment><USER19> I think the true selling point of R & M is that the plot defies expectations, not by simply going to the contrary but by turning left of the hero road, following a insane idea and sticking to it until the trophe falls apart and something i call messy realism appears. What would happen if you hang around the borg? Oh, turns out the hivemind is people too. And so on, and so forth.

Rick and Morty is "just" great Tv showing how much on rails all the other plots in all the other shows usually are. My problem is, that i think the show has no overall arc - and that they desperatly will try to glue one together.

<comment><USER20> No overall arc is the ultimate test of creativity. That's why Seinfeld (or arguably The Office) are so impressive to me. It seems like R&M is headed in a similar direction, since they take a lot of pleasure in pretending like they're building an arc and then resolving it in the most anti-climactic way ("Anyway, that's how I escaped from space prison!").</comment></comment>


My 1st blog post: My mom is leaving Facebook - <AUTHOR> http://brandonmintern.blogspot.com/2008/02/my-mom-is-leaving-facebook.html

<comment><AUTHOR> I have been thinking about starting a blog for quite a while now, and I finally took the time to do it today. In order to get up and running quickly, I just used a pre-made blogger template and focused on adding my first entry. Blogger seems decent, although that default formatting of having the first paragraph be spaced out nicely and the rest smashed together bothers me, and I'm not sure I like the blockquote formatting, either, but I don't feel like wading around in the CSS at the moment to figure out how to fix it.

Anyways, that's all I've got at the moment. I know that I am a bit short on links to other blogs and things like that, but I'm a bit new at this whole thing. Any comments on my writing style or formatting suggestions to improve the general readability would be greatly appreciated. Of course, comments on the post itself are also welcome :).</comment>


Help me improve my comic ad - <AUTHOR> http://www.querycell.com/captionMe.html

<comment><USER2> I dunno, I have issues with things which are _phrased_ as requests for help, but are in fact really appear to be just attention-seeking measures for your startup. If you ask for help, you should really, genuinely, want _help_ , not attention, otherwise the "altruism" subsystems of my brain get all confused.

Now, if you phrased it as "hey, here's a competition, win $75 by writing good text for my ad" then that would be much more reasonable... but of course then it wouldn't be getting upvoted, would it?

<comment><AUTHOR> yes I see your point hughprime.

I guess the altruism motive is why I didn't mention the reward in the title, I didn't want that to be the main thing.

Attention for my startup is great but if I can get something really funny / interesting into the comic then it becomes more interesting and provides more value to people, so when I use it it's less spammy.

</comment></comment><comment><USER3> I don't mean to insult you or your idea but, at least to me, this is terrible...

There are a number of problems with it.

You can't read the text without enlarging the comic.

It takes more than 2 seconds to read...you probably aren't going to get that much investment from anybody unless they already know what this is, and care (they likely have an active desire NOT to see this).

It is CONFUSING...I get that this has something to do with running SQL queries from within excel, but I have no idea what is going on in the comic. Is this the guys boss? Is this some vendor? Who is this person and why does he look so radically different than the guy behind the laptop?

I'm still not even entirely sure what your product does...doesn't excel have the capability of doing this natively?

I think if you wanted to do an ad...big bold letters that say "RUN SQL FROM WITHIN EXCEL" would be _MUCH_ more effective than this...

<comment><AUTHOR> Fair enough points blhack.

I guess your issues with the comic itself are why I want help to improve it, but I can see what you're saying about it taking a while for anyone to really understand it.

Maybe it was a bad idea to submit this :)

<comment><USER3> I made a submission...

I think that, if you're going to go for something like this, it's important that people understand what is going on right away...(which is what you'll see if you look at my suggestion).

</comment></comment></comment><comment><AUTHOR> Hi,

I paid to have a 1 page comic drawn to help promote my startup product.

The artist did a great job but I think the concept / dialogue that I came up with is not as great.

Check it out and see if you can come up with something better.

Thanks SamH

<comment><USER4> you need:

1) less text (as others have mentioned)

and 2) a punchline. Perhaps involving a scenario where the programmer tells the boss that he's using SQL in Excel, causing the boss to irrationally fear that powerful programs are breeding with each other (from which the only logical conclusion is Skynet), and he starts making preparations for an apocalypse-grade bunker while the programmer is trying to reassure him that it's merely some awesome product that will blow his wig off when he buys a copy.

In my humble opinion, you need to have some sort of engaging scenario that will keep people reading through the pitch, and then you need to pay off with a punchline.

</comment></comment><comment><USER5> Go for less text. More <http://www.smbc-comics.com> less <http://www.qwantz.com/>. The current template requires way too much.

I am pretty sure the technical term is 'excel ninja' and not 'excel kung fu' too. But I guess that was the punchline? I am just confused.

Maybe some work place humor? My 1 minute half baked attempt would be something like...

"With Query Cell, I've pumped up excel power user level to over 9000! It takes me half the time to run my daily extracts. Now if only I could figure out how to save on this new ribbon feature."

Okay, okay okay... I tried!

<comment><USER6> I agree with this being too long. When I see an ad which is a comic I instinctively expect it to be cheesy which is the impression I got with this. One panel might work if it is silly enough (SMBC style) or maybe 3 panels if you think up a good pun/punchline.

</comment></comment><comment><USER7> others have made good points (too much text/text too small, also, you need a funny punchline.)

I have something to add, though; how does this fit into the rest of your branding? I mean, lately I've been getting a whole lot of customers. The other day, some guy on twitter pointed me out as 'an excellent example of niche branding.'

Now, Personally, I chose my style (that is, the minimal theme, figlet instead of graphics) because I have no taste, but it is a consistent style that I maintain across my website, advertisements, business cards, and even T shirts.

</comment><comment><USER8> I think you just need a squirrel nibbling on the excel logo.

<comment><AUTHOR> Noted : Add one Squirrel.

Are you Scott Adams ?

</comment></comment><comment><USER9> That comic reminds me of the time when The Daily WTF decided they would make a web comic.. and the only redeeming quality were the user submitted comment comics insulting the comic.

Anyways, its a creative idea.

<comment><AUTHOR> At the risk of being too much of a smart-arse maybe some self-referencing could work in the comic.

"Hey dude I hear you're appearing in a comic today.."</comment></comment>


How do Unix pipes work? - <AUTHOR> https://www.vegardstikbakke.com/how-do-pipes-work-sigpipe/ <comment><USER2> This article promotes bad practices for dealing with SIGPIPE.

1\. Closing stderr in Python is not a good idea because that'll swallow any other errors that occur at exit. Redirecting stdout to devnull is really just a way to prevent the flushed output from going to the now-closed stdout and triggering another SIGPIPE. That's more preferable than closing stderr and losing error output at exit.

2\. Ignoring SIGPIPE is a terrible idea for a process that should do stream processing. Try making a yes clone and ignoring SIGPIPE - your process will likely run forever trying to shove "y" into a closed pipe. There's a reason SIGPIPE was invented! Very few programs bother to check the return value from write/printf/etc.

<comment><USER3> Agreed. I like articles like this because they show the learning process, which I think is super valuable. However, they really need a big disclaimer stating the author is experimenting and doesn't know the correct answer. Otherwise people stumble upon it and take it as authoritative.

<comment><AUTHOR> Great point, I should probably add that disclaimer!

</comment></comment></comment><comment><USER4>
        If we cat this file, it will be printed to the terminal.
        > cat brothers_karamazov.txt
        ... many lines of text!
        ***FINIS***
        It takes a noticeable amount of time to finish.

The amount of time it takes for cat(1) to read and output the file is almost certainly insignificant. The time the author is noticing is probably related to how long it takes for his _console_ to process the text.

<comment><USER5> This is the first thing I noticed too.

>how does cat know to stop when head is finished

I'm no expert on Unix, so correct me if I'm wrong, but surely this line of reasoning is misleading because pipes create a unidirectional data flow, so `cat` _can not_ know anything about `head`. It does not "stop" \- it passes the whole text along just as it did without the pipe. As you said, the delay comes in printing to the console, not in the `cat` command.

<comment><USER6> This is a great example of Useless Use of cat and why it is bad - the full text is indeed sent through the pipe simply for head to chop n initial lines.

I've actually had "developers" go "but, readability". Yea ok.

</comment></comment></comment><comment> ur-whale This article only shows basic usage of pipes (this is what they mean by "how pipes works"), but doesn't explain at all "how pipe works" (as in: how are they implemented).

<comment><USER7> It's implemented as a buffer and some associated state. A process that writes to the buffer can do so until it is full, at which point the thread is suspended (blocked on the write() call) until it is not full. The read() side is similar --- reads return successive data in the buffer unless it is empty, at which point the read() call will block.

<comment><USER8> ur-whale probably knows that

</comment></comment></comment><comment><USER9> I had a nice surprise and learning experience, when I discovered that the output of

         (echo red; echo green 1>&2) | echo blue

is indeterministic:

[http://www.gibney.de/the_output_of_linux_pipes_can_be_indete...](http://www.gibney.de/the_output_of_linux_pipes_can_be_indeter)

As it turns out, this short line and its behavior nicely demonstrate a bunch of aspects that happen under the hood when you use a pipe.

</comment><comment><USER10> See Section 1.2 this & 1.3 of the MIT Unix teaching OS for a great intro to FDs and pipes: [https://pdos.csail.mit.edu/6.828/2019/xv6/book-riscv- rev0.pd...](https://pdos.csail.mit.edu/6.828/2019/xv6/book-riscv-rev0.pdf)

</comment><comment><USER11> Here's something that you should remember about using pipes and fork(2) in Python 3: By default, O_CLOEXEC is passed to the pipe(2) system from the CPython runtime.

This means, that reading the read end of the side in the parent process after you forked will not work. Thefore you should explicitly change fctl flags and remove os.O_CLOEXEC:

      fcntl.fcntl(readfd, fcntl.F_SETFL, fcntl.fcntl(readfd, fcntl.F_GETFL) & ~os.O_CLOEXEC)

</comment><comment><USER12> My own rule of thumb of whether or not to ignore SIGPIPE is simple:

* If you only deal with file descriptors provided to you (stdin, stdout, stderr) as well as some files that you open (including special files like FIFOs), do not ignore SIGPIPE.

* If you deal with sophisticated file descriptors (socket(2) and pipe(2) count as sophisticated), you'd better ignore SIGPIPE, but also make sure to check for EPIPE in every single write.

In my view, SIGPIPE is a kludge so that programs that are too lazy to check for errors from write(2) (and fwrite(3) and related friends) will not waste resources. But if you are dealing with sophisticated file descriptors, there is a lot more happening than just open/read/write and a lot more error cases you must handle, and at that point the incremental cost of handling EPIPE isn't a significant addition.

</comment><comment><USER13> My favorite sentence from Brian Kernighan's latest book "UNIX A History and a Memoir": Pipes are the quintessential Unix invention, an elegant and efficient way to use temporary connections of programs .. so I'll read this article :-)

</comment><comment><USER14> Another point where you have to ignore SIGPIPE is concurrent code that handles multiple fds (say, like a web server). In this case you _have to_ ignore the signal and process EPIPE correctly, because the signal is not associated with a particular fd so you cannot tell which one of them failed.</comment>


Best VPN for China 2016 – China VPN Guide – Mostsecurevpn.com - <AUTHOR> Now Chinese people can easily bypass With the VPN for China, Chinese people can unblock China entirely and get access to all restricted and censored content, image, audio and video and can download each and every Geo-restricted content without any limitation. http://www.mostsecurevpn.com/best-vpn-services-for-china/ <comment><USER2> I am using PureVPN in China for around 4 months. they don't log activity and seems to be fine. No connection issues and whenever I download something, the speed is stable.

[https://www.purevpn.com/china-vpn-service.php](https://www.purevpn.com/china- vpn-service.php)</comment>