Using the Cython Compiler to write fast Python code - <AUTHOR> http://www.behnel.de/cython200910/talk.html <comment><USER2> Is it just me or this does sound like an extremely elegant stack in the making? No VMs, just plain native Unix-speaking software.

Prediction: lots of emerging startups who are basing their code on Python today are going to resort to this (or PyPy, but that's unrelated) when the scaling pain begins, or simply to attempt making things run a bit faster. I think this is great. Most people I know avoid C completely because of the hidden pitfalls every novice has to go through, but maybe Cython will slowly change that. It just needs a bit more maturity and some endorsements to pop up around here... which shouldn't take too long.

<comment><USER3> We have already done this but wrote plain C extensions. Actually C libraries with a clean interface, then wrapped them in Python extensions as well.

With C and Python you get to play on both ends of the spectrum -- concise clear code, and high performance code with C.

<comment><USER4> Pure C extensions will give you the best performance. If you write really modular C code, interop with it and Python is really clean.

Cython is interesting, but as cited, there are also some limitations and caveats. See <http://docs.cython.org/src/userguide/limitations.html> and <http://docs.cython.org/src/tutorial/caveats.html>

<comment><USER5> Cython is not a bad story for C interop, though. See e.g. pyevent (<http://code.google.com/p/pyevent/>), which provides Python bindings to libevent. Be warned: until there's a new release of pyevent (0.4), you should, in my opinion, use the SVN version.

</comment></comment></comment></comment><comment><USER6> I've written 2-3 kLOC of both boost::python and Pyrex (what Cython is based on) over many years to greatly speed up critical parts of my code, and I'm sticking with the Cython way from now on. Boost::Python uses complex template meta programming to allow you access to Python objects in C++; you're mostly writing C++. I like how I can see what I'm getting with Cython as opposed to trying to fathom the template metamagic.

Back when I used Pyrex my main problem was accidentally using some variable or function that was not C declared and Pyrex silently generating code for that that called into Python, requiring a review of the generated C code -- I think Cython has fixed that so you can see when it turns something like foo(x) into Py_GetTheGlobalVar("foo") etc.

Anyway, that's a view from a production environment which has used Pyrex for 3-4 years with great success.

</comment><comment><USER7> I recently refactored some underperforming production code using Cython. After spending ~6 hours rewriting 2 modules in Cython's "python superset" syntax, I'm left with a 33% performance boost, and virtually no additional project complexity.

I've also been replacing some rather excessive struct.unpack usage in my code with Cython's C struct pointer casting syntax, and uncovering _massive_ performance gains. 45 seconds of parsing now takes 3 seconds.

I'm pretty much convinced there's no reason to learn CPython's C API, given Cython's maturity and PyPy's improbable, scintillating ascendancy. viz. RPython may be Python's performance future, but Cython is ready now.

<comment><USER8> _virtually no additional project complexity_

Was there an increased complexity within the two modules you rewrote?

Do you have an estimate on how long it would have taken you to reimplement the two modules (or their critical components) completely in C/C++?

(Qs intended out of curiosity, to help quantify the benefits)

<comment><USER7> No additional complexity was introduced into those two modules, aside from being a different language that's easily grasped by anyone who knows Python and C. LOC-wise, the modules were about the same as the Python versions.

I've done some integration of C code using ctypes, which works quite well, and offers the obvious speed boost, but feels less coherent and ultimately less maintainable, project-wise, than a well-coded Cython module. Writing a full-on CPython module from scratch would probably offer better performance than Cython if you know the quirks and are disciplined. But to someone who doesn't already drip CPython C modules, Cython is a godsend.

Ultimately, there's 5 commonly used ways (CPython, Boost::Python, SWIG, Cython, ctypes) to integrate C into Python, and right now you'd be crazy not to give Cython a shot, if that's your need. It's very easy to learn for anyone familiar with both C and Python.

<comment><USER9> Then you're lucky because when I optimized an algorithm for my diploma thesis the code grew significantly because my Python functions suddenly had to deal with different type combinations and also, as part of the optimization, I had to switch from my short numpy-based code to manual for-loops which combined several operations that were simple (but less efficient) numpy arithmetic before. I think it highly depends on what you want to do, whether you can still work with Python objects, and how much static typing gets in the way when trying to solve your particular problem.

<comment><USER7> was the performance gain worth it in the end? In my experience numpy is pretty tight on its own, but I've seen some excellent speed gains from using cython + numpy.

<comment><USER9> Yeah, I got the runtime down from 40min to 10min. Then I implemented a Python->CUDA compiler and got it down to 30sec. :)

<comment><USER8> _I implemented a Python- >CUDA compiler_

Wow, interesting. Is it released somewhere? Googling found me the Copperhead project[1], was that what you used?

I'm not sure if "implemented" means you implemented your code for it, or you implemented the entire compiler. :)

[1] <http://code.google.com/p/copperhead/>

<comment><USER9> No, it's a custom implementation of a simple compiler. It's nothing complicated. It converts Python to C++ and compiles that with nvcc. It also supports numpy arrays. It doesn't do any complex optimization steps like a full compiler. It's more like Cython, actually (with type annotations via an @gpu decorator). This allowed me to take my Python image processing code almost literally and annotate it with @gpu. The code isn't released, yet.

I originally wanted use Copperhead and got in contact with the developer a year ago, but it was too early even for "private" beta testing, so I never got access to their code. Also, my compiler is specialized on image processing, so probably Copperhead wouldn't have worked, anyway. I'm only jealous of Copperhead's type inferencer. :) But then again, I have to get finished with my thesis and a type inferencer wouldn't help with that goal. ;)

<comment><USER8> Interesting, thanks for explaining. :)

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> Here's a relevant article that convinced me how awesome Cython is:

<http://www.perrygeo.net/wordpress/?p=116>

Basically, if you are doing any work that requires heavy numerical processing, Cython is the way to go. On the other hand, I was playing with it to do some basic text processing and the improvements were negligible.

<comment><USER11> Even for numerical processing, it depends on where/how you write your loops. numpy just offers bindings to optimised C libraries and loops using map(..,..) should be much faster than using for.

As far as text processing is concerned, it seems like the python code is just a nice interface to the underlying compiled library and hence there isn't much difference.

</comment></comment><comment><USER12> This is the kind of stuff that makes me run around my living room with excitement. I can _most definitely_ make use of this.

</comment><comment><USER13> No generator support is a big limitation to me: my CPU intensive code uses generators. An alternative to watch is Shed Skin:

<http://code.google.com/p/shedskin/>

