Lennart Poettering wants to remove syslogd, use systemd journal instead - <AUTHOR> http://thread.gmane.org/gmane.linux.redhat.fedora.devel.announce/1117/ <comment><USER2> I didn't know that systemd also provides a syslog functionality. But it makes me wonder:

\- the wiki pages mention that the default syslog should be removed because it makes no sense to have two solutions

\- the pages also say that for more features you should install a "real" syslog solution (rsyslog, syslog-ng)

Question: Why does systemd then come with syslog functionality in the first place?!

This is a honest question, not trolling, what will i gain from systemd journal? Everything points to a) pain to switch and b) less functionality. Whatever that is..

After reading a bit, it appears that this journal is some binary data.. Call me old fashioned but i really like my easily transferable and everywhere readable plain text logs.. why is it binary?!

* [https://fedoraproject.org/wiki/Changes/NoDefaultSyslog](https://fedoraproject.org/wiki/Changes/NoDefaultSyslog)

* [https://fedoraproject.org/wiki/Features/systemd-journal](https://fedoraproject.org/wiki/Features/systemd-journal)

Edit: Thanks for the explanations on the binary format, much appreciated.

<comment><USER3> The journal has been introduced as the natural way to manage logs now that systemd takes care of all the output of daemons.

> If you are wondering what the journal is, here's an explanation in a few > words to get you up to speed: the journal is a component of systemd, that > captures Syslog messages, Kernel log messages, initial RAM disk and early > boot messages as well as messages written to STDOUT/STDERR of all services, > indexes them and makes this available to the user.

While syslogd and Co. just take care of moving the debug statements from RAM to the disk or to a network device, the journal is meant from the beginning as an interface for querying the logs, for example

        $ journalctl -u httpd --since=00:00 --until=9:30

[1] [http://0pointer.de/blog/projects/journalctl.html](http://0pointer.de/blog/projects/journalctl.html)

<comment><USER4> Call me old fashioned... but what's wrong with grep? If you need more features like searchable metadata, the other logging solutions are already pretty full- featured.

I know this goes back to the old holy war of modular versus... not modular(?), but personally I prefer the modular approach.

</comment></comment></comment><comment><USER5> Could somebody please remove Lennart Poettering? This systemd thing is a mess that tries to do way too much. I've had a huge pain rewriting couple dozens of init.d scripts with custom logic to service files. Friends of mine complained on that too. I'm really glad that systemd is not adopted Debian so I won't have this pain on servers. Also journalctl is not a convinient tool, less and bunch of files were working much better for me.

<comment><USER6> > less and bunch of files were working much better for me

Just because it works for you does not mean it works for everybody else. The mess of log files below /var/log has been a problem for a long time. The format is not descriptive enough, there timestamps are second resolution only, no timezone information, and yet the times are in local timezone.

Please don't hold on /var/log/messages just because it has been like that for ages. That should not be the justification for it existing.

> I've had a huge pain rewriting couple dozens of init.d scripts with custom > logic to service files.

That's funny, because my experience has been that writing init.d scripts is painful and even package maintainers sometimes get it wrong.

<comment><USER7> >The mess of log files below /var/log has been a problem for a long time.

How so? It follows the *NIX "everything is a file" philosophy, so they can easily be processed by other utilities that everybody already knows.

>The format is not descriptive enough

You mean the standard filepath? /var/log/(daemon name).

You mean the actual textual format of a syslog message? Timestamp, daemon, facility.severity, message. If your messages are useless, isn't that a function of what's creating them, rather than what's capturing them? What additional data do you want that you're not seeing?

>no timezone information, and yet the times are in local timezone

What other timezone should they be in? Personally I think it's easier to look at the system clock (actually, I usually don't even have to do that, since I have a clock in the corner of my screen session) and make a mental note what timezone you're in rather than add two bytes to every message.

>Please don't hold on /var/log/messages just because it has been like that for ages. That should not be the justification for it existing.

It's the thing that wants to change the way it's always been done that has to justify itself, not the other way around. What does the systemd journal give us that's worth throwing out decades of knowledge and muscle memory?

Configuring syslog isn't exactly a great feat of skill either.. pick your favorite daemon, it still follows the general format of (messages from this thing) (with this characteristic) (go here)

<comment><USER8> _It 's the thing that wants to change the way it's always been done that has to justify itself, not the other way around. What does the systemd journal give us that's worth throwing out decades of knowledge and muscle memory?_

That's how modern systems are developed. That's all the justification you need, really. Define the use cases you and your CADT buddies considered as "modern" and everything else as "legacy", then you can say "That worked fine in the 1970s, but modern systems don't work like that anymore."

</comment></comment></comment></comment><comment><USER9> Side effects:

\- The journal has limitations, like what files it stores the journal in and the [default] size of the journal, which is only 10% of the filesystem size. Which sounds retarded to anyone who has ever created a /var partition for logs, but anyway. (Configuring multiple syslog files is an efficient hack to spread log data load across filesystems, which AFAIK systemd does not support)

\- All applications that were developed specifically with syslog support (such as using the glibc syslog functions, or the command-line tools, or the flat log files) will break. The fix is to reinstall syslog and configure it to use a journal device that systemd exports [once you configure it to].

\- Any devices that this host was collecting syslogs for, or any syslog collection servers this host was sending its logs to, will break. (Syslog is the only de-facto standard [enterprise or otherwise] for sending or collecting logs on a network, besides maybe snmp, but that's not really logging)

\- Systemd's programming-oriented control over log journals means you can only do things it lets you do. For example, there is built-in log rotation based both time and disk space used, but no function (that I know of) to tell it to rotate on-demand, which is a common sysadmin task. You are removing all the previous flexibility of syslog logs by using these binary journals.

\- If you support more than one operating system, or hell, more than one Linux distro, you _have_ to install syslogd and configure systemd to use it, or you'll be doing twice the work just to support Fedora's mandatory new logging system along with every other system's syslogd. (Even if every distro switches overnight you have legacy systems and code to deal with)

Weird how Fedora already had a project to fix logging. I wonder what happened to that. [https://fedorahosted.org/lumberjack/](https://fedorahosted.org/lumberjack/)

The basic proposal seems to be: I have this new logging system, so remove your old system because mine is better. Which is no better an argument than: I have this old stable logging system that works great, so your new system needs to chill the fuck out until it supports all the legacy stuff.

It doesn't seem like there is any _need_ to remove syslog. The guy just wants it to disappear.

<comment><USER10> _Which sounds retarded to anyone who has ever created a /var partition for log_

Oh, but don't you know? You shouldn't need more than one partition; they're getting rid of separate /var (I only half joke; after they broke separate /usr by linking boot/system things to it, they declared separate /usr to be "deprecated").

 _If you support more than one operating system,_

Another one of Poettering's favorite ideas is that nothing besides Linux matters. I may agree with him for my own personal computing setup, I think it's flat out unprofessional to eschew portability and cross-platform standards. Even ignoring the obvious benefits, making things portable can reveal bugs and unstated assumptions in your design which will trip you up later.

 _It doesn 't seem like there is any need to remove syslog. The guy just wants it to disappear._

If there's one thing that strikes me about Lennart (and others, such as those working on Wayland), it's what appears to be a severe case of myopia, or just flat out willful ignorance, of systems that have come before. The egotism is astounding.

Granted, sound under Linux was far from perfect (so I've heard; it has always just worked for me), and PulseAudio _eventually_ got stable and efficient enough to be be acceptable. That being said, it does feel a whole lot like "here's how we're going to do it, shut up and take it." It would be more palatable if they identified problems, proposed solutions, and then canvassed the community. Hell, even just proposing solutions as patches or wholly separate projects and letting the community vote with their feet would be preferable to this dictatorship mentality.

EDIT: Just to be clear, I distrust Lennart (and Sievers') approach to system software because they don't seem to think of the bigger picture or be aware of the past. Do you know _why_ so many people are attached to the "legacy" "deprecated" ways of doing things? Because they work, across multiple platforms, multiple OSes and multiple paradigms (embedded, server, desktop, cluster, mobile, and future ones we can't even imagine). Because other ways have been tried (eg, binary logging on Windows) and failed. Yes, some things could be improved (dependency based boot is a good idea). But other things, such as the core modularity principle in UNIX, are there for a reason, and should not be lightly tossed aside.

<comment><USER11> My understanding is that it's fine to have a separate /usr, it just needs to be mounted by your initrd. Trying to ensure that everything that could possibly be needed to mount /usr is in / turned out to be a lot more difficult than building an initrd with the relevant tools in it.

<comment><USER12> There may be ways to do it right now, but it's hard to fight the fact that Lennart doesn't want it to be supported. He's already thinking of deprecating initramfs builders that don't have systemd running inside (which causes trouble for Arch). If systemd continues to clash with initramfs tools it takes human resources away from working on things Lennart doesn't care about.

</comment></comment></comment></comment><comment><USER13> It sounds like systemd journal is a good thing, especially for early boot debugging. That said, I don't get the proposal to remove the standard logger. Sure, the logs are duplicated...but having important data stored redundantly seems like a good thing. Plus, you still keep the "everything's a file" philosophy, so you can continue to access the log file in situations where accessing a binary is unfeasible or impossible.

The example of a box where /usr is hosed and you only have access to in-memory programs like the shell, is maybe not the best example. Perhaps a more practical one is the need to monitor / alert on certain log entries in a legacy or upstream system that expects to open and watch a file.

As all distros I know of include a log file rotation facility that deletes old system logs after some set period, having duplicated data in the journal and in traditional system log on disk seems like it would be a problem only in special cases.

Cost-to-benefit, it seems to me there should still be a traditional syslog provider included by default.

<comment><USER14> I would wager that 99% of users would fall into one of two categories:

1) The journal is completely adequate for their needs; or

2) No default configuration could ever be adequate for their needs, since they need to configure rsyslog to ship logs off the box.

I'm curious as to what sort of cost-benefit analysis would lead you to conclude that everybody in group (1) should be forced to install rsyslog as well so that the perhaps 1% of people who "need to monitor / alert on certain log entries in a legacy or upstream system that expects to open and watch a file" can be spared the horror of having to type "yum install rsyslog".

<comment><USER13> OK, fair enough. Going with your figure (which I think is pretty low), what is the benefit to 99% of users from breaking tools for %1 of users? As far as I can tell it just a bit of additional storage space. Do 99% of users actually benefit from that extra storage?

</comment></comment></comment><comment><USER15> For the record, as stated in that thread archlinux moved a long time ago. Some of the mailing list threads and the annoucement:

* Annoucement: [https://www.archlinux.org/news/install-medium-20121006-intro...](https://www.archlinux.org/news/install-medium-20121006-introduces-systemd/)

* Discussion on arch-general: [https://mailman.archlinux.org/pipermail/arch-general/2012-Au...](https://mailman.archlinux.org/pipermail/arch-general/2012-August/029785.html)

* Discussion on arch-dev: [https://mailman.archlinux.org/pipermail/arch-dev-public/2012...](https://mailman.archlinux.org/pipermail/arch-dev-public/2012-August/023389.html)

And there should be older threads but I dont have time to look for them now.

<comment><USER16> Is that the same thing?

Yes, Arch is using systemd. So is Fedora. The argument that is linked wants to remove a syslogd implementation from the default installation.

Right now, the default is journal (cannot be removed, if you're using systemd as explained in that discussion) _plus_ syslogd. The proposal asks for journal w/o syslogd by default (but available as a package of course).

That said: My Arch systems don't run a syslogd either, so .. maybe they switched 'completely' in that announcement?

<comment><USER15> When systemd became the default in Arch a syslogd implementation became optional.

Just after a few weeks after installing systemd and running it side by side with syslogd I completly switched to a pure systemd + journald without the syslogd.

That's how I remember it at least, I may be wrong in some point.

\</comment></comment></comment><comment>---

EDIT:

Ok, I went and searched a little more, here is what I found related to systemd + journald + syslog discussion:

* systemd's journal and syslog: [https://mailman.archlinux.org/pipermail/arch-general/2012-Fe...](https://mailman.archlinux.org/pipermail/arch-general/2012-February/025067.html)

* Arch wiki, about journald: [https://wiki.archlinux.org/index.php/Systemd#Journald_in_con...](https://wiki.archlinux.org/index.php/Systemd#Journald_in_conjunction_with_syslog)

I think it's interesting to know how Arch did the switch and how it is used, considering this current discussion in the fedora mailing list.

</comment><comment><USER11> Can I just point out, for all the Lennart-haters, that he doesn't have the final word in what gets implemented in a distro. It's not like he's shutting down any syslog projects either, or threatening to kill the maintainers' cats if they don't use his software. Distro maintainers move to his software because they think it's an improvement over what they had before.

Case in point: Lennart works for Red Hat, but Arch is actually further along than Fedora in adopting the Journal.

Personally, I removed my syslog daemon about two months ago, and haven't missed it. I also switched to Fedora back in the new year (from Ubuntu) specifically because I wanted to try out Gnome 3 and Systemd. Loving it so far :).

</comment><comment><USER17> I'm waiting for these jokers to replace /etc with a database that requires an editor that only runs on Linux x86/x64 to modify anything.

<comment><USER18> They already store systemd configuration in /usr/lib/systemd and symlink to /etc where you can override stuff, so you're not that far off.

</comment></comment><comment><USER19> While I'm not a Fedora user, I wish them good luck, and hope the change goes through. It would be of great benefit for other distributions aswell, and perhaps we could get rid of traditional syslog for good at some point... (wishful thinking, I know).

<comment><USER20> According to Lennart, Arch have already moved to journal-only default so Fedora is not really leading there...

<comment><USER19> Never said it would be leading. But more distributions switching to journal- only is a good thing, because that makes it that much easier for the rest to follow suit.

</comment></comment></comment><comment><USER6> More power to him. The Journal is a much more interesting and useful approach than syslog.

</comment><comment><USER21> He just wants to remove syslogd from the default Fedora install, to be clear.

<comment><USER22> Also, the title is misleading ("instead"), since systemd logging is already in use for several releases.

</comment></comment><comment><USER23> Component A) Role: init the system

Component B) Role: log dispatching/receiving/sending/filtering

And now what?

A component which partially does in a non _standard_ way, incompatible with all third party tools (in the sense the tools needs to be modified or adapted).

What is next, systemd will replace cron too, in powerpoint format?

Reading the whole thread, I have a new concept in my mind... "UEFI cookies", didn't know about them.

<comment><USER24> >What is next, systemd will replace cron too, in powerpoint format?

systemd has some cron-like features: [http://www.freedesktop.org/software/systemd/man/systemd.time...](http://www.freedesktop.org/software/systemd/man/systemd.timer.html)

<comment><USER23> Thanks for the information.

Really does not remember to me my first impressions with cron :)

I don't doubt of the quality of this guy and it's ideas and solutions, I cannot say I'm better. And I've seen many "weird for me" things across the years coming from upstream to my systems.

I'm tired of fight with abstraction layers to try to make things simple. But in my work I use to be condemned to use whatever upstream picks across different versions.

Again, thanks for the information.

</comment></comment></comment><comment><USER25> Isn't journalctl that thing that auto-pipes? _shudder_

Fewer files, AND auto-piping! Not very unixlike.

</comment><comment><USER12> I haven't seen it in the discussion, but systemd's journal has horrible read performance. Apparently it's poorly indexed, or the disk layout has issues.

</comment><comment><USER26> "Those who do not understand Unix are condemned to reinvent it, poorly." — Henry Spencer (ca. 1987)

<comment><USER27> They're not even reinventing Unix poorly - they're reinventing the Windows event logger badly, and I'm not aware of anyone that ever really liked that in the first place, especially Windows admins.</comment></comment>


Raising Venture Capital Guide - <AUTHOR> https://holloway.com/rvc <comment><USER2> Oh, so we can just throw up paid guides and sell them on Hacker News now? I know it's a Sunday, but how did this get up here?

<comment><AUTHOR> Some of us use hacker news as a book marking service :-)</comment></comment>


There's a secret code hiding on these Madrid security bollards - <AUTHOR> https://www.atlasobscura.com/articles/secret-code-on-madrid-security-bollards <comment><USER2> People loose their shit when they don't get a pattern. Even more so when there is no pattern at all. I love it.</comment>


Neanderthal vs. ND4J – Native Performance, Java and CPU - <AUTHOR> https://dragan.rocks/articles/18/Neanderthal-vs-ND4J-vol1 <comment><USER2> DL4J contributor here. I spoke with our team so the differences in performance are likely explained by array ordering. ND4J, for good reason, requires F ordering because of limitations in cuBLAS. While I haven't had the opportunity to closely examine the Neanderthal comparison (I'm also not a clojure user), the likely explanation is that there's an implicit ordering impacting this.

Deeplearning4j is written around F ordering and ND4J supports this. Admittedly, our ordering API is not obvious to the average user.

Here's an example test you can run yourself that demonstrates ordering: [https://gist.github.com/raver119/92b615704ca1bf169aa23a6a6e7...](https://gist.github.com/raver119/92b615704ca1bf169aa23a6a6e7d9880)

      o.n.i.TensorFlowImportTest - Orders: CCC; Time: 11532 ns;
      o.n.i.TensorFlowImportTest - Orders: CCF; Time: 2101 ns;
      o.n.i.TensorFlowImportTest - Orders: CFC; Time: 10202 ns;
      o.n.i.TensorFlowImportTest - Orders: CFF; Time: 1960 ns;
      o.n.i.TensorFlowImportTest - Orders: FCC; Time: 10744 ns;
      o.n.i.TensorFlowImportTest - Orders: FCF; Time: 1717 ns;
      o.n.i.TensorFlowImportTest - Orders: FFC; Time: 10097 ns;
      o.n.i.TensorFlowImportTest - Orders: FFF; Time: 1716 ns;

We also profiled the above test and confirmed that F -> C ordering adds significant overhead. I can share screenshots if anyone is interested.

<comment><AUTHOR> While this is a good explanation, keep in mind that:

1\. This is the benchmark that you provided, so while this might be not obvious to the average user, it also seems to not be obvious to the above average user that wrote the benchmark. I was just using what you proposed, assuming that you used the right thing in your library.

2\. It still does not explain how you got better performance with ND4J with the same non-optimal call, which was what started the discussion, and inspired this post.

3\. Neanderthal supports both Row and Column oriented order with cuBLAS with the same performance, and won't have those problems that you mention for ND4J.

I'm, of course, interested in following up on this. Please decide on what cases you'd like to compare, post the (optimal) code, and the ND4J and Neanderthal numbers that you get, and I'll respond with my comments.

<comment><USER3> It looks like while converting from my benchmarking code you've dropped the 'f' when creating the resulting array.

[https://github.com/treo/benchmarking_nd4j/blob/master/src/ma...](https://github.com/treo/benchmarking_nd4j/blob/master/src/main/java/com/example/neanderthal/NeanderthalComparision_1024x1024.java#L17)

The difference is rather huge with the newer versions of nd4j.

While the numbers in the following gists do not contain the measurements I took for neanderthal, they do contain the numbers that I got for ND4J.

Without f ordering: [https://gist.github.com/treo/1fab39f213da26255cf4f75e383ff90...](https://gist.github.com/treo/1fab39f213da26255cf4f75e383ff908)

With f ordering: [https://gist.github.com/treo/94fe92c9417b5c8b24baa12924a35b0...](https://gist.github.com/treo/94fe92c9417b5c8b24baa12924a35b04)

As you can see something happened in the time between the 0.4 release (I took that as the comparison point since that was when I ran my own benchmarks the last time) and the 0.9.1 release that introduced additional overhead.

Originally I planned to create my own write-up on this, but I wanted to first to find out what happened there.

Given that ND4J is mainly used inside of DL4J and the matrix sizes it is used with usually are rather large, the performance overhead difference that I've observed there for tiny multiplications isn't necessarily that bad, as the newer version performs much better on larger matrices.

<comment><AUTHOR> You're right. In that particular case, ND4J comes to Neanderthal's speed. But only in that particular case; and even then ND4J is still not faster than Neanderthal. My initial quest was to find out whether ND4J can be faster than Neanderthal, and I still couldn't find a case where it is.

Although, to my defense, the option in question here is very poorly documented. I've found the ND4J tutorial page where it's mentioned, and even after re-reading the sentence multiple times, I still do not connect its description to what it (seems to) actually do. It also does not mention that it affects computation speed.

Anyway, I'm looking forward to reading your detailed analysis, and especially seeing your Neanderthal numbers.

<comment><USER4> Fair point we are fixing now: [https://github.com/deeplearning4j/deeplearning4j-docs/issues...](https://github.com/deeplearning4j/deeplearning4j-docs/issues/83)

We will be sending out a doc for this by next week with these updates. Thanks a lot for playing ball here.

Beyond that, can you clarify what you mean? Do you mean just the gemm op?

For that, that's the only case that mattered for us. We will be documenting the what/how/why of this in our docs.

Beyond that, I'm not convinced the libraries are directly comparable when it comes to the sheer scope of the libraries to each other.

You're treating nd4j as a gemm library rather than a fully fledged numpy/tensorflow with hundreds of ops and support for things you would likely have no interest in building.

A big reason I built nd4j was to solve the general use case of building a tensor library for deep learning, not just a gemm library.

Beyond that - I'll give you props for what you built. There's always lessons to learn when comparing libraries and making sure the numbers match.

Our target isn't you though, it's the likes of google,facebook, and co and tackling the scope of tasks they are.

That being said - could we spend some time on docs? Heck yeah we should. At most we have java doc and examples. We tend to help people as much as we can when profiling.

Could we manage it better? Yes for sure. That's partially why we moved dl4j to the eclipse foundation to get more 3rd party contributions and build a better governance setup. Will it take time for all of this to evolve? Oh yeah most definitely.

No project is perfect and always has things it could improve on.

Anyways - let's be clear here. You're a one man shop who built an amazingly fast library that scratches your own itch for a very specific set of use cases. We're a company and community tackling a wider breadth of tasks and trying to focus more on serving customers and adding odd things like different kinds of serialization, spark interop,.. etc.

We benefit from doing these comparisons and it forces us to document things better that we normally don't pay attention to. This little exercise is good for us. As mentioned, we will document the limitations a bit better but we will make sure to cover other topics like allocation and the like as well as the blas interface.

Positive change has come out of this and I'd like to thank you for the work you put in. We will make sure to re run some of the comaprisons on our side.

<comment><AUTHOR> Sure. I agree. You as a company have to look at your bottom line above all. Nothing wrong with that.

Please also note that Neanderthal also has hundreds of operations. The set of use cases where it scratches itches might be wider and more general than you think.

The reasons I'm showcasing matrix multiplications are:

1\. That's what you used in the comparison. 2\. It is a good proxy for the overall performance. If matrix multiplication is poor, other operations tend to be even poorer :)

Anyway, as I said, I'll be glad to compare other operations that ND4J excells at, or that anyone think are important.

I would also like to see ND4J's comparisons with Tensorflow or Numpy, or PyTorch, or, JVM based MXNet.

<comment><USER4> Yeah we definitely need to spend some more time on benchmarks after all it's said and done.

That being said, while gemm is one op, it's a lot more than just jni back and forth that use other libraries. What matters here are also things like convolutions, pair wise distance calculations, element wise ops, etc.

There's nuance there.

There are multiple layers here to consider:

1\. The JNI interop managed via javacpp (relevant to this discussion)

2\. Every op has allocation vs in place trade offs to consider

3\. For our python interface, we have yet another layer to benchmark there (we use pyjnius for jumpy the python interface for nd4j)

4\. Op implementations for the cuda kernels and the custom cpu ops we wrote. (That's where our avx512 and avx2 jars matter for example)

For the subset we are comparing against, it's basically making sure we wrap the blas calls properly. That's definitely something we should be doing.

We've profiled that and chose the pattern you're seeing above with f ordering.

That is where we are fast and chose to optimize for. You are faster in those other cases and have laid that out very well.

Again, there's still a lot that was learned here and I will post the doc when we get it out there to make that less painful next time.

You made a great post here and really laid out the trade offs.

I wish we had more time to run benchmarks beyond timing for our own use cases, if we had smaller scope we would definitely focus on every case you're mentioning here. We likely will revisit this at some point if we find it worth it.

In general, our communications and docs can always be improved (especially our internals like our memory allocation)

Re: your last point we do do this kind of benchmarking with tensorflow. For example: [https://www.slideshare.net/agibsonccc/deploying-signature- ve...](https://www.slideshare.net/agibsonccc/deploying-signature-verification- with-deep-learning) (see slide 3 and also the broader slides for an idea of how we profile deep learning for apps using the jvm)

We need to do a better job of maintaining these things though. We don't keep it up to date and don't profile as much as we should. It has diminishing returns after a certain point vs building other features.

I'm hoping a CI build to generate these things is something we get done this year so we can both prevent performance regressions and have consistent numbers we can publish for the docs.

Once the python interface is done that will be easier to do and justify since most of our "competition" is in python.

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> For anyone interested in looking at or running ND4J benchmarks, these links may be useful.

[https://github.com/treo/benchmarking_nd4j/tree/master/src/ma...](https://github.com/treo/benchmarking_nd4j/tree/master/src/main/java/com/example/neanderthal)

deeplearning4j.org/native [http://deeplearning4j.org/workspaces](http://deeplearning4j.org/workspaces)

We have our own garbage collection as well as native config and off heap memory management.

We use this

[https://github.com/deeplearning4j/deeplearning4j/blob/master...](https://github.com/deeplearning4j/deeplearning4j/blob/master/nd4j/nd4j-backends/nd4j-backend- impls/nd4j-native-platform/pom.xml#L22)

to specify use of MKL.

</comment><comment><AUTHOR> Author here. I'm open for discussion.

The source is in the text, but conveniently accessible here: [https://github.com/uncomplicate/neanderthal/blob/master/exam...](https://github.com/uncomplicate/neanderthal/blob/master/examples/benchmarks/src/benchmarks/neanderthal_vs_nd4j.clj)

<comment><USER6> Huge thanks for Neanderthal and Bayadera! There is stuff that is basically impossible to run in Stan that becomes feasible on a laptop with a GPU with Bayadera, and the fact that I can do all this in Clojure without having to migrate to Python or worse R has been a great boon.

<comment><AUTHOR> Thanks for the thumbs up!

</comment></comment></comment><comment><USER7> > I am almost sure that both would be faster than Numpy; that would be a good > comparison.

This seems a little unfair :). I'm pretty sure that if you're using NumPy linked against MKL, it would be exactly as fast as Neanderthal running on MKL.

Matrix multiplication benchmarks themselves just aren't that interesting when all they are doing is testing an underlying library.</comment>


Introducing RackHD – Automate Bare Metal - <AUTHOR> http://blog.emccode.com/2015/12/08/introducing-rackhd-automate-bare-metal/ <comment><USER2> Stopped reading at 'rock star developers'.

<comment><USER3> Yeah. I was scanning the text, saw "EMC" and started having second thoughts, "rock star developers" appeared and I just closed the tab.

I honestly don't understand the term "rock star developer".

Are they trying to imply that the developer is moody; makes ridiculous demands like "i need a bowl of 271 all-blue M&Ms on my desk each day at precisely 11:12:13 AM"; cannot be trusted with hotel fixtures and furniture; is almost certainly an alcoholic and/or drug addict; will have on average 3 well publicised "shocker" moments that gain world wide media attention; expect to have sex with multiple young fans?

I mean, I know the tech industry loves to re-invent words and terms just because, but let's face it, rock stars _sometimes_ produce good music, and almost always would make terrible friends, colleagues, employees or spouses.</comment></comment>


Facebook's Modern Messaging System: Seamless, History, And A Social Inbox - <AUTHOR> http://techcrunch.com/2010/11/15/facebook-messaging/ <comment><USER4> "It seems wrong that an email message from your best friend gets sandwiched between a bill and a bank statement. <snip> With new Messages, your Inbox will only contain messages from your friends and their friends. All other messages will go into an Other folder."

This sounds utterly retarded.

Which is more important to me - an email from ISP or phone company telling me I have a bill to pay, or an IM from a friend asking how my vacation was? Some of the most important emails I've ever received have been from people I wasn't previously acquainted with.

It's as if Facebook are trying to train people to spend all there time interacting with other Facebook members, doing Facebook-type activities. Everything else be damned.

<comment><USER5> You pay bills?

Bills are going the way of the fax machine. They'll probably always be around but for most people dealing with a bill will elicit a reaction of the "A fax? Why don't you just send it over on a dinosaur?" variety.

I don't know anyone in their 20s that hasn't automated almost every payment. (For some reason the electric company won't allow me to, they're the only ones that still send me bills.) Most of my stuff goes onto my credit card and my credit card pays itself out of my bank account. I just need to log in periodically and look at statements to make sure no one is screwing me over.

I don't want my personal inbox cluttered with crap like bills. The sooner we get rid of that stuff the better.

Caveat: That was all on a personal level. If you're running a business your inbox preferences change dramatically and that's ok. We don't to force everyone into a lowest-common-denominator middle ground.

<comment><USER6> This is a convenience for those who don't live paycheck to paycheck. Many families, myself included, are, at times, forced to pick and choose what to pay on time and what is going to have wait a week or two. Living beyond my means? Perhaps, but I'm hardly the minority.

<comment><USER7> That's a great point you make. Why can't your electric/phone/water company allow you to make those choices online? After all, they want you to pay the bill, but they'll take 'at some point soon' rather than immediately, over never.

</comment></comment></comment></comment><comment><USER8> I would really like a service that did the following

1\. People can message me in a way that no more difficult than now.

2\. That message will be sent to me via whatever communication method is best for me at that moment.

3\. This choice of communication method is transparent to the sender of the message.

4\. All messages, no matter the communication methods, are accessible online in one place.

5\. It should not require me (or anyone I communicate with) to sign up for any services they don't already use.

Use cases:

1\. I get an IM, but I'm not at my computer. I want to be notified of the IM (likely on my phone) and be able to reply to it from there. This is transparent to the original sender.

2\. I get a text message, and I want to reply, but my reply will be long and I don't feel like typing it out on my phone, so I reply via some service online. The original sender gets a text in reply.

3\. I have IM at work, but a friend only has access to email. We communicate back and forth, him via email and me via IM. It is transparent from both sides.

Maybe I am projecting, but it sounds like this is in the ballpark of what Project Titan is going to do. I am sure there are other services that do this (hell, I could write an alpha of it in not that much time), but such is life.

PS I believe that an important distinction between this and Wave is that Wave was trying to replace other communication methods, while this is trying to unify them.

<comment><USER9> That's not terribly different than gmail (which has integrated google talk) + an adroid phone.

<comment><USER10> The only thing with gmail is that it's a pain to deal with between Voice/IM/GTalk, it's far from unified and you can't use it like normal GMail users if you're GAFYD. Google talk supports the whole email sort of exchange, but only after a conversation has been initiated and there are no more paths for the jabber transports to take.

</comment></comment></comment><comment><USER11> I'm not entirely convinced that Facebook is the sort of trustworthy company you would want as an intermediary for all your communications.

</comment><comment><USER12> What I find most interesting in all of this is how they're positioning the product. From what I understand they're not targeting die hard email users, they are targeting a much younger demographic, probably ideally around age 17 and heading off to University.

A system that will keep someone who has never been away from home in touch with their family, their old friends and their new friends - something to make them feel more in touch and connected. Basically target the demographic that Facebook was originally built for.

Google tried a similar messaging system, as many suggest (Wave), but they positioned it for the enterprise/business customer. Perhaps the wrong demographic, maybe Facebook gets it right?

<comment><USER13> There's delicate balancing act involved in deciding how much interaction and how much commitment you want to have and to allow on a social networking site.

Targeting, youth, a group happy to send each a hundred messages a day, can keep others away from you (and I suspect that there's point where the even youth "graduate" out of the ultra-social-ness involved in making a hundred messages a day).

I think Facebook succeed by being something you don't have to use much. I joined Facebook at much for the contacts who almost never use Facebook as for the people who are always on it. The thing is that the people who are always on Facebook can actually drive the light-users off.

Facebook now filters people's post so you don't notice the hundred-posts-a- day-guy. But Facebook won't be able to filter messages similarly because both send then receiver need some way to be sure important messages get through. (hmm, it occurs to me Facebook was able to dodge "The Spam Question" earlier but now it's bitten off this big problem - ie, the problem of deciding what's a real, important message from someone across the world from you - <USER2> non-teenagers have to deal with semi-regularly).

</comment></comment><comment><USER14> Request your invite at this page: <http://www.facebook.com/about/messages/>

Your email address will match your public username, for example:

Profile: facebook.com/username

Email: email@example.com

<comment><USER15> Spammers rejoice.

<comment><USER16> I thought only emails from friends and their friends was actually displayed in your inbox. How would spammer abuse this?

<comment><USER17> In fact, in one of the news accounts they say they will bounce emails from non-contacts.

<comment><USER18> > In fact, in one of the news accounts they say they will bounce emails from > non-contacts.

Bouncing is an interesting choice. Many/most of the large e-mail providers stopped bouncing several years ago. (Instead, they just drop the message.) Many/most companies do the same thing.

Any idea why facebook went the other way?

</comment></comment></comment></comment></comment><comment><USER19> Sort of interesting that google and facebook are trying (or have tried) to rethink our messaging concepts. Are they trying to fix something that isn't broken? Sometimes I think it needs work but it seems like they are trying whole new ideas that may or may not work.

<comment><USER20> Keep in mind email wasn't "broken" when everyone was using Outlook, and then Gmail came along.

<comment><USER21> Email was better before Outlook.

Outlook brought us: ubiquitous top posting, lack of signature delimiters, ubiquitous email-as-microsoft-word-documents, multi-megabyte email threads where every new email includes every previous email, and viruworms.

It's not really a "and then Gmail came along" issue either. My numbers from yesterday (about 250k messages total):

      40% - yahoo.com
      18% - hotmail.com
      17% - gmail.com
       4% - live.com
       3% - aol.com
        - - <USER3>

<comment><USER22> I see numbers like this often and they make me wonder how active these various users are. I have a few old hotmail accounts and a couple old yahoo accounts.. 3 of which I know are still active... But I check those addresses annually and they mostly exist to handle my spam.

Is Yahoo's 40% active people? When was the last time they checked their email? Do those people check their email via pop? What is the volume of _useful_ communications for the users of these various systems.

Do your numbers above represent addresses you've collected or just a rehash of the general numbers on the topic? Is there any way to get more fine grained details about these various suer groups?

</comment></comment></comment></comment><comment><USER23> from the article Many are aware of Facebook's Cassandra system, but now they've built something new called hBase (working alongside the open source community again)

Someone knows what this means? Did they switch to hbase the _existing for many years_ database solution, or did they build something else on top of it (is there a trace of this in the hbase community?) or did they build something else from scratch and incredibly hit on the same name?

I wish techcrunch was a bit less.. techcrunch...

<comment><USER24> It is not a new system, it is an already existing technology called Apache HBase that is part of the Hadoop ecosystem.

Here is a video from the recent Hadoop World conference, where Jonathan Gray from Facebook speaks about their experiences with HBase:

<http://vimeo.com/16350544>

<comment><USER23> yup I know what hbase is, we used it at my previous job (but I recall stuff like "reimplementation of hbase in bash"[1] being insightful, it was not a great experience though I'm sure it matured a lot by now)

Thanks a lot for the conference video, but even this mostly describes their "well known" scribe/log analysis infrastructure, and does not get into how the new stuff gets integrated with hbase.

[1] <http://pastebin.com/f64fc84a9>

</comment></comment></comment><comment><USER4> So when everyone was expecting them to compete with Gmail, they've gone and imitated... Goggle Wave?

<comment><AUTHOR> By what way, do you think it is an imitation of Google Wave? Please elaborate.

<comment><USER25> My question too. I don't get the comparison to Wave.

<comment><USER26> At it's core, Wave was trying to attempt the same basic thing: bringing together all your communication into a single pipeline. Facebook is doing that exactly same thing. The difference here is that they are polishing the UI and the backend is incomplete, whereas Wave's backend was fairly complex and the UI (merely the client) was more a technology preview then the actual technology.

Aside: Google's Wave UI really was just a technology preview. It wasn't the product. People are confused by this (and rightly so), but it's not what made Wave awesome. The UI was merely what was added on top of the protocol so they had something they could show to the press.

Google failed Wave in that it made it out to be a different product. People confused Google Wave the UI with Google Wave the protocol.

Basically, Google should have made Wave apart of Gmail like Facebook is doing by making their messaging system apart of the default UI people are already used to.

<comment><USER27> I don't understand... you're saying Google Wave wasn't Google Wave? Google Wave is actually a product that brings communications together, but Google Wave wasn't Google Wave, Google Wave was just a technology preview?

How exactly did you find out about Google Wave and how it differs so much from Google Wave?

<comment><USER26> I'm going to assume your not just being purposely obtuse and actually curious.

Google Wave was two things: a protocol and a UI. The UI was merely a way to preview the protocol. The protocol was awesome, the UI not so much. People made the assumption that the UI was what Google was pushing, when the reality was, the UI was merely a way to demonstrate the protocol. Unfortunately, both the UI and the protocol shared the same name.

Hopefully you understand the difference now. =)

<comment><USER27> I understand the distinction between the protocol and the product, but neither was "bringing together all your communication into a single pipeline". That's your wishful thinking about where they could've taken the product, and something they never showed any intention of doing. All the protocol really does is offer a way to do concurrent realtime editing of documents.

<comment><USER26> No, it was far more than that. Real time document collaboration was a small part. Real time chatting was another big part. Comment tracking on blogs. Watch the demo again and you'll see. If you think it was just document editing you are mistaken.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER28> _People are aware of Facebook's Cassandra system, but now they've built something new called hBase..._

As in Apache HBase? Not to be too pedantic, but that's not really something that Facebook "built". I'm assuming that was an error on TC's part.

<comment><USER29> Media is most appealing when it seduces the reader into a sense of insight.

Obvious errors in reporting on familiar areas pierces this illusion, and makes one wonder how accurate coverage is of other areas.

</comment></comment><comment><USER30> Google has all the pieces to do this even better than Facebook. I look forward to seeing what they can do with GMail, Google Chat, and Google Voice.

<comment><USER31> Google doesn't have the social graph that Facebook does.

<comment><USER30> Perhaps not, but they do have the priority inbox feature that works nearly as well once it's been trained.

<comment><USER32> Who has time to train their own inbox?

<comment><USER30> Who has time to add their social graph to Facebook? If it's important to you, you'll find the time to do it.

</comment></comment></comment></comment></comment><comment><USER33> It seems that Facebook are trying to extend their information base by capturing information on people that are not using Facebook and their relationship with Facebook users.

Some similar conceptual underpinnings to Google Wave but I wonder how practical it will be to have your entire history of communication with a person stored in a single thread.

Underwhelmed and the majority of the questions were related to the privacy concerns (dismissed by Zuckerberg) that this product throws up.

<comment><USER9> _It seems that Facebook are trying to extend their information base by capturing information on people that are not using Facebook and their relationship with Facebook users._

I already get emails from facebook saying so-and-so wants you to sign up, plus the following other people, revealing part of my social network that facebook already knows about even though I don't have an account.

Emailing with facebook mail users will just make things worse...

</comment></comment><comment><USER14> And FB's blog post on this: <https://blog.facebook.com/blog.php?post=452288242130>

<comment><USER14> FAQ page is also up: <http://www.facebook.com/help/?topic=new_messages>

<comment><USER34> Some amusing things in that FAQ. For example:

         How do I stop receiving emails each time someone sends a new message?
         To stop receiving email notifications about new messages, go to the Notifications tab of your Account Settings page.

         To stop receiving email notifications about new messages from your group conversations, simply leave that conversation.

Then, "leave that conversation" links to this question/"answer":

         Is there a way to get out of a message thread once I've been looped in?
         At this time, there is no way to stop receiving messages once you are a part of a thread. You can encourage your friends to send an individual reply, instead of "Send To All."

<comment><USER35> It's both amusing and terribly depressing that in attempting to "fix" email as a form of communication, Facebook engineers somehow failed to address the ongoing issue of "reply-all".

</comment></comment></comment></comment><comment><USER36> I have not heard anything regarding how they expect to open Facebook to external communications without bringing in spam.

<comment><USER37> It seems they are only going to be highlighting messages from your friends.

Spam messages naturally won't be from your extended social graph, so will be hidden and only show up in "Other" (if they aren't already spam-filtered away into oblivion).

</comment></comment><comment><USER10> Google does it now but integration is poor, and I suppose Facebook sort of took the user stories and simplified them but...

I don't see how this is different than anything Yahoo did 4-5 years ago. From the standpoint of using their IM app, things are forwarded to email or SMS depending on what the user wants. If you're in the webmail app similar options are provided. They also had a sort of seamless SMS from their webmail client a long time ago. I'm not sure what I'd call it, Intermodal Communication? How is what Facebook is doing here any different than the Yahoo model?

</comment><comment><USER38> Interesting that they bailed on Cassandra and went back to HBase.

<comment><USER39> Where, and in what context did you hear that? What I saw of the announcement (the blog post and a small part of the presentation) didn't seem very technical. Was this in response to a question someone asked or did someone take time at the event to talk infrastructure?

<comment><USER40> The presentation explicitly said they opted not to use Cassandra and are using hBase as the storage engine for this project.

</comment></comment></comment><comment><USER41> This is interesting. On one hand Facebook doesn't try to attempt to satisfy the email crowd (imagine Blackberry and corporate firewalls), on the other hand, they are looking squarely at the SMS crowd (imagine teens who send 500+ sms a month, and complain $10 a month for the privilege is too much).

The scale is much larger and the requirements less stringent, yet the market is ripe to be pried apart, as most sms providers and telcos are basically milking it.

</comment><comment><USER10> This sounds super for Facebook users, but does this entice any Non-Facebook users? Are they doing anything to capture the people who don't see value in it?

</comment><comment><USER42> Interesting question to people in our space: When will facebook become "the internet" for non-technical people?

<comment><USER43> Last year :)

</comment></comment><comment><USER44> Oh boy, never heard so many buzz words in one single article. Did anyone make out what it really is?

<comment><USER45> A revolutionary new product that will allow one person to send a char[] to another person.

</comment></comment><comment><USER46> Give facebook even more credentials.

also, this is very similar to yahoo mail year-old inbox (you can read social feeds from pretty much anywhere... flickr, twitter, etc, etc)</comment>


The 70-Year-Old Computer That Runs on Water - <AUTHOR> http://www.wired.com/2014/11/tech-time-warp-week-70-year-old-computer-runs-water/

<comment><USER2> This is what the water-based economy simulating computer in Pratchett's _Making Money_ was based on.</comment>


Fintech RFC from plaid(2017) - <AUTHOR> https://blog.plaid.com/fintech-rfc/ <comment><AUTHOR> found this interesting. even though it's old.

I thought it would be cool to just pull data from paid and dump it into a db. Then I would query it how ever I wanted.</comment>


Startup Recruiting and the Stanford Prison Experiment - <AUTHOR> http://daltoncaldwell.tumblr.com/post/18648113677/startup-recruiting-and-the-stanford-prison-experiment <comment><USER3> Just to note, while the Stanford experiment was a pretty horrific abuse of scientific power (for which the perpetrator was rewarded with a chair at stanford), its not the reason why all experiments require ethical approval. That honour (?) goes to the Milgram studies on obedience <http://en.wikipedia.org/wiki/Milgram_study>

Also, that particular anecdote appears not to have a tremendous amount of relevance to the point, but on a completely tangential point, the stanford study was replicated by the BBC ncpsychology.weebly.com/uploads/4/7/8/4/4784501/reicher__haslam_original_study.pdf

The results are extremely interesting, and somewhat counter to the interpretations put forward by Zimbardo.

<comment><AUTHOR> The Milgram experiment is the other member of the "top two" that I refer to in the post.

I could be mistaken about the ethical approval being brought forward, but that is what I recall being taught while an undergrad at Stanford. The Milgram experiment occurred years before the SEP, and I seem to recall that the fact Zimbardo was able to get approval for this experiment (including getting the local police to help) led to a huge crackdown at universities.

<comment><USER4> I doubt there is any objective metric for choosing "the two most famous and influential psychological experiments ever conducted" but I immediately assumed you meant Pavlov's dogs as the other.

</comment></comment></comment><comment><USER5> When I was an indie game developer (distinct from a start-up in that I wasn't externally funded, though at the time we were quite profitable), I gave programming tests that I could have passed with flying colors.

If I remember correctly, I only had two people every really pass my test. One I hired and he worked with me for years and went on to be the VP of Engineering at a Fortune 500 company. One wanted $80/hour as a contractor and I couldn't afford to hire him.

I did hire someone who had a positively mediocre performance (keep in mind most people failed outright, many answering NO questions correctly) on the test once, because I thought maybe my test was too hard. He washed out after a few weeks.

What's my point? Don't set your bar too low, or you'll regret it. On the other hand, if you feel you need programmers better than you are, you may already be in trouble.

If you need programmers at the same level but with different domain knowledge, that's not a problem, but it's hard to "look up" at a skill higher than you and be sure of what you're seeing. Even if you think you understand what the candidate is saying, it's hard to distinguish between someone smarter than you mapping out a realistic approach and a smooth-talker very effectively blowing smoke out of their nether regions.

</comment><comment><USER6> I believe puzzle questions, made famous by microsoft, and then copied by google, are the exemplar here. The standard back-story is that it is not about getting the right answer, but explaining your thought process. Unfortunately, the act of explaining totally wrecks any deep or involved thought process, because you are constantly engaging the speech parts of your brain, which upsets your working memory. Your interviewer never had to go through this process while talking out loud, so has no idea what the question is like on the receiving end.

<comment><USER7> I am a bit suspicious in this regard of algorithm questions for which the interviewer already has an answer. The interviewer may have a solution in hand that they never solved themselves, or solved at their leisure in a different context (e.g. not in front of several people using a marker board with dried up markers).

That said, an interview in isolation is sometimes an attempt to get a sense of how a person reacts under pressure or constraints. It is doubtful that this really matches with the type of pressure that comes with most jobs.

</comment></comment><comment><USER8> Interesting question, but to me, were I a founder, I would want to hire engineers who were smarter than me anyway, so I would have no problem giving an interview I myself couldn't pass. In fact, even as a regular employee I want to work with people smarter than I am. But it's still worthwhile to do exercises like this specifically to trigger one's empathy.

<comment><USER9> If you give an interview you cannot pass, how do you distinguish between the quality of different correct responses?

<comment><USER10> Because the candidate is able to explain their answer at your level.

 _That_ 's how you know they actually know what they're talking about - <USER2> ability to explain it to their grandmother.

<comment><USER11> So basically you hire the best bull shitter?

<comment><USER8> You can't make too big a gap--I certainly wouldn't recommend non-technical people trying to hire engineers this or any other way--but maybe it's still possible for a reasonably smart engineer to identify an even smarter engineer.

</comment></comment></comment></comment></comment><comment><USER12> Perhaps psychology experts could chime in here: I've always been a little skeptical of the Stanford Prison Experiment's findings. It was such a complex experiment whose results might have been drastically affected by each participant knowing that they are the objects of study, the experimenter playing the "warden", people playing along with the game, etc.

I guess I suspect some of the conclusions may be true, but I've never really bought that the experiment itself provided good evidence for them.

<comment><USER4> You're not alone: [http://en.wikipedia.org/wiki/Stanford_prison_experiment#Crit...](http://en.wikipedia.org/wiki/Stanford_prison_experiment#Criticisms)</comment></comment>


Jewish Problems - <AUTHOR> http://arxiv.org/pdf/1110.1556v2.pdf <comment><USER2> It's just affirmative action. This sort of thing happens in _every_ multicultural country, especially when one group apparently does better financially than the others.

[http://www.amazon.com/Affirmative-Action-Around-World- Empiri...](http://www.amazon.com/Affirmative-Action-Around-World- Empirical/dp/0300107757)

The Russians came up with an unusually crass method for this, but guess what? Jews and other whites and East Asians all are, to some degree, kept from elite institutions _today_ because of our more subtle system.

<comment><USER3> Affirmative action? Are you mad?

Perhaps you're unaware of these:

[http://en.wikipedia.org/wiki/Anti- Jewish_pogroms_in_the_Russ...](http://en.wikipedia.org/wiki/Anti- Jewish_pogroms_in_the_Russian_Empire)

Affirmative action is not the same thing as making it artificially _harder_ for a discriminated minority!

<comment><USER4> It is exactly like affirmative action:

[http://www.boston.com/news/education/higher/articles/2011/04...](http://www.boston.com/news/education/higher/articles/2011/04/17/high_achieving_asian_americans_are_being_shut_out_of_top_schools/?page=full)

"Princeton sociologist Thomas Espenshade and researcher Alexandria Walton Radford examined data on students applying to college in 1997 and found what looks like different standards for different racial groups. They calculated that Asian-Americans needed nearly perfect SAT scores of 1550 to have the same chance of being accepted at a top private university as whites who scored 1410 and African-Americans who got 1100. Whites were three times, Hispanics six times, and blacks more than 15 times as likely to be accepted at a US university as Asian-Americans."

In Russia a minority like Jews are asked special questions in admission tests to make it harder for them to get in, while in America a minority like Asians are hit with a penalty of 450 points in SAT to make it harder ( _15 times_ harder) for them to get in. There's no difference.

<comment><USER5> please have a look at the history of antisemitism in europe. you cannot compare things which are not comparable at all.

<comment><USER4> Or you could take a look at the long history of anti-Asian racism in America (Chinese massacre of 1871, imported Asian slave labors for building the transcontinental railroads, Chinese Exclusion Act, Asiatic Barred Zone Act, etc). Just because you want to claim they are not comparable doesn't mean they are not.

</comment></comment></comment></comment></comment><comment><USER6> I'm assuming this is a follow-up on <http://news.ycombinator.com/item?id=4752047>

Wow, that is crazy!! Even though i have 2 math degrees and am doing applied math and stats for a living, there is a very good chance I'd fail such an exam if I took it now!

<comment><USER7> Just to add some context, the HN submission above is for an article entitled, "The Fifth problem: math and anti-Semitism in the Soviet Union"

The URL of the submission is [http://www.newcriterion.com/articles.cfm/The- Fifth-problem--...](http://www.newcriterion.com/articles.cfm/The-Fifth-problem --math---anti-Semitism-in-the-Soviet-Union-7446)

</comment></comment><comment><USER8> Number 17 doesn't look to be extraordinary, it actually was commonly given in Moscow State University (on math and computer science departments) until recently, when oral examinations were removed altogether.

In general such discrimination against Jews in Moscow State University was commonplace until the beginning of 1990s, and is gone since then.

<comment><USER9> Until 1989, to be precise.

Incidentally, during Perestroika the society was changing at such a high rate that what was hard to imagine just three months before was becoming routine. Now looking back 20+ years it is so difficult to reconstruct the timeline.

<comment><USER8> Well, I know when Perestroika started, but I gave it a bit of a margin, since I can't say for sure when precisely it affected this discrimination. It's known to be gone for sure in the 1990s. Could be, it started in 1989.

<comment><USER9> I remember it well -- many of my friends and myself were affected, so we kept a close eye on that, and the memory is still alive.

</comment></comment></comment></comment><comment><USER10> When linking to arXiv, please link to the abstract, not directly to the PDF.

<comment><USER8> Here you go: <http://arxiv.org/abs/1110.1556>

</comment></comment><comment><USER11> repost: <http://news.ycombinator.com/item?id=3096793> [202 comments]

</comment><comment><USER12> To see problems that incoming students of MSU math department need to solve now, you can check out: <http://www.math.msu.su/admission/exams-write.html>

E.g. <http://www.math.msu.su/admission/MATWRITE/w2001j~1.gif> does not seem much easier than "jewish" problems; and my understanding is that math department of MSU attempts to admit brilliant people who deliberately prepare to solve problems of this kind.

<comment><USER8> Here authors also filtered problems which have relatively "simple" solution (which is hard to find). The problems used to fail students included those with extremely hard (or non existent) solutions.

Andrei Sakharov once commented, that he reviewed those kind of math problems, and was perplexed by their complexity.

</comment></comment><comment><USER13> Jews invented racial discrimination. Let a gentile apply to a Jewish school, even if his father is Jewish and he practices Judaism they will turn him down if his mother is not ethnically Jewish.

<comment><USER14> You actually can't see the difference between religious law being used to discriminate among applicants to a private, parochial, religious K-12 school and discrimination at a public, state-funded institution based on inescapable racial identities recorded by the government at birth?

<comment><USER13> If you've been subject to the discrimination it probably feels the same. public/private whatever you call them, they are all just groups of people, and exclusionary judgment based on a couple generations of dna, well I think THAT should be reserved for haShem only. Live by the sword die by the sword, reciprocity, lex talionis, karma, ... almost always catches up.

<comment><USER14> I think you shouldn't go around referring to Hashem when you blatantly don't know His laws. Jews face judgment, not karma.

</comment></comment></comment></comment><comment><USER15> Guys, I studied in Moscow Institute of Pysics and technology, top technical university in the former USSR - I had in my class people who won International Olympiads in physics, math, chemistry, computer science. Those problems are average or below - you could meet them on math entrance exams to economics specialization. Problems are of the level of district\city math olympiads. I'm sure that jewish people as well as any other applicants with good math background solved them without big problems.

<comment><USER9> I see. Please take a look at a partial collection of references at <http://kerosinka.livejournal.com/1633.html> \-- it contains memoirs, discussions, and some bibliography.

<comment><USER15> I believe, issue was not the final numbers - % of Jewish people/Jewish population was the highest compare to other nations in the USSR. Number of Jewish professors, academics and billionaries with academic background is amazing.

I understand why USSR did that. Government sponsored education. Number of places in best universities was very limited, it was nation's genome and capital. People who supposed to develop new weapons and economy. Soviet government did not trust Jewish people - as we see from the history, Jewish people were often the first who left the country in case of problems. It was hard to imagine that they will become Soviet patriots. That's why USSR came up with artificial barriers in order to give more places in universities to more potentionally patriotic students. USSR wanted to save its intelligent capital investment and feel more save.

The problem was the rude way how artificial barrier was created by USSR. Instead of organizing super-complex writing exams for Jewish people, or making ideological interviews they tried to eliminate them with fake oral exams.

See below how US handles the same issue with asian students (reposted from user continuations).

[http://www.boston.com/news/education/higher/articles/2011/04...](http://www.boston.com/news/education/higher/articles/2011/04..). "Princeton sociologist Thomas Espenshade and researcher Alexandria Walton Radford examined data on students applying to college in 1997 and found what looks like different standards for different racial groups. They calculated that Asian-Americans needed nearly perfect SAT scores of 1550 to have the same chance of being accepted at a top private university as whites who scored 1410 and African-Americans who got 1100. Whites were three times, Hispanics six times, and blacks more than 15 times as likely to be accepted at a US university as Asian-Americans."

In Russia a minority like Jews are asked special questions in admission tests to make it harder for them to get in, while in America a minority like Asians are hit with a penalty of 450 points in SAT to make it harder (15 times harder) for them to get in. There's no difference.

</comment></comment></comment><comment><USER16> I think America will soon be having a Holocaust problem.

[http://www.infowars.com/poll-nearly-one-third-of- americans-w...](http://www.infowars.com/poll-nearly-one-third-of-americans- would-accept-tsa-body-cavity-search-in-order-to-fly/)

<comment><USER17> What exactly does that have to do with math or intolerance?

<comment><USER16> Actually, nothing. I just posted it because I am in shock after reading it. Feel free to downvote, or, I'll just delete it. Are you one of the "nearly one third"?

EDIT: To be fair though, it does have a Jewish connection - cattle trains?

<comment><USER17> No, I'm not of the "nearly one third". I think the privacy implications of the _current_ TSA procedures are not anywhere near the most problematic privacy issues in our society, but an escalation of that type would be beyond what I would accept.

I am, however, Jewish, and was originally a math major in college, so I do have a particular interest in this story and would appreciate it if the conversation could stay on topic.

The "cattle train" connection is pretty contrived. One is voluntary travel, the other involuntary. One is certainly a breech of dignity, rationality, and privacy, but the other was often deadly, and is at a completely different level of dehumanization.</comment></comment></comment></comment>


Use Evernote as a Personal Agile System - <AUTHOR> http://tehdik.com/post/965938200/use-evernote-as-a-personal-agile-system

<comment><USER2> I've been using Remember The Milk as a GTD tool and I highly recommend it! Rather than moving your your tasks between notebooks, you move them between lists. The Gears/Chrome client is much faster than the Evernote desktop client, and there is even a Launchy plugin that allows you to insert tasks into RTM quickly straight from Launchy. There are also keyboard shortcuts, which make it even easier. Totally worth the $25 a year to get the iPhone app.

I always thought GTD was neat, but never had the gumption to create a physical filing system. RTM changes that by making GTD much more convenient.

</comment><comment><USER3> Isn't that just a half-formed version of GTD?</comment>


Lionhead: Pre-owned worse than PC piracy - <AUTHOR> http://www.eurogamer.net/articles/2011-05-17-lionhead-pre-owned-worse-than-pc-piracy

<comment><USER2> Oh, come on, keep the sensationalist headlines out of here. I know it's the headline on the linked page, but that doesn't change anything. Most of the article is about piracy, though there is a single quote saying that second- hand sales probably represents more in actual lost sales, which is both unsurprising and unexciting. There is also a brief paragraph outlining how EA (who, by the way, is not Lionhead) tries to convert the secondhand market, which is also nothing new.

And yet, the headline of the article seems to be attempting to imply that pre- owned sales are some great evil.

</comment><comment><USER3> Is that violin music? Are those tears? Is the resale value of your product hurting you? Aww.

I guess next I should feel sorry for GM because they don't get a cut when I sell my 10 year old car. OR maybe they should disable the steering wheel if the driver changes. That way they can charge a fee to enable the car for each new user.

This studio needs to get out the duct tape and shut up its developer before any more of this crap flows out of his mouth.</comment>


Ubuntu 10.04 LTS (Lucid Lynx) available on Linode - <AUTHOR> http://blog.linode.com/2010/04/29/ubuntu-10-04-lts-lucid-lynx/

<comment><USER2> For anyone pondering upgrading their existing Linode to Lucid, we published an article in the Linode Library that explains a couple of thing you need to do for it to work.

[http://library.linode.com/troubleshooting/upgrade- ubuntu-10....](http://library.linode.com/troubleshooting/upgrade-ubuntu-10.04)

</comment><comment><USER3> Slicehost now has 10.04 available as well: [http://www.slicehost.com/articles/2010/4/30/ubuntu-10-04-lts...](http://www.slicehost.com/articles/2010/4/30/ubuntu-10-04-lts- lucid-lynx-32-bit-and-64-bit-images-available)

</comment><comment><AUTHOR> As of this writing neither Slicehost nor RackspaceCloud offers Lucid Lynx images.

<comment><USER3> Good for Linode, but I can't say I expect any VPS hosting company to have Lucid (or any other brand new release) day one anyway. I'll give them a week or so before I start to wonder.

<comment><USER4> Slicehost have got it now: [http://www.slicehost.com/articles/2010/4/30/ubuntu-10-04-lts...](http://www.slicehost.com/articles/2010/4/30/ubuntu-10-04-lts- lucid-lynx-32-bit-and-64-bit-images-available)

</comment></comment></comment><comment><USER5> Even though I don't use it as much as I should, I enjoy having a small box with Linode. Great VPS provider. Looks like the weekend is upgrade time.

<comment><USER6> I signed up for a Linode this month just in case I ever need use of a mail server/web hosting+root access/whatever on a whim, and was absolutely blown away with how quick it was to set up. Hands-down THE most intuitive and well- documented service I've ever used on the internet, _for anything_. No more NetworkSolutions-related aneurysms!</comment></comment>


Event Horizon Telescope Live Press Conference - <AUTHOR> https://www.eso.org/public/live/ <comment><USER2> I had a brief conversation about this and the Falcon Heavy launch with my quantum professor, who is very deep into black holes. I completely understand why they're very excited about this announcement, and I am pumped as well. But they should be a bit excited for the falcon heavy launch as well, if we had a radio telescope on the far side of the moon with a decent clock the resolution on this announcement would an order of magnitude better. That kind of project will be more feasible as launches get cheaper. edit: The radio telescope on the moon's data would be integrated into the rest of the networks, this would permit a virtual aperture diameter about ~50 times larger.

</comment><comment><AUTHOR> The papers with the scientific details are here (open access):

[https://iopscience.iop.org/journal/2041-8205/page/Focus_on_E...](https://iopscience.iop.org/journal/2041-8205/page/Focus_on_EHT)

Article in physics world with comparisons to simulations:

[https://physicsworld.com/a/first-images-of-a-black-hole- unve...](https://physicsworld.com/a/first-images-of-a-black-hole-unveiled-by- astronomers-in-landmark-discovery/)

"AskScience" AMA on Reddit about the breakthrough:

[https://www.reddit.com/r/askscience/comments/bbknik/askscien...](https://www.reddit.com/r/askscience/comments/bbknik/askscience_ama_series_we_are_scientists_here_to/)

</comment><comment><USER3> [https://en.wikipedia.org/wiki/Event_Horizon_Telescope](https://en.wikipedia.org/wiki/Event_Horizon_Telescope)

</comment><comment><USER4> It keeps failing for me after a few ten seconds. Anyone else having this problem? (Other YT live streams seem to work fine.)

<comment><USER4> Seems to work in Chrome (fails in FF). Weird.

</comment></comment><comment><USER5> A very good (technical) talk about the EHT project and the physics they try to do here: [https://www.youtube.com/watch?v=JiS1OJNBrvk](https://www.youtube.com/watch?v=JiS1OJNBrvk)

It is a bit old (2012), but comprehensive and with both good audio and readable slides.

</comment><comment><USER6> Direct link to youtube streaminng: [https://www.youtube.com/watch?v=Dr20f19czeE](https://www.youtube.com/watch?v=Dr20f19czeE)</comment>


How to fund a non-IT idea? - <AUTHOR>

We have a great idea, already patented on the US and Europe. It is a medical device.
We did ask lots of companys for funding, but the answer has always been a negative one.
How can we get help? <comment><USER2> I know a couple angels in healthcare and medical devices. My email is in my profile if you want to talk.</comment>


What it takes to be senior dev from junior dev? - <AUTHOR> <comment><USER2> The moment you start attacking problems from a purely mathematical standpoint, where the language implementation is a foregone conclusion.

For instance, consider writing an algorithm which ranks poker hands. If you find yourself bogged down in conditional logic, iterating through cards, you're a junior developer.

The moment you realize a histogram solves most of this problem and substantially flattens the effort, you've grown substantially.

Here's a bit of context: [http://nsayer.blogspot.com/2007/07/algorithm-for- evaluating-...](http://nsayer.blogspot.com/2007/07/algorithm-for-evaluating- poker-hands.html)

</comment><comment><USER3> Knowledge and experience

</comment><comment><USER4> Time</comment>


Maybe adding generics to Go is about syntax after all - <AUTHOR> https://dave.cheney.net/2018/09/03/maybe-adding-generics-to-go-is-about-syntax-after-all <comment><USER2> It's been three years since I started writing Go professionally and I think adding generics to Go is one of the worst ideas I've ever encountered. I love Haskell, and I much prefer hindley-milner type systems, type classes, and real sum types. I see the value of generics where appropriate. Golang, however, made the tradeoff to sacrifice anything near that level of abstraction, and it's success might largely be attributed to the approach-ability of the language as a result of that tradeoff. Retrofitting generics onto the language will be at it's best a death sentence for the principles and ergonomics of the language. One thing that has become clear to me as I have spent time with Erlang, Haskell, and Go is that it's much better to use the right tool for the job rather than trying to manipulate a tool to fit every use case, which is precisely what adding generics is all about.

<comment><USER3> I've also been writing a lot of Go professionally for a long time, and I've used every part of the language extensively, and I disagree.

There are many times I remember where I've had to implement some sort of application specific data structure that's not built into the language, and generics would have made it a lot nicer. I made it generic by using interfaces, but then you have the problem of throwing away type safety, so to preserve it, you need wrappers which cast.

It's not a given that adding generics would ruin the ergonomics of the language. I hope that whatever form generics do take in the end, that they remain simple. If I see template meta-programming in Go of the sort that occurs in C++, I think I'll scream, but that meta programming was to work around limitations in C++'s typing system which Go doesn't share.

<comment><USER2> What do you mean by nicer? I would imagine that something that is application specific would not require generics.

Interfaces do not throw away type safety if they are used correctly. They are also better suited for the consumer of the type rather than the definer. One of your problems might be that you are prematurely abstracting your interfaces for your callers.

<comment><USER4> interface {} definitely does throw away type safety, however, and is reasonably necessary for some library use cases. Is it possible that you're coming at this from an angle of building applications for specific purposes, while oppositelock is building more libraries?

My experience (admittedly limited) is that application writing in Go is nice, but as soon as I try to build a library for use in several similar (but not quite identical) cases, maintaining type safety can quickly become a hassle.

</comment></comment></comment></comment><comment><USER5> Some discussion on why it might be not: [https://www.reddit.com/r/golang/comments/9cjw98/maybe_adding...](https://www.reddit.com/r/golang/comments/9cjw98/maybe_adding_generics_to_go_is_about_syntax_after/e5b8akq/)

</comment><comment><USER6> i haven't written a whole lot of go, but from what i've done and what i see coming in go 2 i don't really want to have to write a lot more. go felt like it was modern-vintage to start with memory management but also values/pointers. with a heavy emphasis on multi return error handling instead of generics (Either), nil instead of Option, and mutability by default

and the future seems to be more weirdness. magic methods like handle. list comprehensions still uncertain. contracts sound like a backwards compatible break and duplicate of existing functionality.

i used go to use libraries and low memory foot print for my small projects. but i bet there's simpler routes out there

</comment><comment><USER7> Major props to Dave for realizing that his previous position (that adding generics had nothing to do the syntax) was mistaken, and for admitting so publicly.

</comment><comment><USER8> This might be nice to use in the specific case. However, its important to note that in the general case, you need a type variable because it is used in multiple positions. In the function below (taken from the proposal), one is stating that T is the same type in all usages.

        func Join(type T strseq)(a []T, sep T) (ret T)

This below version is different, each variable could be a different type (that satisfies strseq).

        func Join(a []strseq, sep strseq) (ret strseq)

<comment><USER9> As I understand, the type would be implicitly applied to every func/struc in scope (which I assume would be the package)

It work quite well for package like a Map so any data structure/algorithm. I suspect it would be less ideal for filter/map/reduce.

</comment></comment><comment><USER10> I think the syntax is essential to the problem. A few days ago I wrote a quite similar post about the difference between Generics and Interfaces: [https://gist.github.com/arendtio/77dd4df5f4b19dc69da35064843...](https://gist.github.com/arendtio/77dd4df5f4b19dc69da350648434a88a)

</comment><comment><USER11> Why not adopt standard ML's polymorphism semantics? Is there some type theory issue I don't know about preventing that?

<comment><USER12> I don't know much about Go. Does it have subtyping? Mixing polymorphism and subtyping isn't obvious. Stephen Dolan's thesis on algebraic subtyping [0] is the first really satisfactory answer, all previous ones having significant drawbacks, but it's only 2 years old, untested in a production language.

Considering how conservative, bordering on reactionary, the philosophy of Go seems, I think it's politically untenable.

[0] PDF: [https://www.cl.cam.ac.uk/~sd601/thesis.pdf](https://www.cl.cam.ac.uk/~sd601/thesis.pdf)

<comment><USER13> Go does not have subtyping. Its type system is sufficiently rudimentary that steering it towards ML would just be just too extreme at this point.

</comment></comment></comment><comment><USER14> On the topic of "syntax is important" (though not related to generics -- other than by aside to the Result type) I'm still not a huge fan of the handle syntax -- I reckon something more similar to Rust's .map_err() would be handled better because lots of people now use pkg/errors[1] which has the boilerplate of

        if err != nil {
            return errors.Wrap(err, "some message that is unique to this line")
        }

and the handle construct doesn't really handle (excuse the pun) this properly (you have to re-define handle each time or have a local variable or something similar). Which means that the new construct won't actually be massively helpful unless the only thing you want to do is errors.WithStack or just bubble the error back up.

But I do get why they couldn't get .map_err() -- because that's something you can only really do if you have a Result type.

[1]: [https://github.com/pkg/errors](https://github.com/pkg/errors)

<comment> ainar-g Yeah. I always try to include some context with my errors, so the only actual uses for check/handle I have is

      handle err { log.Fatal(err) }

in quick "scripts". And even there I should probably provide more context. All clean-up work is already done in defer.

Overall, check/handle feels like a poorly-thought slap-on to me, on par with ON-units from PL/I[1]. And PL/I is not something you want as an inspiration.

[1] [https://en.wikipedia.org/wiki/PL/I#ON- units_and_exception_ha...](https://en.wikipedia.org/wiki/PL/I#ON- units_and_exception_handling)

<comment><USER14> Right -- people _already_ use defer as a way of mapping errors and doing cleanup in an already awful way:

        func something() (Err error) {
            defer func() {
                if Err != nil {
                    someCleanup()
                    Err = fmt.Errorf("wrapping: %v", Err)
                }
            }()
            return blah()
        }

_And_ unlike handle you can actually give an arbitrary mapping function, while as far as I can tell you'd need to do something like

        handle err { return mapError(err) }

Rather than the more ergonomic

        handle mapError

Or

        handle func(err Error) { return mapError(err) }

But whatever -- all of this is pretty useless. The main benefit of check in my mind is actually that you would be able to easily bump your test coverage -- because Go test coverage is based on lines and so the repeated use of

        if err != nil {
            return err
        }

artificially dilutes your test coverage (you don't need to test that every error is propagated -- that's just doesn't make any sense and might not be possible if you are returning directly from os.* functions that don't even have fault-injection).

</comment></comment></comment><comment><USER15> Why not reuse Common Lisp macros?

<comment><USER16> Why not use lisp syntax, at all? Why do we have to reinvent syntax every single generation? I'm not an old school engineer (I'm in my early 20s and in my first job, freshly outta college) but I can't see why we don't use lisp, prolog or ML syntax for _everything_. Seems vastly better than C-like synaxes in all ways I can think of, easier to implement, easier to extend, easier to read (imho) etc... When I program even in a low caliber lisp like elisp (which I do routinely since I use emacs) it feels like syntax gets in my way less frequently compared to python, C, Javascript etc... I just wanna think about my program, and not the syntax. If lisp is not expressive enough, why not just ML? Why do we have to reinvent it so many times when syntax is not an interesting or relevant problem (e.g. Rust syntax)?

<comment><USER17> I tinkered a bit (as many others have too!) with a lisp syntax for C, just to see what it'd feel like. That is, exact C semantics (so not inventing anything) but sexpressions.

What I remember struggling with is that it was surprisingly kind of hard to remember when parens are necessary where. For example you might define an if statement:

(if (> x 3) (printf ...))

Looks nice, but what about if you want multiple things in the body? Your options are

(if (> x 2) (progn (printf a) (return b)))

Where "progn" means "curly braces" effectively, or instead always requiring a list-shaped argument

(if (> x 2) ((printf a) (return b)))

which means in even the single-expression case you have to remember to always double-wrap

(if (> x 2) ((printf a)))

And now throw in handling of 'else' into the above. It gets surprisingly hard to use surprisingly fast. This problem repeats everywhere (function definitions, type declarations, for loops, and so on).

What all the above really clarified for me is that sexps work great in languages like lisp/scheme that are designed around them, but they don't solve syntax for free.

<comment><USER18>
      (when (> x )
        (printf a)
        (return b))

      (cond
        ((> x 3) (printf a)
                 (return b))
        ((< x 2) (printf b)
                 (return a))
        (t (return c)))

Nobody who works with Lisps thinks in terms of "do I need double parentheses". You just know that _if_ takes two or three expressions, _when_ takes an expression followed by zero or more forms, _cond_ takes a sequence of zero or more clauses which consist of a test followed by a body of zero or more forms.

If you're designing an S-exp syntax for something else, it's probably best to keep the familiar things the same; don't make some different _if_ and such.

The Lisp _if_ maps naturally to the ?: ternary operator; _cond_ , _when_ and _unless_ can compile to cascaded _if /else if/else_.

<comment><USER17> Yes, but you are describing how a lisp programmer would expect things to work. As my comment was saying, I was exploring whether a verbatim translation of C syntax works as sexeps, and where it fails.

</comment></comment></comment></comment></comment><comment><USER19> If Go gets generics, maybe they'll actually add an 'implements' keyword for interfaces and no more of this:

      var _ SomeIface = SomeConcrete{}
      var _ AnotherIface = SomeConcrete{}

Just to see if you actually implemented all the signatures on the interface correctly.

<comment><USER20> Go has a lot of pain points but the _one_ positive thing it has over other languages is how it handles interfaces.

The whole point is that the caller can make new interfaces to fit existing structs in other libraries.

<comment><USER21> Nothing new, ML derived languages also allow for it.

<comment><USER22> TypeScript too.

</comment></comment></comment></comment><comment><USER23> I was at Gophercon and saw Russ's video where he spent 30 seconds explaining what generics were to the audience and showed a half-baked example of the syntax they are considering. I've been using Go for almost 5 years now and have no desire to see generics introduced. It would ruin what is currently a very simple and easy-to-use language. Am I the only one who is hoping this whole thing fizzles out?

<comment><USER2> Yes, the people who want generics are either people who don't use Go, or don't understand the purpose of Go and the implications of adding them to the language.

<comment><USER24> Great way here to completely discount the criticisms of people who've used the language and found it unacceptable how often you have to escape out of the type system of a "safe" language with `interface{}`.

<comment><USER2> I've written Go for three years, and I've successfully avoided using interface{}. It's a matter of architecting your application to fit the language and choosing a different language if your requirements grow beyond what Go can provide. Golang has made a tradeoff between simplicity and abstraction, which is a perfectly fine choice. Turning Go into Java is just going to ruin yet another language with complexity thanks to mob mentality.

<comment><USER25> It's not always that simple. Sometimes you cannot avoid using interface{}. There is a reason why some SQL libraries use interface{}, why (un)marshallers use interface{}, and why I use it heavily in my scripting interpreter which is written in Go.</comment></comment></comment></comment></comment>


Ruby, Rails, MongoDB and the Object-Relational Mismatch - <AUTHOR> http://blog.mongodb.org/post/53271876885/ruby-rails-mongodb-and-the-object-relational-mismatch

<comment><USER2> what would be the equiv. of Mongoid for flask?

Or should I use PyMongo directly?</comment>


Please help with honest feedback for CloudReady.ai - <AUTHOR> https://www.cloudready.ai <comment><USER2> it's a sign up page I have no idea what it does</comment>


WhiteHouse.gov petition to stop E-Parasite/SOPA - <AUTHOR> https://wwws.whitehouse.gov/petitions#!/petition/stop-e-parasite-act/

<comment><USER2> Have we all not yet come to the conclusion that the white house petition board is a rarely-checked suggestion box with the minute chance an intern might post a formulaic and meaningless response?

<comment><USER3> It has more value than that. It gives visibility to important issues, and to the fact that they're being ignored. And that results in news stories that increase that visibility even more. I plan to continue signing these petitions.

</comment></comment><comment><USER4> [https://wwws.whitehouse.gov/petitions/!/petition/stop-e- para...](https://wwws.whitehouse.gov/petitions/!/petition/stop-e-parasite- act/SWBYXX55)

Working link (for me at least).

</comment><comment><USER5> from a redditor: "I heard that when a petition gets enough signatures the president will personally print it out and wipe his ass with it."

</comment><comment><USER6> _"This Section of our site is currently undergoing maintenance We appreciate your patience while we make some improvements Please check back shortly"_

Page under heavy load?

<comment><USER7> Whatever the cause, you've got to admit, that is an awesome "down for maintenance" page.

</comment></comment><comment><USER8> The URL link needs a token-hash at the end. I went through that when posting the link on HN some time ago:

<http://news.ycombinator.com/item?id=3206604>

<http://news.ycombinator.com/item?id=3198244>

I didn't get much respond even though the patent issue seems as important as SOPA. Wallawe said that this petition system is better than sending hundreds of letters to congressmen:

<http://news.ycombinator.com/item?id=3244559>

</comment><comment><USER9> Heh, I got there, looked my password up in Gmail and was all ready to sign the petition and then... turns out I signed it a while ago and forgot. I love it when I act consistently without realizing it.

I also love seeing this on HN--improving awareness of this issue is of utmost importance.

</comment><comment><USER10> Sigh. I can't hide my disgust for internet petitions, their efficacy is demonstrably absent, you might as well be praying for change.

</comment><comment><USER11> It's down.

Let everyone know about this.

</comment><comment><USER12> nice stunt. maybe a statement against this a month ago would have been appropriate, but waiting till after its dead?

<comment><USER13> It's not dead yet: While introduced last month, Wednesday was just the first hearing regarding HR3261. The House Judiciary Committee will reconvene on it in a few weeks. (<http://staff.tumblr.com/post/12930076128/a-historic-thing>) It's more widely known thanks to yesterday's mass movement, but the bill is still far from what anyone could call "dead."

</comment></comment><comment><USER14> It's down...

<comment><USER15> Try this: [https://wwws.whitehouse.gov/petitions/!/petition/stop-e- para...](https://wwws.whitehouse.gov/petitions/!/petition/stop-e-parasite- act/SWBYXX55)

</comment></comment><comment><USER16> A nice thought, but I honestly don't think it's worth the 30 seconds it would take me to follow the link and sign it.</comment>


Why resistance to ad blocking is futile and what's next for digital advertising - <AUTHOR> http://www.viola-notes.com/why-resistance-to-ad-blocking-is-futile-and-whats-next-for-digital-advertising/?utm_source=hnr&utm_medium=hn&utm_campaign=hn <comment><USER2> "Until around 6 months ago I didn't even know about ad blocking," The author who claims to be a "content marketer" was ignorant of ad blocking until very recently. This person is out of touch, and has nothing useful to contribute on this topic.

Resistance to ad blocking isn't futile. I haven't viewed ads on the internet for years, and it's been a great ride. I guess there will be an arms race of ad blockers vs new ads or new strategies to get people to view ads. I don't care anymore, and I'm sure many are with me when I say that I will actively avoid websites who pester me or impede my consumption of media. There's an ocean full of alternatives for any given place.

</comment><comment><USER3> It's not about money, or entitlement, or any of this, it's that displaying advertisements generally hurts your user experience, and makes your site/app/service less appealing.

Take Hulu's Paid service. In no other context would I pay money for a product that randomly stops doing what I've asked, and instead does something loud, obnoxious, and unnecessary that I don't want at all for 5-10 minutes total each hour. Although it's acceptable for a free service (as you're paying by letting your TV scream at you for a while), it's not something I'd ever pay for. So, until Hulu offers a tier, even at a different pricepoint, where their UX _doesn 't_ suck, it's just a non-starter for me (and many others).

Whining about "It's our business model" or "It's the way it's always been!" doesn't change the fact that you designed your service to suck by building it on bad advertising. You are not allowed to purposefully code a shitty UX to get paid, and then pretend your site/service/product doesn't suck because "you've gotta have ads!".

All that widespread adblocking will do is hasten the reckoning of shitty UX. You will either provide a thing where the UX is good _and_ you still make money through some means, or you will provide a thing with bad UX, and it will die (whether because users fixed the UX with adblocking, or because users just never came back).

</comment><comment><USER4> > This argument is based on the premise, however, that display ads are the > only (or the main) way of monetizing the web while keeping the content free

Reality is that paying for content is no guarantee ads will go away. I already said this somewhere else: ad brokers will always pay for ads to be shown. Content providers will always look for ways to increase revenues. Paywalls do not change this reality.

Recent example of the above: "I paid $60 bucks to have advertisements in a game."[1]

[1] [https://www.reddit.com/r/gaming/comments/3krj4c/i_paid_60_bu...](https://www.reddit.com/r/gaming/comments/3krj4c/i_paid_60_bucks_to_have_advertisements_in_a_game/)

</comment><comment><USER5> Why are scrapers listed as 'bad bots'? (EDIT: Maybe I don't know what a scraper is. I think of it as something like wget that I as an individual might use, but I guess it could also refer to large-scale scrapers that are grabbing content to be reproduced without attribution elsewhere.)

</comment><comment><USER6> Adapt or become irrelevant. Whatever the next model is for publishers, they need to remember that UX will win.

\- Stop tracking \- Stop malverts \- Stop overlays \- Stop misusing visitor data

Start with a good UX and put that first.</comment>