<comment><USER14> ShedSkin is great if you don't want Python interoperability. Remember the excitement when they announced that Jython now runs Django? Cython allows you to run Django plus some optimized code, whereas there's currently no convenient way to make ShedSkin and CPython talk to each other. (And it's also the reason why hopes on PyPy are so high: A specializing JIT would allow you to combine all the flexibility and monkeypatching from CPython with the speed you normally only get from a compiler).

<comment><USER15> As far as I know, ShedSkin executables can be compiled as modules and imported in CPython painlessly, so the above is not accurate.

<comment><USER13> Yup, from the ShedSkin tutorial ([http://shedskin.googlecode.com/files/shedskin- tutorial-0.5.h...](http://shedskin.googlecode.com/files/shedskin- tutorial-0.5.html)):

"Shed Skin is an experimental Python-to-C++ compiler designed to speed up the execution of computation-intensive Python programs. It converts programs written in a static subset of Python to C++. The C++ code can be compiled to executable code, which can be run either as a standalone program or as an extension module easily imported and used in a regular Python program."

<comment><USER15> Plus the maintainers is awesome, I was having suboptimal performance and he made adjustments within a few hours many times, making ShedSkin (and my program) much faster each time.

</comment></comment></comment></comment></comment><comment><USER16> There is a fear that many startups have in using Python that when they do grow they will have to move large parts of their code into C due to speed limitations of the CPython interpreter

I feel that PyPy and Cython alleviate that fear.

<comment><USER17> Fear?

The ability to transition parts of one's code base to C/C++/ASM through CPython's excellent library makes using python from day one such an easy decision. It is even easier as there is a library ecosystem that makes the transition even easier.

<comment><USER15> He probably made a slip because of the "fear" down the line. I think he meant to type "hope".

</comment></comment></comment><comment><USER18> In the same vein as Cython if you just wanna speed up your Python code, take a look at Psyco as well. It's a "just-in-time (JIT) compiler" which means I have no clue how it works, but it does.

<comment><USER19> Unfortunately Psyco is 32-bit only and not being actively developed (<http://psyco.sourceforge.net/psycoguide/req.html>). On the plus side, the author is now focusing on PyPy.

</comment></comment><comment><USER8> I was interested to find some discussion of how the performance characteristics compare to PyPy/Unladen Swallow/RPython.

Quick googling only found one comparison: [http://jaredforsyth.com/blog/2010/jul/21/cpython-vs-pypy- vs-...](http://jaredforsyth.com/blog/2010/jul/21/cpython-vs-pypy-vs-cython/)

The routines he benchmarked are simple string tokenizing, though, so I'm not really surprised the translated-to-C version came in so much faster.

</comment><comment><USER20> Cython is also an amazing way to write Python bindings. CPython is too heavy and complex, ctypes is too annoying and verbose to write, and Cython is a staggeringly perfect DSL for walking the line between C and Python.

</comment><comment><USER19> Somewhat OT, but as a longtime Python programmer I've recently been enjoying playing w/ Go (<http://golang.org/>) which combines the lightweight syntax of dynamic languages like Python w/ static type safety and efficiency in a single language.

And it's easy to wrap C libraries in Go. See [http://code.google.com/p/gosqlite/source/browse/sqlite/sqlit...](http://code.google.com/p/gosqlite/source/browse/sqlite/sqlite.go) for an example of a Go Sqlite binding in < 300 lines.

</comment><comment><USER21> The way that you display the webpage (like a power point presentation) looks impressive and clear. How is this done?

<comment><USER22> I liked it generally, until I wanted to go 'Back'. Almost every slide where they displayed a code comparison on separate slides meant that I had no idea what was done differently.

Implement some navigation, and it's perfect.

<comment><USER23> There is a navbar that appears when hovering near the bottom of the page (or just use the arrow keys).

</comment></comment></comment><comment><USER24> I spent some time building numerical simulations as the theorist on an R&D team in Los Angeles, and Cython was a lifesaver. Iirc, I got ~150x performance increase (note, 150x, not 150%) out of it. That gave me all the great high- level bits of python (and ease of writing code!) with the speed of C.

</comment><comment><USER25> Are there any widely used Python packages that can use the performance boost offered by Cython.

I'm unable to come up with a project of my own which can use Cython, but I'm curious enough to try it on an open source project if it benefits developers.

</comment><comment><USER26> I used this a long time ago, and from my observations, the biggest gains occurred in loops. (They are the only time Python is really slow anyway.) However, the last time I checked interfacing with numpy and scipy was not supported.

<comment><USER27> Then you checked a very long time ago :) It is quite easy to pass numpy arrays to cython functions. I would say that except in some very special cases, writing raw Python C interface is useless (of course, writing numerical code which is independent of the C API is still very useful). Cython also gives you the benefit of py3x compatibility (cython generates wrappers which can be compiled for both python 2 and python 3).

<comment><USER3> > I would say that except in some very special cases, writing raw Python C > interface is useless ...

I would disagree. Cython is less known and has a learning curve. CPython extension interface is well established and more common. That is not an insignificant advantage.

Do you stop for a couple weeks to learn Cython, and do you have complete confidence in its generated code, or do you just start using something you know and is tried and true? It depends. We chose C Python extensions or just writing hotspots in C in a separate process.

<comment><USER27> The C API also has a learning curve, and is certainly harder than cython. You don't need a couple of weeks to learn cython - I rewrote one small package from ctypes to cython in ~ 1 day, without previous experience in cython.

The problem of C python extensions is that it is so hard to write correctly because of reference counting.

</comment></comment></comment></comment><comment><USER15> I look forward to Cython supporting annotations in 3, making python effectively optionally statically typed (three adverbs in a row, top that)!

</comment><comment><USER28> totally off topic but I read this as Cylon compiler</comment>


The Wayback Machine's Save Page Now Is New and Improved - <AUTHOR> https://blog.archive.org/2019/10/23/the-wayback-machines-save-page-now-is-new-and-improved/ <comment><USER2> I realise it's not IA's issue, but it'd be _really_ nice if DuckDuckGo's "!save" bang were fixed.

The problem was reported at least nine months ago, now, January 2019:

[https://old.reddit.com/r/duckduckgo/comments/ahjozp/the_save...](https://old.reddit.com/r/duckduckgo/comments/ahjozp/the_save_bang_wayback_machine_save_page_now/)

<comment><USER3> It worked when I tested it right now.</comment></comment>


Some of cliqz services are already whitelisted in Firefox - <AUTHOR> http://blog.pythonaro.com/2017/10/fighting-cliqz-in-firefox.html <comment><USER2> Cliqz is one of the things you can add to your browser through testpilot, so it's not surprising cliqz is mentioned in that context. It also seems to be a "legacy" extension, thus maybe needing the exceptions.

[https://testpilot.firefox.com/experiments/cliqz](https://testpilot.firefox.com/experiments/cliqz)

Seems to be more likely than "Mozilla is secretly giving data to Cliqz and hopes nobody notices" to me. Unless someone has actual evidence to the contrary?

</comment><comment><USER3>
      "Mozilla recently announced that some of their German users downloading Firefox will receive a version that tracks some of their web activity, reporting it to Cliqz.com. In the wake of this development, which is pretty awful from a privacy perspective, I went spelunking into my version of FF to see if anything had been enabled already in my build."

Yep. Already listed in my build version 56 in the UK.</comment>


Why firing brilliant assholes is required to build a great engineering culture - <AUTHOR> http://firstround.com/article/why-firing-brilliant-assholes-is-required-to-build-a-great-engineering-culture

<comment><USER2> "Engineers care less about equity, salary and benefits and more about the problems they're going to be working on."

TIL I am not worthy of the title "Engineer"

I can work on interesting problems on my own time. Salary from some Schmoe's payroll account enables me to do that.

</comment><comment><USER3> "Startups are supposed to be technology-driven"

That's untrue. Most startups are focusing on something not purely technological, in which case the business drives the roadmap. The real problem is the supposition that a business needs brilliant engineers.

</comment><comment><USER4> "Some founders think that you hire a bunch of great engineers, put them in a room and awesome stuff is just going to come out." This is so true in every setting, but especially a start-up where you have to work closely with everyone. One brat can really spoil the environment!

</comment><comment><USER5> You shouldn't stop at assholes. People who make it hard to work together or people who communicate poorly, are so incredibly frustrating. It doesn't matter how technically capable they are, it's going to hurt the team effort.

</comment><comment><USER6> This reminds me of the post Rand from SEOmoz wrote on his personal blog a while ago. Great read.</comment>


Spectre Mitigations Part 1 - <AUTHOR> https://www.wasmjit.org/blog/spectre-mitigations-part-1.html <comment><USER2> I was confused over the discussed mitigations because it seemed they were fixing attacker code. So all the attacker would have to do was omitting the mitigations.

Turns out the attacker only controls the input, not the function itself in the Spectre scenario. Looks like I finally understood the difference between Meltdown and Spectre :-)

<comment><USER3> My informal understanding.

Meltdown: out of order execution of reading a secret and cache it in L3 via a predictable pattern through page aligned indexes from 0 * page_size to 255 * page_size

Spectre: (speculative) out of order execution through: direct branches, function calls, and returns (same cache side channel strategies as meltdown)

Biggest difference: meltdown will segfault. Spectre won't.

Didn't check the source code of spectre but that of meltdown is pretty clear, especially when you read the paper.

<comment><USER4> The biggest difference is that meltdown is cross privilege level. ie. it lets user space read arbitrary memory mapped to kernel space.

<comment><USER3> I wonder whether that is true. I'm uncertain about the following (due to not understanding virtual memory to physical memory translation and isolated processes well enough) but I could imagine the following or a variant of it:

unmapping the kernel is not enough if another thread still has access to it. From my undertanding: if a process has access to a kernel space memory address. Then as the attacker you train the branch predictor unit to dereference a certain address in kernel space, then the thread/core that has access to it dereferences it and then it'll be cached.

What I don't understand is that if you dereference a virtual memory address the whole time whether you're then training the BPU to remember that address (and that other processes will be influenced if they dereference the same virtual address) or that you're training the BPU to dereference the physical address behind it. It really depends on whether the BPU happens before the MMU or after.

Well whether my reasoning is right or not according to the following post Spectre can also read kernel memory: [https://googleprojectzero.blogspot.com/2018/01/reading- privi...](https://googleprojectzero.blogspot.com/2018/01/reading-privileged- memory-with-side.html)

<comment><USER5> The reason why you can use Spectre to read kernel memory is that there is a JIT'd runtime in the kernel (BPF). There is no privilege boundary crossing because you are effectively running code in the context of the kernel.</comment></comment></comment></comment></comment>


Gravity Might Explain Why Time Never Runs Backward - <AUTHOR> http://www.wired.com/2014/11/time-gravity/ <comment><USER3> I have read the original PRL paper, and I think that the significant issue with it is that it conflates the complexity (C5 in the paper, a measure of the clustering of the gravitational objects) with entropy. I don't think that this leap is warranted.

Complexity, as defined by the authors, is primarily a spatial dispersion measure without a corresponding measure of energy dispersion. As far as I can tell, this system should be subject to Liouville's theorem, which means that the apparent entropy decrease (the decrease in C5) that occurs when the system contracts is just hiding the entropy in the phase space of the particle velocities. So, as the particles get closer together, their velocities get farther apart.

This same kind of effect occurs in particle beams when you try to squeeze the particle beam tighter. Assuming you aren't using some kind of beam cooling (like adding cold electrons, or using stochastic cooling), every time the beam gets squeezed, the beam gets tighter but the phase spread in the particles increases. When the beam spreads out again, the phase spread usually goes back down. It can get as low as its original value, but no lower. Just like entropy (cause that's what it really is).

That's just my thoughts after a brief perusal. Feel free to point out any obvious errors in my logic.

</comment><comment><USER4> A better article[1] including a link to the paper[2]

[1] [http://physics.aps.org/articles/v7/111](http://physics.aps.org/articles/v7/111)

[2] [http://physics.aps.org/featured-article- pdf/10.1103/PhysRevL...](http://physics.aps.org/featured-article- pdf/10.1103/PhysRevLett.113.181101)

</comment><comment><USER5> The article is poor.

I think the research is another take on how finite reversible systems end up cycling. Their entropy _has_ to eventually decrease because as a path through the phase space runs out of places to go it must return to the initial state to avoid getting stuck (i.e. violating reversibility).

I'm guessing that the interesting new thing here is that the researchers showed systems following gravity have this entropy-goes-up-and-down property, despite being an infinite continuous phase space where the bits could just get more and more dispersed?

Of course in the actual universe there's other forces at work and they need to be accounted for. You can't just say "gravity creates low entropy times therefore we have explained the low entropy", because things like the accelerating expansion of space have to be accounted for. You also need to account for _how incredibly low_ entropy was near the big bang: it wasn't just a single galaxy's worth of stuff converging, which would have been sufficient and far far more likely, it was billions of times more.

Sean Carroll frequently talks about this issue in has talks and on his blog. Hopefully I didn't get the details completely wrong.

</comment><comment><USER6> This is completely wrongheaded nonsense. Time is only an abstraction related to change. Even for unrelated events which happen in the same point in space (such as the arrival of signals from different sources), we can tell whether they happen at the same time, or else that one happens before the other. This is because we have some clock running: a moving machine, and positions of its hands on its dial are interpreted as "sooner" or "later". As to why the clock doesn't run backwards, that can easily be explained using classical mechanics.

Some time-keeping machines do in fact reverse their motion. For instance an ideal pendulum, which can serve as a clock, traces a path that perfectly reverses itself every period. Looking at just the pendulum, we cannot tell whether the pendulum has reversed direction due to the restoring force, or whether suddenly time has started flowing backwards: the motion is symmetric. This is irrelevant, because we interpret the pendulum's motion as a parametric curve. The abstract t parameter of that parametric curve marches forward.

</comment><comment><USER7> I seem to remember from watching a Sean Carroll talk (can't remember which one now - could be this: [https://www.youtube.com/watch?v=ZbPFrzliZJY](https://www.youtube.com/watch?v=ZbPFrzliZJY) \- very entertaining), but he's sort of an expert in this subject, that the ever increasing entropy is a phenomenon not a law of physics, i.e. there is no underlying reason why the entropy couldn't be ever decreasing, and that possibly there was a "time" when it was the case when the universe was collapsing, which led to the big bang. If that's true, then in that period time was essentially running backwards.

</comment><comment><USER8> " _simulated the universe as a collection of 1,000 particles that interact with one another only by gravity, representing the galaxies and stars that float around the cosmos. The researchers found that regardless of starting positions and velocities, at some point the particles inevitably find themselves clustered together in a ball before dispersing again_ "

Wait, what? That conclusion doesn't make any sense to me.

</comment><comment><USER9> The most interesting notion is that of using complexity, a dimensionless metric that can be measured from within, instead of entropy, which can only be estimated from within, can only be measured from without.

Since our universe doesn't have a "without", we can estimate entropy. But we can measure complexity, as it used in this article.

Intriguing. Reformulating the Laws of Thermodynamics could make for a promising avenue of research.

</comment><comment><USER10> I fail to understand how this article (and the research that underlies it) have shown anything more sophisticated than "interacting particles interact"... Can someone help me understand the novelty?

<comment><USER11> As far as I can tell _, it 's not a novelty, there has been other similar research. Gravity -> certain types of interaction theories -> restrictions of entropy -> time. That connection has been condensed into "gravity causes time". Bleh.

The article is making sweeping statements, as usual.

_Physics undergrad here, done some advanced courses but not an expert on this stuff

</comment></comment><comment><USER12> I thought the non-existence of time explained why time never runs backward.

</comment><comment><USER13> Why wouldn't time move backwards for the entire universe? If it does, there can be no record of any future event and there is no way to determine that time is moving backwards. If time moved backwards in one spot, what about all the information connected to that spot. Why wouldn't that information rollback too?

</comment><comment><USER14> >Instead of using entropy, the researchers describe their system with a quantity they call complexity, which they define as roughly the ratio of the distance between the two particles farthest from each other to the distance between the two particles closest to each other. When the particles are clumped together, complexity is at its lowest.

When the particles are clumped together, the entropy is highest. Gravitation pulls in the direction of entropy increase. For a system of many objects spread around some volume their "complexity" is just kind of "parallel" to entropy, not really "instead". Thus it isn't surprising that they get the first half - clumping - somewhat right. The second part - bouncing back - <USER2> pointless to discuss in the framework of their model because such important factors as, for example, space inflation (vacuum "thinning") were omitted from the model while that inflation is the key for enabling new Big Bangs in the old/inflated/cooled down Universe which thus becomes proto-Universe for the new ones.

</comment><comment><USER15> I am pretty confused by this article. In order to simulate gravity, you have to have already decided on a direction of time, right? You'd know if time was running backwards because gravity would push things apart rather than pull them together.

<comment><USER16> Although counter-intuitive, reversing time doesn't change the rules of gravity: the basic law of gravity just says that objects accelerate in a certain way dependent on their masses and distances. Because acceleration is the second derivative of position with respect to time, it is doubly negated, and thus unaffected, by reversing time.

Reversing a planet's orbit produces another orbit just as valid under the law of gravity. And even at the scale of ordinary experience, gravity doesn't prohibit objects from rising (after all, in the canonical example of tossing a ball through a parabolic arc, there is both a rise and a fall); footage of a ball falling under the influence of gravity reverses into footage of a ball rising under the influence of gravity and vice versa, but never does footage compatible with the law of gravity reverse into footage incompatible with the law of gravity.

<comment><USER17> True enough in free fall in a vacuum. (if one could find such a perfect vacuum)

Apples don't usually leap off the ground into trees, though. Of course, that would be more of a heat to kinetic energy conversion to start that process, but I think that's more along the lines of what the original question really meant: why don't things spontaneously launch, rather than having a one way tendency to convert potential energy to kinetic energy to heat energy.

It's hard to see gravity act in isolation: trace particles eventually slow an orbit in the same way that air friction deforms an idealized parabola/elipse by dragging on a ballistic projectile; tidal forces between earth and moon alter the moon's orbit.

<comment><USER16> Sure. As you note, an apple would leap into the trees if the ground under it conspired to push it upwards. That the ground rarely does so (but the reverse, an apple falling and dispersing energy into the ground, happens frequently) is certainly an observation which merits explanation, but the explanation doesn't come from an asymmetry in the laws of gravity, as such. It's often said the explanation is found in something like the Second Law of Thermodynamics, which in turn is explained by the fact that at some moment, there was a state of extremely low entropy (the Big Bang); the "arrow of time" is then a manifestation of being to one or the other side of this particular low entropy moment. And the work discussed in the link (which I have no direct knowledge of) purports to show why some such low entropy moment should be expected to exist at all given the action of gravity over history.

But my point was simply to note that you don't have to pre-incorporate an arrow of time to make sense of the laws of gravity, in response to the poster who found this a sticking point and expressed confusion over it.

</comment></comment></comment></comment><comment><USER18> Actually there are several phenomena and theories which give the arrow of time a certain direction. See:

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

</comment><comment><USER19> I know it's Wired's headline, not HN's, but let's re-write it for accuracy, shall we?

"How Gravity _Might_ Explain Why Time Never Runs Backwards (On This Side of the Big Bang)".

<comment><USER20> Ok, we added your "might" and took out the baity "how".

<comment><USER19> Oh, wow. Cool. I wasn't actually asking for moderators to change the headline; I was just whining...

<comment><USER20> That was high-quality whining. I keep trying to tell people that the best way to complain about a title is to suggest a better one.

</comment></comment></comment></comment><comment><USER21> I wonder how much tax-payers' dollars they've spent to do this research :)

<comment><USER22> It's fairly easy to estimate. Assuming an average salary of about 50k between a grad student, a postoc, and a PI (a typical mix for a scientific publication), one only needs to ask how long it took them to do the work. Estimating about 6 months with a 3x infrastructure multiplier, I get about $225k.

This is of course giving you the benefit of the doubt that you were actually wondering, and not passive-aggressively implying the government should not fund basic scientific research. Which is understandable, because that's a ridiculous position for an educated person to articulate explicitly.</comment></comment>


Show HN: Pizza HTTP status codes in honor of Pi Day :) - <AUTHOR> http://status.pizza

<comment><USER2> Nice joke site, I like it!

Couple comments on improvements:

The '404' img src is relative so it does not work deeper than the top level. Example: [http://status.pizza/broken/404](http://status.pizza/broken/404)

It would also be cool if someone savvy enough to find [http://status.pizza/images/](http://status.pizza/images/) could just get a directory index and look through them all at their leisure.

<comment><USER3> Challenge accepted.

$ mkdir ~/za

$ cd ~/za

$ for r in $(curl [http://savanttools.com/test-http-status- codes](http://savanttools.com/test-http-status-codes) |egrep -oe "code=..." |egrep -oe "...$"); do wget "[http://status.pizza/images/$r.gif";](http://status.pizza/images/$r.gif";) done

<comment><USER3> $ echo "" >codez.html

$ for g in *.gif; do echo "$g" >>codez.html; done

$ echo "" >>codez.html</comment></comment></comment>


Ask HN: At what time do you go to bed / get up? - <AUTHOR> <comment><USER2> 0200 to 1000, since picking up insomnia last year. 0200 is if the bye-bye cocktail works. If not it's more like 0500.

I adapted to it by shifting my IT work to remote + after hours.

</comment><comment><USER3> Mostly i go to sleep at 4:00 or 3:00. Wake up at 10 or 11. Only at the moment. Normally it is 8:00 and go to sleep at 0:00 or 23 : 00

</comment><comment><USER4> Sleep at 10 or 11, up at 8 or 9.

Sleeping is one of the most important things I can do for myself.

Thoroughly exhausting exercise in the afternoon is key for me. 12 or 1pm until 5pm

I prefer to work until about noon. When inspiration or necessity strikes I will code day and night.

</comment><comment><USER5> As long As I sleep 8-9 hours it doesn't matter. My biggest factor is workout and not sleep schedule.

</comment><comment><USER6> In bed at 2130, usually asleep within 10 minutes. Wake up around 5:30 +/\- 20min. No alarm

</comment><comment> non-entity Weekdays on average around 3:00am to 7-8AM

Weekends it can very but any typically around 4-6am to 9am-4pm.

<comment><USER7> It could be nicer if you could stay awake for 5 days straight and hibernate at the weekend.

</comment></comment><comment><USER8> Phone off on average at 2300, but always before 0000.

Wake up: 70% at 0630, 20% at 0530, 10% at 0400.

</comment><comment><USER9> 21-23 bed & 05-06 up

</comment><comment><USER10> In bed 00:30 - 01:00, up at 07:00 - 08:00.

</comment><comment><USER11> 8am rise and shine, 12am bedtime.

</comment><comment><USER12> Get up: 5am Go to bed: 10pm

</comment><comment><USER13> 11.30 out up at 6 csharp

</comment><comment><USER14> 11:30 - 7:45</comment>


Writing a Simple Decompiler for .NET, Part 1 - <AUTHOR> http://www.codeandux.com/writing-a-simple-decompiler-for-net-part-1/ <comment><USER2> If that's a subject you find interesting, you can also read the source for two OSS .NET decompilers:

ILSpy: [https://github.com/icsharpcode/ilspy](https://github.com/icsharpcode/ilspy)

JustDecompile: [https://github.com/telerik/JustDecompileEngine/](https://github.com/telerik/JustDecompileEngine/)

Both are based on the same library that is used in the post: Mono.Cecil ([https://github.com/jbevain/cecil](https://github.com/jbevain/cecil)).

<comment><AUTHOR> Hi jbevain :-) Nice to see you here! Having a tiny switch to a new blog engine, but next part should come up soon enough. Have a nice day, and once more. You rock!

<comment><USER2> Thanks! Looking forward to reading the next posts in the series!

</comment></comment></comment><comment><USER3> Stack-based, high-level VMs like CLR, JVM, and Flash's AcriptScript are certainly quite easy to decompile, although I think this article unfortunately misses the point - it's full of (rather verbose) code, but little explanation. From what I can see it's very fragile too - it attempts to match exact instruction sequences so won't work for anything even _slightly_ different from what's presented. This is equivalent to the test() method given, but won't get decompiled correctly:

        ldc.i4.4
        ldarg.0
        call System.Int32 Test1.AwesomeClass::c()
        starg.s b
        starg.s a

The right way to decompile a stack-based language requires keeping track of what's on the stack, building expressions instead of evaluating values.

That InstructionHelper class also looks like it could be rewritten more clearly...

<comment><USER4> The standard way to resolve distinct variables is SSA-based decompilation. I've only worked with decompiling Java bytecode, so I don't know how the CLR works, but in Java, the compiler definitely reuses the local variable slots.

There's also no discussion of type inferencing for variables, parenthesizing expression DAGs properly. I suspect properly decompiling control flow would be in part 2, but I'd be surprised if that were anywhere near robust, based on the quality demonstrated so far. Which is sad because this sort of decompilation has been practically demonstrated and solved for, oh, 10-20 years.

<comment><USER5> Are you and 'userbinator saying the same thing? I can't tell. I know how the simple symbolic stack->expression evaluation works, and it happens that in my code I generate something pretty close to SSA expressions, but does SSA do something else profound for decompilation?

<comment><USER6> SSA abstracts the stack away, and allows to reason about types much easier.

<comment><USER5> I'm not sure I'm following. To get from stack operations to expressions, I just symbolically evaluate the stack, creating temporary variables as I go. It happens that the resulting IR is pretty much SSA form. But I'm not taking much else from SSA. I'm wondering if I'm missing opportunities.

<comment><USER6> It's easier to transform your expressions into a useful form from a guaranteed, proper SSA than from a simple tree representation. For example, an induction variable extraction is totally trivial in SSA, and you really need do to it if you want to reconstruct nice looking `for` loops.

It also pays well to have distinct basic blocks - loop analysis is much easier then.

<comment><USER5> This is helpful. But I read it and think, for instance, "distinct basic blocks aren't SSA"; compilers worked in terms of CFGs before SSA existed. :)

Again this is more about my lack of confidence about fully grokking the implications of SSA; I'm not nerd-sniping.

<comment><USER6> Of course, you can have basic blocks without an SSA. It's just another feature that was missing from the article that was worth mentioning.

Another thing you'll get for free from an SSA - nice ternary expressions reconstructed (even if the original code was using ifs).

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> If this is of interest to you then you will most likely find the the recent .NET Core Design API review on ILDASM interesting as well: [https://www.youtube.com/watch?v=HuRc6CpiOVg](https://www.youtube.com/watch?v=HuRc6CpiOVg)

</comment><comment><USER8> For something with "UX" in the name, it's a surprisingly bad layout. Massive waste of screen width, and code boxes forcing me to scroll sideways even as acres of empty space sits there unused.

<comment><USER8> Ah, I see it's been partially fixed. The source code sections no longer require scrolling sideways to see it all, at least.

<comment><USER9> I really apologize for that, we were totally taken by surprise by all the attention and around 2AM i saw your (very valid) reply and was like oh snap! It's not a perfect fix, but I'll try and improve it as soon as I can. And thanks Eli.</comment></comment></comment>


MPAA Launches WhereToWatch.com: A Centralized Search for Streaming Availability - <AUTHOR> http://www.wheretowatch.com/ <comment><USER2> The UX of this site is just terrible

First off, it prompted me to add the site to my home screen, even though I'm using Chrome on Windows 7.

Second, hover over a poster, hey look now you can't hover over the one directly beside it!

3rd, what's that Facebook style loading icon on my movie poster?

</comment><comment><USER3> First thing I searched for said, currently not available. Guess i'll have to keep watching the rips

</comment><comment><USER4> MPAA profiting on this by passing thru affiliate links on clicks to Amazon. Nice.

</comment><comment><USER5> Coincidentally tied to closing of Netflix API?

</comment><comment><USER6> Impressive in how many ways one can phrase "not in your country, sucker".</comment>


With Shipwreck Treasure Easier to Reach, a Duel Is On - <AUTHOR> http://www.nytimes.com/2015/12/01/us/with-shipwreck-treasure-easier-to-reach-a-duel-is-on.html <comment><USER2> TL;DR [http://i.imgur.com/gCyIUDW.jpg](http://i.imgur.com/gCyIUDW.jpg)</comment>


HHVM 4.0.0 - <AUTHOR> https://hhvm.com/blog/2019/02/11/hhvm-4.0.0.html <comment><USER2> A lot of the narrative on HN seems to be that PHP7 has adopted most of the benefits of HHVM (performance) and Hack (typehints).

If you read this blog post closely, you will notice several interesting points in the Future Changes, which hint at making Hack a significantly saner language than PHP, especially around type-soundness.

> Several behaviors will be removed from PHP arrays; the general principle is > that PHP arrays should work as "vec or dict".

> Int-like string keys will not be converted to integers.

> Binding references to array elements will not be permitted.

> The values null, false, or uninitialized variables will not be able to be > treated as arrays.

> Empty strings will not be able to be treated as arrays.

> Arrays will not be able to be compared to non-arrays.

> Non-arraykey values will not be able to be used as array keys and will not > be automatically coerced.

> Arrays will not be able to be used with the plus (+) operator.

This is a massive change that goes a long way towards making the most prominent, core data structure of any php codebase be sound.

Other examples of introducing type soundness:

> Undefined constants will no longer be converted to strings

> ints will wrap in future releases, instead of being converted to floats, > allowing the type of int + int to be int, instead of int + int = num.

<comment><USER3> I'm not sure anyone is debating that in the terms of PHP7 vs HHVM. Hack has been a different language for quite some time and that is exactly the problem. The more it diverged from PHP the less sense it made for most people to go that direction.

Also on a personal level I'm really not sure why anyone would want to go that direction. Of all the problems people usually say they have with PHP, just fixing the type system is not even close to #1. If Hack then really is a different language and you don't like PHP, why not migrate to something completely different?

<comment><USER2> > If Hack then really is a different language and you don't like PHP, why not > migrate to something completely different?

For server-side web programming, what shall one adopt?

Python and Ruby are great dynamically-typed languages, with rich ecosystems, but don't have any type system. This makes maintenance, and evolution of the codebase, tricky in the long run.

For languages that do have type-systems: Go's is a bit too simplistic, while Java/Scala have robust type systems but are rather slow and don't hit the programmer workflow sweet spot.

There's no silver bullet around.

<comment><USER4> TypeScript? Python 3 with type hint? .NET core?

</comment></comment></comment></comment><comment><USER5> > We are currently working to move to a package manager that fully supports > multiple languages.

I wonder if this is related to the plans to add a pluggable architecture to Yarn 2.0 and support languages other than JavaScript.

[https://github.com/yarnpkg/yarn/issues/6953](https://github.com/yarnpkg/yarn/issues/6953)

</comment><comment><USER6> > With this release, we no longer aim to be compatible with PHP.

Looks like a big release! I'm curious -- is anyone actually using HHVM, either in production or for personal use?

<comment><USER7> Wikipedia was (but is moving off now).

<comment><USER8> What are they moving to?

<comment><USER9> Plain PHP (php7). As of now they're still on HHVM though: [https://en.wikipedia.org/wiki/Special:Version](https://en.wikipedia.org/wiki/Special:Version).</comment></comment></comment></comment>


Ask HN: Why are you still sharing content as PDFs? - <AUTHOR>

Why are people still sharing content as pdf instead of html pages?
I am voracious reader of online content, but I generally dont read content on websites but rather through apps like Pocket and Instapaper. Every once in a while I find a piece of content that I want to read that is only available as a pdf and doesnt work through these apps. Is it still needed? Is there a benefit to the approach I am missing? Copy protection / portability?
example user mentions a podcast https://news.ycombinator.com/item?id=6662939 I find it and transcript is only available as pdf. http://ilovemarketing.com/episode-024-the-one-with-more-cheese-and-less-whiskers/ <comment><USER2> One reason: a PDF feels like a _" finished publication"_. While HTML can be dynamically updated, a PDF is the equivalent of something "going to the press".

Another reason: for whatever reason, if you're selling your content a PDF has more intrinsic value for the end customer. It becomes "a thing" instead of just being "content that should be free". It's very odd. People _like_ the idea of owning digital goods, but only as long as they can download them and store them on their own hard drive.

<comment><USER3> >"going to the press".

Perfect description. Word and other formats feel like a draft. By having established a legacy of making finished PDFs hard to edit without, say, a full licensed version of Acrobat, it got people into the mindset that it was _the go to press_ format.

</comment></comment><comment><USER4> It's a lot easier to download and transfer a single PDF file versus downloading a complete webpage and all of its assets.

You can be sure formatting will be fine. I once bought a Kindle ebook that had lots of code samples. Even when reading on my laptop with a large screen spacing was really bad. (Though safari books online handles this well in HTML.

<comment><AUTHOR> interesting but an issue with that is pdf dont adapt well to different screen sizes. On mobile / tablet I am yet to find anything that adjusts it to screen size without panning and zooming. Especially two column layout favoured by publications.

</comment></comment><comment><USER5> Because not everybody can compile my TeX documents on their machine.

In all seriousness, the only reason you should be using PDFs is if the exact presentation must be preserves. Basically, this means any documents which contain maths or figures or tables would be best constructed in TeX and turned into PDFs, so that you can control the exact presentation.

For anything else I strongly recommend people just use HTML! (Or something which can be turned into HTML.)

<comment><AUTHOR> exact presentation definitely looks like the major reason for using pdf. I think I need to find an app that does pdf parsing similar to Pocket/ Instapaper and makes the pdf adaptable to smaller screens.

</comment></comment><comment><USER6> And how often are you successful at saving a webpage using Google Chrome? You cannot even say because this bozo app fails to save in a majority of cases and never once raises an error. A basic lack of fundamental core stability has driven me back in the the arms of Internet Exploder in the past 3 months. When a PDF is saved, it is saved with the entire content intact in a single repository.

</comment><comment><USER7> A PDF comes out of any printer or press as content of it is defined (designed), this is a powerful feature, a postscript document (PDF is a glorified postscript document) is not a flowing format but a measured one and almost as accurate or as accurate as a CAD document. A PDF is intended for print, not the screen.

</comment><comment><USER8> Pdf is very good at reproducibility at the printer.

</comment><comment><USER9> Because HTML doesn't support content that needs to be in a paged format properly and is terrible for printing.

Companies also tend to like things as .PDFs for archiving.</comment>


Ask HN: Can You Hack This? - <AUTHOR> I want you to try to hack this login system and remote browser so I can save embarrassment and loss when it gets bigger.
I tied to design it with security in mind and patch some reported vulnerabilities along the way but I'm sure I've missed lots of stuff.
I'm hoping some security minded readers more intelligent than me can break it so that I can fix it so that it will be safer.
The target is: https://browsergap.dosyago.com/
I know this is a big ask, so I totally understand if nobody takes it up. If you find something you want to disclose, please mail me email@example.com and I will work with you to fix it and if you want I can add your name, and report or whatever you want to the public vulnerability disclosure repo: https://github.com/dosyago/vulnerability-reports <comment><USER2> I have not an answer, but some feedback.

When I try the demo, I get a warning: "Your session will end early if you use excessively CPU or memory"

Is the warning necessary? Is it remover when I login? Why after some time it redirects the page to github?</comment>


Wikipedia Unblackout Bookmarklet - <AUTHOR>

As much as I support the blackouts, I have already contacted my representatives (though I think all the ones in the bay area are anti-SOPA).  I think that earns me some Wikipedia time :).  Turns out their blackout is just some CSS/JS added to the page (was probably the easiest way to implement it).  This bookmarklet removes that (though it must be clicked on every page):

  javascript:(function(){$('#mw-sopaOverlay').hide();$('#mw-page-base, #mw-head-base, #content, #mw-head, #mw-panel, #footer').show();}())
 Save that as a bookmark URL, click, and Wikipedia away on a non-mobile site. <comment><USER2> Wouldn't it have been easier for them to redirect everything to a static black page instead of overlaying this with fancy CSS magic? Not to mention the fact that every page still gets loaded before the banner pops up, which is not only visually jarring, but also puts completely unnecessary load on their servers. Doesn't serving content cost money?

<comment><USER3> This was intended. The explanation even mentioned that you should turn off JavaScript or a mobile device if you really need Wikipedia.

</comment></comment><comment><USER4> Adapted:

      javascript:(function(){$('#mw-sopaOverlay').remove();$('div:hidden').show();}())

</comment><comment><USER5> This is a neat workaround, but you can just hit "escape" on any page to do the same thing.

</comment><comment><USER6> Dang. Where was this on the 18th? I was checking HN all day.</comment>


Hours Worked by Women Age 55 to 61 Confound Labor Market Analysis - <AUTHOR> https://www.dallasfed.org/research/economics/2019/1126.aspx <comment><USER2> Wouldn't you think it would be interesting to the analysis that prior to the Great Recession point, the LIUR growth rate for 55-61 segment was notably higher than any other segment on the chart? And that in the post-recession era the absolute recovery is on par with the rest?

At least they provided the raw data to make merging all four sets together quite simple:

[https://imgur.com/a/Quw4tFg](https://imgur.com/a/Quw4tFg)

Anecdote time...my mom is 68, has a high school education and was able to land five different jobs over the past five years. She's picky, so she ends up quitting them, but after 15 years running the office for a wholesale seed distributor she ran a small store, ran a restaurant, was a picker in a pharmaceutical fulfillment shop, etc etc in a relatively depressed town in Ohio. They were just supplemental income $12-18/hr, but jobs are out there for women in this bracket if they want them. She decided she didn't want them and retired two years ago. Now she farts around the house and agitates my step dad.

Edit: The question really should be why was that segment on fire for the previous years. BLS chart for a longer time scale:

[https://www.ssa.gov/policy/docs/ssb/v72n1/v72n1p1-chart01.gi...](https://www.ssa.gov/policy/docs/ssb/v72n1/v72n1p1-chart01.gif)

<comment><USER3> > Edit: The question really should be why was that segment on fire for the > previous years. BLS chart for a longer time scale:

Wouldn't the leading order effect be the time-lag of the increase in employment for 25-54yo women?

In the year 2000, the employment rate for the 55-64 group matched the 1970 employment rate for the 25-54 group.

<comment><USER2> Yeah it's like there's a generation or two of ass-kicking women working their way through the brackets. They started hitting the low one on the 70's and filtering into the 55-61 bracket in the mid 90's. Maybe they just aged out around the time of the recession.

</comment></comment></comment><comment><USER4> I suspect this age group is one that is relied upon for care (some would say it's a societal expectation/burden) - either daycare for grandchildren or caregiving for aged parents. The need for both of which would increase when extended families are stressed by economic conditions. Sort of mindboggling that this barely even gets touched upon as a hypothesis in this economic analysis (maybe I'm missing it in the article, rereading now...)

<comment><USER5> This is what I immediately thought about. In my case, I was thinking about grandma taking care of children of drug addicted parents, which there are increasing numbers of ever since the Great Recession.

<comment><USER4> I was thinking more parents working two jobs with inflexible schedules, but yes that too.

</comment></comment></comment><comment><USER6> Chart 1 is interesting. It shows "labor input utilization" (that is, how much people are actually working) _finally_ almost catching up to long-term trend after the 2008 crash. Maybe now we can get some wage inflation!

<comment><USER7> > Maybe now we can get some wage inflation!

We have been. Real (inflation adjusted) median household income has been going up in recent years, from ~$57k / household in 2014 to ~$63k / household in 2018:

[https://fred.stlouisfed.org/series/MEHOINUSA672N/](https://fred.stlouisfed.org/series/MEHOINUSA672N/)

<comment><USER8> I may be reading this wrong, but it looks like that chart (combined with the OP charts) says that median hourly income is just a hair over where it was in 1999. The trend is positive, but it looks like the median income is basically going up because people are working more hours (i.e. and not because of significant wage inflation).

</comment></comment></comment><comment><USER9> [https://www.dallasfed.org/research/economics/2019/~/media/Im...](https://www.dallasfed.org/research/economics/2019/~/media/Images/research/economics/2019/1126/dfe1126c3.png)

Whoa. That is one of the most dramatic charts I've ever seen.

Anyway, from the linked paper:

" _Conceptually, the LIUR is the measure of labor input adopted in balanced- growth theory and inspired by evidence suggesting that, in many economies, key macro-economic variables have grown at a common rate for long periods. One of the most intriguing features of that evidence is that the resulting secular rising trend in the average real wage has typically failed to induce any noticeable trend in the share of available time that the working-age population devotes to work._

" _The share of available time devoted to work is the LIUR, calculated as the total number of hours that the working-age population (16 years of age and older) was actually at work relative to discretion-ary hours—100 hours a week on average per working-age individual—that that population could have devoted to work.3 The numerator—hours at work—excludes hours paid while on vacation or on vari-ous leaves that do not contribute any labor input to the production process._ "

Could someone go into some detail, explaining the LIUR? I get that it's "available" hours divided by hours worked, but...

* " _One of the most intriguing features of that evidence is that the resulting secular rising trend in the average real wage has typically failed to induce any noticeable trend in the share of available time that the working-age population devotes to work._ "

What "secular rising trend in the average real wage"?

* " _100 hours a week on average per working-age individual_ "

Should we celebrate or protest when the LIUR increases? If real wages are increasing, but LIUR isn't, then economic theory asserts that labor has maxed out its working hours and cannot work more to capture the higher wages? Or has maxed out its preference for those wages in favor of something else?

<comment><USER10> > Should we celebrate or protest when the LIUR increases?

By itself the metric seems pointless. For anyone looking at it. Participation does not imply utility or value - wartime nations would present extreme LIURs but building bombs doesn't translate into economic prosperity. Likewise, if people aren't working because there is no work to be done or because they value their non-GDP-influencing activities by choice that is only a good thing.

It looks like the kind of metric a C level fawns over to masquerade what looks like productivity when it doesn't actually have to be.

</comment></comment><comment><USER11> Anecdote ahead:

Just last night I was talking to two friends in this age group about their career situations, which match that of others I've spoken with in the same boat. They are exhausted from their primary career, _probably_ have enough money that they could retire, but what they really want is some kind of work that will get them out of the house a few days each week and put a few coins in their pocket, but doesn't need to be a "career" any longer.

Pure speculation on my part, but I'm led to wonder if there just aren't sufficient employer accommodations being made to this age category. When I think about people I know - some have stuck it out and been miserable, others have just left for early retirement. So whereas millennials are asking for and getting remote work, the late boomers / early X's might be wanting to simply work less but are faced with no real choice.

<comment><USER12> Especially if your primary goal is the social factor and the "having a schedule for a few hours a day"-thing (which I completely understand) and getting some money out of it is secondary, I guess a lot of people in that demographic might just opt for volunteering.

True, it completely fails to pay any bills, but depending on what you do, you might get some everyday benefits out of it and it's a lot less annoying and exhausting than many jobs you could do elsewhere. Plus, nobody bats an eye if you decide to go from one volunteering gig to another after a few months, after all you're doing it for free. Switching jobs is more of a hassle.

As far as I can see, this kind of working hours isn't accounted for in these charts and I see that group as prime candidates for deciding that none-paying but nice, meaningful work is better than pushing numbers for another few years when you could make do without it.

</comment></comment><comment><USER13> Is this the pattern we're going to start seeing with different subpopulations being laid off due to automation?

</comment><comment><USER14> I distrust some graphs that dont start at zero origin. The trend is magnified then.

<comment><USER15> And temperature graphs should always use kelvin.

</comment></comment><comment><USER16> tldr; Without quite realizing it, these geniuses figured out who is actually raising a generation of the children of single moms.

<comment><USER17> Could you please review the site guidelines? One thing they ask is _Don 't be snarky_. Your point here could have been the kernel of a more substantive and fine comment, but we definitely don't need swipey one-liners with ideological overtones.

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

</comment></comment><comment><USER18> Unemployment has become a bullshit political statistic designed to exclude minorities, which became the racist standard Under Clinton with the introduction of "discouraged" workers (not employed and not unemployed!). A much more meaningful number is the employment population ratio, age 25-54, can you see the big difference Trump made? I knew you couldn't ... [https://fred.stlouisfed.org/series/LNS12300060](https://fred.stlouisfed.org/series/LNS12300060)

<comment><USER10> Having all of your population employed isn't even necessarily a good thing. You can see low participation in the metered labor market when individuals are prosperous, well off, and self sufficient enough to avoid the rat race. It only means more poverty when lower employment means lower wealth.

</comment></comment><comment><USER19> Can someone summarize what's going on here in plain English? I can't understand this article or these charts.

<comment><USER18> Women aged 55-61 had been growing the percent of their daily life spent working from 17% to 21.5% but something happened in 2007 and the growth trend slowed drastically so that today they spend only about 22.5% of their life working. Had the trend continued they would be spending 25% of their lives working, today.

</comment></comment><comment><USER20> The "unemployment rate" is a nearly meaningless number that gets re-defined and manipulated by whoever's talking to make whatever point they want to make. It's nearly useless for figuring out how many people aren't working that could, or how many people want work but can't get it.

<comment><USER21> And how many people should be working. In a perfect world maybe people should only be working for a couple of months a year for social reasons.

That would show up in the statistics as mass unemployment and total economic collapse.

<comment><USER22> False, if someone is not working because they don't want to work, they wouldn't be counted in the "unemployment" number (U3).

</comment></comment></comment><comment><USER23> Women in that age group probably have a higher fraction of "hobby workers" than any other demographic group —- people who don't really _need_ to work (since they're already wealthy enough and their husbands earn far more anyway) but choose to work a few hours a week just for something to do.

If times are good and families are wealthy, the number of hobbyist workers in the older female age group increases. If times are bad, these women might be forced to work more hours or even full time in order to make ends meet.

It makes sense that their LIUR is flat compared to other groups.

<comment><USER24> Your hypothesis is interesting but it doesn't fit the data. The flattened trend for this age group began suddenly during the Great Recession of 2008.

I think it's more likely that a lot of women in this age group suddenly lost their jobs in the Great Recession and never recovered.

<comment><USER25> The category is only six years wide. The oldest people in it entered the category in 2013; none of them were of age in 2008. Your thesis only makes sense if you state that the Great Recession induced/exacerbated employer discrimination against this particular group of people.

<comment><USER24> It doesn't say that at all. Different demographics are not employed equally across all sectors of the economy. In all likelihood, women of this age group were employed in precarious positions which crumbled during the recession. Due to their age, retraining might not have been a viable option, so they stayed home. None of this requires discrimination at all.

<comment><USER26> Exactly. What else started collapsing in that period?

A: Retail</comment></comment></comment></comment></comment>


Multicore vs. Cloud Computing - <AUTHOR> http://perilsofparallel.blogspot.com/2009/11/multicore-vs-cloud-computing.html

<comment><USER2> Seems like more of prescription for multicore not happening first on the cloud. "The cloud" aims to allow overloading of _well-understood_ computers functions to an outside location. But the rise of multicore basically requires the development of new uses of computers for the new parallel architecture. The cloud offers only disadvantages in such development.</comment>


Upload Images to S3 in GraphQL Using Rails and Paperclip - <AUTHOR> http://graphqlme.com/2017/09/16/upload-images-to-s3-in-graphql-using-rails-and-paperclip/ <comment><USER2> (Background: nearly 2 years of working with GraphQL in production)

I tend to think uploading files via GraphQL is an anti-pattern. The downsides outweigh the benefits over just using presigned URLs.

Advantages:

* Possibly simpler to get a simple case up and running

* No need to use a file store that supports presigned URLs

* Can perform processing of files during upload.

Disadvantages:

* No progress events during upload, so you can't show a progress bar

* A GraphQL server wants to be as lightweight as possible, and not keep requests open for long. The common resolution strategies tend to involve creating a lot of file descriptors, dealing with files in the form of base64 strings or attachments is asking for trouble.

* Simplicity benefits don't last long.

* Perceptively slower for clients.

<comment><AUTHOR> Do the downsides still outweigh the benefits when you consider having multiple clients, especially when they might include mobile apps? If something changes about how I'm doing file uploading (eg. moving to a different file hosting provider), I really don't want to have to deal with the implications of making that change in multiple places, especially when it comes to a mobile app where you can't control what version people are running.

<comment><USER3> This isn't viable for large files. First uploading to your server, then through to S3. It will take a long time. Have your api return the upload url and then when you switch providers, instead use their signed url? AWS and Google you just PUT to the url, shouldn't change anything. Then hit your own api after it finishes

</comment></comment></comment><comment><USER4> This seems unnecessary at first pass. Why not just upload directly to S3 using their REST API and then persist the returned data via GraphQL (if so desired). Am I missing something?

<comment><AUTHOR> OP here.

There are a few reasons you might want uploads to go through the server, and they basically amount to having more control. Imagine that you have an API that's being used by multiple sources - maybe a web app and a mobile app. The initial work to create uploads to S3 directly for each might not be too bad, but what happens if you want to change something later? Maybe you decide to move from S3 to something else, or maybe you decide that each upload should actually generate 3 different sizes of the image. If you do it through the server, this is all relatively simple. On the other hand, if you do it directly to S3, then not only do you have to change it in two places now, but you also have to navigate the issue of app versions - your original app version is uploading to S3 but your new one is uploading to some other hosting service, so how do you really get off of S3? And how do you keep them in sync? Definitely possible, but much more painful than changing a few configuration options on the server and migrating the existing data, etc.

<comment><USER5> I think you are mistaken. Currently best way to handle images for user is to upload directly to S3 via JS -> Save the S3 id to db -> Resize on the fly via aws lambda.

<comment><USER6> Not an expert on this.

This doesn't seem secure. How are you confident you don't allow people to misuse your s3 bucket?

<comment><USER7> You create a policy [1] for each upload and sign it. The users browser has to provide the policy which can set the path (or prefix), limit file size etc.

[1]: [http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-HTTPPOS...](http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-HTTPPOSTConstructPolicy.html)

<comment><USER6> Thanks! TIL and I will actually need this info next month :)

</comment></comment></comment></comment></comment></comment><comment><USER8> Surely Multipart is a more standard way to achieve this?

</comment><comment><USER9> This also needs to use Go, Rust, and Haskell at a minimum.</comment>


Show HN: Send real postcards from your phone - <AUTHOR> https://www.snailjetapp.com <comment><USER2> Good beginnings, but could use some work. I've used a decent amount of these services like bond.co, Handwrytten, and manually with lob. Excited to see a new mobile app come into the space!

Some of my observations if it helps:

\- No pricing information up front, or any information about what it's going to send

\- No delivery expectation statements, is it going to arrive in a couple days or a few weeks? Longer?

\- Play store screenshot shouldn't use a Bob Ross-esque text but actually something that someone would send on a postcard

\- 3d preview at the end was cool and a surprise factor, but would have been nice to control it with my finger and have the auto rotation slow down so I can see what I am sending

\- Would be nice to be able to zoom in/out on the photo instead of being stuck with showing all of it

\- Address field had no autocomplete making it time consuming to tap out

</comment><comment><USER3> Looks really nice and I really like the name!!

I'm not sure I share as many concerns as the other commenter here. For example I thought the Thailand postcard example actually made sense.

I have a question though: would text in other languages work? Eg Japanese or Hebrew? (Both for the address and the postcard text itself).

A suggestion: make it clear from the App Store description that you can send to any destination worldwide.</comment>


How we Doubled our Conversion Rate in 2 Days - <AUTHOR> http://okdork.com/2010/08/27/how-we-doubled-appsumo-coms-conversion-rate-in-2-days/

<comment><USER2> You can double your conversion rate in two days trivially by changing the mix of traffic. For pete's sake, do A/B testing! Otherwise you will never know whether your changes are doing it or not.

I would explain the offer, in bullet points, above the fold.

1) List-of-the companies offer services to help bold save the money you are losing on your website bold.

2) These services normally cost $X, but if you buy now, you can use special, limited editions for a one-time payment of $25.

                 Big Freaking Buy Now Button

</comment><comment><USER3> You don't give up do you :) ?

<comment><USER4> In his defense, it is great post. Also, there were some great comments in the old version :) [http://www.appsumo.com/blog/how-we-doubled-our-conversion- ra...](http://www.appsumo.com/blog/how-we-doubled-our-conversion-rate-in-two- days/#comments)

<comment><USER3> Agreed, I wonder what the beef with appsumo.com is.

In case anybody wonders what this is about: <http://news.ycombinator.com/item?id=1636861></comment></comment></comment>


Shrooms always make me paranoid - <AUTHOR> I'm 14 years old and I've done shrooms twice. The first time I did them I ate 2.5 g and had a horrible trip. I locked myself in the bathroom for probably about two hours crying  and went full schizophrenic and at another point I just tried getting under a blanket. I didn't have a sober guide but I was with my friend who is my age and took the same dosage. (He had a good time both times) but when we realized my trip was not going well at all, a few hours in we called a sober friend to help me out. He did nothing but take advantage of me while I was vulnerable by looking through my bag and even stealing my wax... but that's aside from the point. The second time I took the same amount and still had no sober guide. I figured I only had a bad trip the first time bc we were close to getting caught by his parents (we'd be FUCKED). So I tried them again. As soon as they kicked In, familiar feelings arises. I started feeling an increased heart rate, a pit in my stomach, I was cold, and extremely paranoid-> I even felt like I wanted to cry at one point (I held back this time). I tried enjoying the beauty of the hallucinations but I was having basically a full blown panic attack while my friend was again having a great time and couldn't exactly help me, as he was fucked up. This lasted hours but I spent them outside trying to enjoy myself. I decided to leave my friends house and I immediately felt amazing for the entire comedown experience. Are shrooms just not for me? I wasn't getting paranoid bc of parents (we were home free for hours) <comment><USER2> HN isn't the place to ask and 14 isn't the age to do it, but that's not so unusual. Find better friends, finish school. If you go into a trip with anxiety it'll just get magnified, and anxiety about things like avoiding parents isn't worth mixing up with your mental exploration imo. Everything will be 1000x easier in 5 years and you won't have lost out.

<comment><AUTHOR> Thanks

</comment></comment><comment><AUTHOR> Also I smoke a shit ton of weed daily (and have been for months) so I didn't think it would be such a problem. Soon I realized shrooms are on a very different level. But after the first time I didn't want to leave it on a bad note so I figured I'd give it another shot.

</comment><comment><USER3> Dude, your brain is still in early developmental growth mode. Trust me: limit your intake of psychedelics until later in your life. There are studies all about this. There's no huge rush to do them besides feeling cool. Your life, but you sound smart enough to want to prioritize your brain.

</comment><comment><USER4> Yeah, I'm not buying this troll post.

I don't think a 14yr old would write like this. Especially not on this site with a fresh account out of the blue.

This reads like what a 30 year old thinks a 14 year old writes like.

<comment><AUTHOR> Although I appreciate the complement I am 14 and I don't see wtf anyone would get out of posting this long ass story if they were just a "troll"</comment></comment>


Beson – Binary Extended JSON - <AUTHOR> https://github.com/GoblinBear/beson-go <comment><USER2> Compared to BSON this looks safe.

</comment><comment><USER3> Another MsgPack reinvention?

<comment><AUTHOR> Can be used to store data or transfer data.

<comment><USER3> So does msgpack</comment></comment></comment>


Show HN: Specipic lets you specify what's in a picture - <AUTHOR> http://specipic.com/pic.php?p=1

<comment><USER2> Similar concept to a fashion related tagging platform my friends worked on last year - [http://ascotproject.com/](http://ascotproject.com/). Last I checked it hadn't really gone anywhere.

<comment><AUTHOR> Similar indeed. I have the fashion industry in mind for this as well but I'm thinking broader. The original inspiration for this came from interior design blog posts so that is also a target market. I was also thinking of hosting things for professionals like web design specifications.

Specipic is at an early stage and I'm really just trying to gauge interest from the feedback at this point. There are tons of features I've thought of to add but there has to be a need from real users.</comment></comment>


Ask HN: Where are the gays at? - <AUTHOR> I posted a message on the Startup School Fridge wall looking to see if there were any other GLBT entrepreneurs going to the event, and got no reply. Working as a software engineer, I'm generally used to being the "token gay guy" at the office, but I'm curious as to whether any of you guys (or girls) are roaming HN wondering if you're also alone out there. Has Y Combinator ever funded a startup with a GLBT founder? Are there any other GLBT hackers out there? Am I missing some other awesome resource where we should all be metting? :) Thanks! <comment><USER2> Don't personally see any reason questions such as "Has Y Combinator ever funded a startup with a GLBT founder?" matter even a tiny bit (unless there was some reason for a discussion along the lines of "Are YC people homophobic?")

Side note: I'm bi, and still don't care "where the gays are at".

<comment><AUTHOR> I think of it as being similar to the questions about other types of minorities as startup founders. The gay community is pretty distinctive, and I'm curious to see if there's any overlap between that and the tech community. Didn't mean to offend you.

<comment><USER2> No offense at all, perfectly happy for you to be interested - just expressing my view that it doesn't matter, to me at least.

</comment></comment></comment><comment><USER3> Joel Spolsky and Peter Thiel. I didn't find out they were gay for a long time, though I guess it just shows that it's not/shouldn't be anything remarkable.

<comment><USER4> I find the first one really surprising for some reason.

<comment><USER5> Joel was a real, honest-to-goodness role model for me when I was 18 and still wondering whether tech was a place where you could comfortably work as an out gay person.

He doesn't seem to do much in the way of gay activism -- his blog bio used to mention his partner by name, but it's been dropped. I sort of wish he'd do more, but on the other hand, his quiet, unassuming but unabashed acknowledgement of his sexuality is really the ideal I feel we should be aiming for.

Me, I overcompensate, but that's because I'm still angry about high school :-) It gets better, kids!

</comment></comment></comment><comment><USER5> Hi! Gay co-founder of awe.sm here. I've considered posting exactly this Ask HN a few times, pleased to see somebody else did.

My side project <http://gaygeeks.org> is also probably pretty relevant here, if you'll excuse the (second) shameless plug :-) It's not specifically for hackers, but there are a lot of tech people in there, unsurprisingly.

<comment><AUTHOR> Hey Laurie! I didn't count you out, of course -- I'm surprised you didn't recognize me by name. :)

</comment></comment><comment><USER6> "Has Y Combinator ever funded a startup with a GLBT founder?"

Yes, definitely. Considering YC has funded hundreds of companies, I expect there are quite a lot of them, but one of the characteristics of hackers is that we tend to talk about ideas instead of personal lives, even at social gatherings, so it's not something that comes up often. The ones I know of were friends of mine before they did YC.

</comment><comment><USER7> While I empathize with the purpose of this posting, I don't personally see why it matters. I want to surround myself with smart people, be they gay, straight, or somewhere in between.

Someone posted that Joel Spolsky is gay. I remember hearing something about that a while back, but had honestly forgotten about it. What matters isn't that he's gay, but that he's smart and gets things done. Same goes for everyone else!

</comment><comment><USER8> Why should it even matter? What unites all of us is a love for entrepreneurship or hacking or both. What difference does being gay make in this field? No one really cares about your sexual orientation in tech. Don't get me wrong I have nothing against gay people, but I find it patronizing that you need to find a "Gay Entrepreneurs" group, because I don't see people looking for the "Womanizing Entrepreneurs" or "Alcoholic Entrepreneurs"... Hell if I go about asking HN where the "Insomniac Entrepreneurs" (that would be me) are I'll get massive down voting, which won't haven to the same question but on the gay angle for political correctness.

</comment><comment><USER9> They're out there. Does it really make a difference?

<comment><USER10> Yes, it does make a difference.

Finding a community of "People Like You" can make or break someone's journey into a new field. That means the hacker community at large needs to be equally supportive of queer hackers, or a queer hacker sub-community must form.

I'm all for the former, but let's face it: historically, us straight white males (who make up the vast majority of contemporary hackerdom) are pretty awful at making people who "Aren't Like Us" feel comfortable & welcome. (Hell --we have a hard enough time staying comfortable with _eachother_.)

<comment><USER2> I disagree with that stance on "equality".

I want to be outraged when someone isn't treated equally because they're gay, I don't want to celebrate when someone who's gay isn't treated negatively.

<comment><USER10> Why not both?

<comment><USER2> Because it's not equality to be happier about something good happening to someone who's gay/black/female/etc than to someone who's white/male/etc.

Does a gay man deserve anything more than a straight man?

<comment><USER10> You are correct; it does not reflect equality. But, unfortunately, it does reflect reality. In addition to being outraged at our distance from equality, I believe it is constructive to celebrate each step we take towards that goal.

<comment><USER2> To an extent, sure. To use Obama as an example (black instead of gay, but close enough), the fact that he proved a black man _can_ get elected is fantastic, I have to admit that (I'm English) my views of America are very strongly tainted by the large amounts of racism there, both historically and today, and it's great to know that it's not quite as bad as I feared. But that's just a footnote in my mind, the fact that he's black didn't make me want him to become president - though as it happens, I did/do support him, but for his politics rather than his being a minority.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> As for resources, have heard about this organization dedicated to helping lgbt entrepreneurs: <http://startout.org>.

<comment><USER12> Lorenzo Thione, the technical co-founder of Powerset (-> Bing), helps run StartOut.

I've been to a few of their SF events, but they are usually sparse on hacker attendees.

</comment></comment><comment><USER13> Chris Hughes, founder of Jumo and former Facebook co-founder/spokesman, is gay. Not a technical hacker, but a hacker nonetheless.

</comment><comment><USER14> There are gay people everywhere and they are welcome here. But does it really matter if there are some here or not?

</comment><comment><USER15> I just disliked The Fridge the second I saw it.

</comment><comment><USER16> I'm not gay but the father of computer science, Alan Turing, was.

</comment><comment><USER17> Don't know any resources for queer hackers, but both of our founders are queer.</comment>


Show HN: Transparent Startups – From Side Projects to Profitable Startups - <AUTHOR> http://www.transparentstartups.com <comment><USER2> i really liked the idea, but i would love to see "how they did it" kinda interviews with growth chart. when they had a breakthrough etc.

<comment><AUTHOR> Thanks for the feedback. The idea is show their monthly progress with the growth numbers but also linking to the founders' revenue reports (see "INCOME REPORTS" section on their profiles) . Most of them are already detailing very well "how they are doing" on a monthly basis, so I rather have a monthly update than one time interview. For example, BugMuncher's founder described "how he did it" on his series of (19 so far!) blog posts [http://www.transparentstartups.com/startups/bugmuncher](http://www.transparentstartups.com/startups/bugmuncher) (clicking on the link for each month goes to their blog reports). So every month, the founder will be able to add the new revenue figures as well as linking to the new report, keeping Transparent Startups as the place where you can follow the growth of these business month by month.

<comment><USER2> oh sorry, missed the revenue reports which is the better than interviews.

<comment><AUTHOR> Agreed! From tomorrow, 1st October, founders will start publishing their September business figures and reports. I think they're going to be much better than August numbers.

</comment></comment></comment></comment><comment><USER3> Feels kind of like a mixture of [https://www.indiehackers.com](https://www.indiehackers.com) and [https://baremetrics.com/open](https://baremetrics.com/open).

Good work on the UI. Very usable.

</comment><comment><AUTHOR> Hi HN mates. I'm a Software Engineer and a Startup aficionado. I'm passionate about learning from Entrepreneurs that started from zero and managed to build a profitable and growing business. I'm always looking for inspiration and I do a lot of research about this kind of startup stories, especially coming from developers and tech founders. That's why I created Transparent Startups. What do you think about the site? What about the idea? Let me know your thoughts.

</comment><comment><AUTHOR> I'm making this side project to help startups and people that want to become entrepreneurs. I need your feedback to continue working efficiently on this project.

<comment><AUTHOR> No feedback at all is worst than negative feedback :(

<comment><USER4> Do you have user behavior tracking (mouse position, scroll events) on the site?

<comment><AUTHOR> Not at the moment, I only have GA running. Why're you asking? Have you noticed any elements that maybe is not well positioned? Any tool recommendation for this? Thanks.

<comment><USER4> You don't have anyone providing written feedback, but you've got up-votes, indicating traffic. If you had a better idea as to what that traffic was doing, you'd have more "feedback" than you do now.

I don't have tools I know of, sorry :/

<comment><AUTHOR> I've installed Page Analytics and I can see where the clicks are going. Even I don't have much traffic seems the people that visit the site are quite engaged. The only problem I can see is that not many of the visitors Subscribe to the Newsletter. I will work on that. Thank you mate ;)</comment></comment></comment></comment></comment></comment>


Slashdot alternative in the works - <AUTHOR> http://www.soylentnews.org <comment><USER2> The interesting news for me were:

\- Slashdot was redesigned (it seems I really haven't been there in ages, and I had a 6 digit ID starting in 1 :) )

\- Slashdot Media is doing badly:

[http://www.prnewswire.com/news-releases/dice-holdings-inc- re...](http://www.prnewswire.com/news-releases/dice-holdings-inc-reports- fourth-quarter-and-full-year-2013-results-243471811.html)

"revenues decreased 9% year-over-year to $4.3 million for the quarter ended December 31, 2013 from the comparable 2012 period, due primarily to the financial results at Slashdot Media"

"advertising revenue has declined over the past year and there is no improvement expected in the future financial performance of Slashdot Media's underlying advertising business. Therefore, $7.2 million of intangible assets and $6.3 million of goodwill related to Slashdot Media were reduced to zero"

On SoylentNews itself, I don't think a MediaWiki install will take away users from Slashdot, I see they're trying to install SlashCode, good luck with that.

<comment><USER3> " _Slashdot Media is doing badly_ "

I've always believed that admin moderated link aggregators have a ceiling as far as traffic/popularity goes. And so far, I seem to be correct in that belief. Sites like mefi, /. and fark all hit a peak than plateau or more commonly, drastically decline. I firmly believe a large part of that is due to the moderation itself. When you have the same group of minds selecting the content that gets seen, over the course of years, the users eventually get burnt out seeing the same type of stuff, chosen by the same people over and over again. The content becomes stale even if its fresh (if that makes sense).

There is one exception to this, however. That's reddit. Reddit's genius lies in its subreddits. That, in short, is the ability for users to create _their own_ link aggregators within the site. In this, the content can never 'get stale' because if you get bored visiting /r/Cars, and your interests are now about photography, there are a dozen different subreddits focusing on that niche. There is always something there to keep your attention. Maybe you're a political nut, maybe you're into botany, or even my little pony. There's literally something for everyone. It's a link aggregator with virtually no limits.

I think the biggest thing that separates reddit from all the rest, however, is that the links aren't moderated by the admins or paid employees of the site. Each subreddit/community has its own mods who make the rules. Some communities are modded very laissez faire-ish while others like /r/askscience are modded with an iron fist. The drawback to that is it can give rise to internal drama, but I believe that's easily offset by the limitless potential. I think reddit will eventually be spoken in the same breath as twitter and facebook a few years from now and sites like slashdot, fark and mefi will all but be gone or forgotten.

<comment><USER4> The corrollary to this is that all community-moderated sites (including this very one we sit in) tend toward Digg, and ultimately toward Cheezburger.

There's a cycle: Clique with narrow shared self-moderated interests, becomes cool, attracts more people with broader interests, self-moderation becomes wider and people vote up things with more general appeal, until ultimately it all becomes a new "cool things on the internet" bucket. I tend to prefer sites with stronger guidelines and stronger moderation.

Stack Overflow has strong guidelines but still gets its share of detractors, because it doesn't allow "cool things on the internet".

Slashdot is still mod-curated, has sections, but stories don't hit the front page unless voted up. It's a different model to HN, but not _that_ different. It still relies on other people's clicks to make me see it, and in that model the community becomes the key factor. Is Slashdot's community dead? That's the question, not just the infrastructure.

</comment></comment></comment><comment><USER5> Meanwhile, many people have (re)installed a newsgroup client and are actively commenting at comp.misc.

(Or reading it through Google Groups: [https://groups.google.com/forum/#!forum/comp.misc](https://groups.google.com/forum/#!forum/comp.misc) )

<comment><USER6> What other groups do HN users recommend?

<comment><USER7> There is a usenet thread discussing groups for geeks here: [http://squte.com/usenet/comp.misc-list-active- newsgroups](http://squte.com/usenet/comp.misc-list-active-newsgroups)

Among those recommended are: comp.editors, comp.os.linux.advocacy, sci.electronics.repair, rec.games.roguelike.nethack, sci.logic, sci.physics.relativity, alt.philosophy & uk.rec.sheds

</comment></comment></comment><comment><USER8> I do wish soylentnews all the luck with the new news site. If it is any good people will come.

But do not tell your readers what to do. The "don't visit slashdot during this week" advice is a bit weird and isn't helping. Focus on your project, not on another one. It is my decision to visit if I want.

If slashdot serves me a beta page (which they just did) I'm out and they will see less of me that way.

</comment><comment><USER9> >SoylentNews is people!

>"News fresh as processed corpses"

I can't even describe how bad this is. I guess it's slightly better than if they called it "The Cake is a Lie News".

</comment><comment><USER10> For those who haven't gone to slashdot for a while, here's the beta site which seems to be the source of controversy: [http://beta.slashdot.org/](http://beta.slashdot.org/)

Personally, I don't think the design is the problem but the person who seems to be selecting the stories...

</comment><comment><USER11> The actual problem is that approximately nobody reads Slashdot any more.

Ten years ago, a Slashdotting was in the hundreds of thousands of hits. Nowadays, it's a couple of thousand over maybe six hours.

So this is an attempt at a rump community forking a dead product.

</comment><comment><USER12> >>> Check out the look and feel of the new site

>>> [http://imgbin.org/index.php?page=image&id=16688%7C](http://imgbin.org/index.php?page=image&id=16688%7C)

Really? Are they kidding?

<comment><USER9> I'm beginning to believe this is an early april fool's joke.

<comment><USER12> I actually checked the dates to see if this wasn't a project that was started back in 2002, but the article is actually recent.

<comment><USER13> Yup. Slashdot was driven by open source software before Dice.com took over. Now you have to go back to that point to get source code and yes, it's ugly and mind bending to try to work with it. But it has been done before: [http://barrapunto.com/](http://barrapunto.com/)</comment></comment></comment></comment>


Ask HN: Examples of good project structure for non-trivial Python RESTful APIs? - <AUTHOR> Looking for some good examples of an API-only Python application (i.e., excluding forms, etc.) that has well defined/strongly opinionated project structure. Ideally includes some or all of SQLAlchemy, Flask-Restful, Marshmallow, and Alembic for database migrations. <comment><USER2> Good, non-trivial, and RESTful -- pick two. REST doesn't define any sane way of reporting execution errors (and no, smashing errors in execution layer into transport layer, i.e. HTTP codes, is not a sane way).

The only good way to use REST is to use it as it was intended: for applications employing only trivial CRUD model. Trying anything above that calls for RPC.</comment>