Historicizing the Self-Evident: An Interview with Lorraine Daston - <AUTHOR> https://lareviewofbooks.org/article/historicizing-the-self-evident-an-interview-with-lorraine-daston/ <comment><USER2> Great article! She mentions that probability and law are intertwined, in particular in two aspects: degrees of proof, and aleatory contracts. It's also been suggested that the originators of probability were either lawyers or sons of lawyers [1].

There's another link that I've found fascinating: the philosophy of law put forwards by Oliver Wendell Holmes Jr (Supreme Court justice 1902-1932), and the philosophy of modern machine learning. Holmes gave a famous talk in 1897, "The Path of the Law", in which he said that law is nothing more than prediction. Throughout his life he thought and wrote about the relationship between predictions (by lawyers, by their clients, and by judges anticipating review by other judges), rationales (as written out in a judge's decision), and "scientific-style" explanations (the general legal principles that emerge over time). He writes about how the law learns to draw separating lines between clusters of cases, in language that might have come from a modern textbook on k-nearest-neighbours.

Reading about Holmes [2], and reading about modern takes on explanation and prediction in machine learning [3], I think there are some striking parallels -- and I wonder if Holmes's ideas might lead to new ways of thinking about explainability in machine learning.

[1] [https://www.oxfordhandbooks.com/view/10.1093/oxfordhb/978019...](https://www.oxfordhandbooks.com/view/10.1093/oxfordhb/9780199607617.001.0001/oxfordhb-9780199607617-e-3)

[2] [https://ndpr.nd.edu/news/oliver-wendell-holmes-jr-legal- theo...](https://ndpr.nd.edu/news/oliver-wendell-holmes-jr-legal-theory-and- judicial-restraint/)

[3] [https://projecteuclid.org/euclid.ss/1294167961](https://projecteuclid.org/euclid.ss/1294167961)

</comment><comment><USER3> Great timing: I just finished "Objectivity" the book she co-authored with Peter Gallison. It is a phenomenal work on the history of science, looking at the development of the concept of Objectivity throughout the enlightenment through the lens of scientific atlases. Her writing is beautiful, concrete and lucid. Highly recommended to any Hacker News readers.

</comment><comment><USER4> _At that time, most heavy-duty calculation took place either in government administration or in astronomical observations. In both of these sites, a great deal of calculation had to be done by hand. Already in the 18th century at the Royal Observatory in Greenwich, forms had been developed that divided the task of a complex calculation into small enough steps — so that, at least at the lower end, the Observatory could employ very cheap schoolboy labor in order to complete them economically.

Over the course of the 19th century, schoolboys were increasingly replaced by women as the cheapest and most reliable form of labor. We can read interesting correspondences from astronomers at Oxford and Harvard recruiting the first generation of women college graduates to perform calculations for half the wages of men. By the late 19th century, the Bureau of Calculation at the Paris Observatory was entirely feminized._

This is a trend that I've noticed in the ~30 years I've been doing this. As computer programming gets more advanced, with greater separation of concerns and finer granularity of tasks, it's becoming more marginalized. My feeling is that programming will no longer be viewed as a lucrative career within the next 10 years, and that it will be largely replaced with algorithms generated by machine learning within 20 years.

I included the quote about calculation being largely done by women before it was automated because we're seeing this happening today in developing countries. They'll catch up to the developed world between 10 and 20 years from now, just in time to also be automated by AI.

I find this all tragic to some degree, because my fondest dream of making computer science available to everyone will also eventually lead to its undoing. This is simply not the future that I anticipated growing up. We're going to end up in a world of ultimate competition and wealth inequality instead of automating the means of production so that everyone can enjoy the prosperity of their basic needs being met with something like UBI. So far the evidence for that is overwhelming, and I'm only seeing the smallest pockets of resistance. So I don't have high hopes for the future anymore.

</comment><comment><USER5> [https://archive.md/3F0Hl](https://archive.md/3F0Hl)</comment>


Ask HN: How engineering teams look like when super IT companies start failing - <AUTHOR> There have been many super IT companies which used to be the top of the entire industry and shine, but now being either nowhere or struggling. E.g. Xerox PARC, Bell Labs, DEC, HP, Apple in 90s, IBM, Sun, SGI, Nokia, etc. People could possibly list 100 reasons they fell off the throne. But I am curious how the internal engineering teams/culture look like when these superstars started falling from the acme. I guess the culture would change and focus on short-terms with pressures from competitors, etc. It would be interesting to know if people are willing to share their experiences. Or maybe recommend some books/articles to read about that. <comment><USER3> I've seen the decline of one of these companies as a consultant, here's what I saw:

Management will start fighting for different features, and communication on what to build will be vague, with the possibility of engineers sitting idle while they fight it out.

All benefits and travel cancelled.

Once the development plan is decided, there's huge pressure from higher up to work quickly. But they will not respond to feedback that some of their requests are conflicting or impossible.

Senior engineers are gone now, hiring starts, but the managers are unable to assess the tech capabilities so inappropriate hires (people who can't even fizz buzz) are hired.

These engineers spend months "coming up to speed" then usually quit or have some health problem, or file a lawsuit

Rapid project flip flopping starts. Developer Time managed in increments of less than 1 day.

Computing infra starts becoming unreliable because the senior devops are gone, and it's been outsourced to people who can't run a cluster - in the organisation I was at we had a 75 node Hadoop Linux cluster which was administered by 3, 20 year old juniors who had not used Linux before.

Deliverables failing and quietly deadlines being missed. Now managers are getting fired. New managers are overwhelmed at the giant mess. Manager turnover is high.

Nothing is really getting done, legacy projects put in by the competent people before they left are the cash cows, but the giant mess the company is in means it will slowly decline.

Any tiny win is celebrated as a giant triumph- some junior uses Keras to make a simple classifier in the weekend and suddenly the company "has an AI division" - though the benefits of this announcement are short lived because there's no monitisation or strategy, or actual product

I was on a 6 month contract and didn't renew it after that, the company still exists, but they aren't growing

</comment><comment><USER4> The Decline and Fall of IBM by Robert X. Cringley is an interesting read. Some of Alan Kay's writings give an indication of how Xerox Parc fell. Bell Labs is an outlier in that it was the AT&T break-up that ended up starving it of funds. You might also want to read some of Steve Blank's blog entries - <USER2> site is very well organised so it is easy to find his version of events.

Since your question specifically mentions engineering teams, the changes there come after PHBs start issuing Dunning-Kruger Syndrome based edicts. Engineers at first push back and when that fails, the ones who can find new jobs leave in droves. Eventually the best engineers are gone and only the less talented ones (generally more junior due to lack of of experience) remain which in turn leads to a dual problem of them not knowing enough to push back and implementing solutions poorly partly due to lack of ability and also partly due to lack of motivation to do the right thing. While that is going on, the managers get increasingly antsy and demanding, issuing ever more bad decisions. It really becomes a downward death spiral.

As an aside, I worked with DEC and watched (from the side-lines) as it was acquired by Compaq and then the merger with HP. The management incompetence was unbelievable and the technical teams' morale sank like a lead balloon.</comment>


jQuery 1.4rc1 - <AUTHOR> http://jquery14.com/pre-release-2/jquery-14rc1

<comment><USER2> Is there a changelog? edit: I can't read

The final release (along with the full changelog) will occur this Thursday, on January 14th, coinciding with jQuery's 4th birthday.

<comment><AUTHOR> It would be interesting to know what changed between the last beta release and this one however.

<comment><USER3> All the bugs that were fixed after 1.4a2: [http://dev.jquery.com/query?status=closed&version=1.4a2&...](http://dev.jquery.com/query?status=closed&version=1.4a2&resolution=fixed&order=priority)

</comment></comment></comment><comment><USER4> They should really update that website; I just want to learn about JQ 1.4 in general and its changes from 1.3, but that site just talks about the event and the RC release, I want general info.

Even though I could probably find it if I looked harder or checked jquery.com, one would think jquery14.com would have more blatant information about uh, jQuery 1.4.

<comment><USER5> <http://api.jquery.com/category/version/1.4/>

Gotten from: <http://jquery14.com/pre-release-1/new-jquery-api-site></comment></comment>


Goodbye Docker and Thanks for All the Fish - <AUTHOR> https://www.linkedin.com/pulse/goodbye-docker-thanks-all-fish-maish-saidel-keesing/ <comment><USER2> dupe: [https://news.ycombinator.com/item?id=19351236](https://news.ycombinator.com/item?id=19351236)

<comment><AUTHOR> ah yes, thx, I missed that. Hopefully dang can remove this one.</comment></comment>


JavaScript MVC frameworks: A Comparison of Marionette and Chaplin - <AUTHOR> http://9elements.com/io/index.php/comparison-of-marionette-and-chaplin/

<comment><USER2> Everyone's entitled to their opinion ...

        > When using Backbone, you need to set up a scalable architecture
        > yourself. Do not write applications in plain Backbone and make
        > the same mistakes others did, but put yourself on the shoulders
        > of giants. Have a deeper look at Marionette, Thorax, Aura,
        > Chaplin and other architectures [...]

... but here's mine. This advice is pure malarkey. If you look at the really impressive, sophisticated, polished JS/MVC apps (<http://backbonejs.org/#examples>), you'll find that they're pretty much all using "plain" Backbone, without any of the meta-frameworks. If you know what you're doing, you'll be fine.

That said, if you're just getting started -- perhaps are hoping to make a quick toy app, and the freedom of "plain" Backbone feels a little overwhelming, the meta-frameworks are a great way to get your toes wet while being guided down a particular path. Once you're comfortable, and begin to realize (to pick on specific examples from the article):

* That manual management of event removal is usually more complex than architecting your application so that logical modules can be garbage collected naturally...

* That having a top-level "Controller" God object isn't always wise...

* That pre-fab "ListViews" are often nice for simple cases, but fall down when you want to do something truly custom and high-performance. (The simple case just being one line of code to implement yourself, anyway).

* That not having _all_ of your URLs available _all_ of the time is an anti-pattern...

* That hiding and showing different parts of your app with simple CSS classes is usually less complex and faster than building up and then having to tear down large view hierarchies.

* That throwing away all of your models and views by _default_ when a different route matches is actually the opposite of the approach you normally want to take -- at least if you're hoping to achieve a smooth app-like look and feel...

... you'll begin to understand that _you_ are the person best equipped to design the data + UI architecture that best suits your app.

<comment><USER3> Sorry, you might be the author of Backbone, but this is one aspect that you might have gotten wrong. If you had considered it, there would have been more meat in Backbone.

Following your logic, we should all be writing code in assembler or even machine code. Higher levels of abstractions are always good and not everyone ( > 95% of the apps ) needs to fine tune their app to the last processor cycle.

If we are writing an app for a Rocket launcher or some high critical app like that then I would agree that the developer of that app shouldnt be using higher level abstractions / library / frameworks. But these are webapps for gods sake and the computers of today are perfectly capable of handling an average web app and provide 60fps rendering ( unless the developer is seriously stupid ) or in the worst case 30fps atleast (which is smooth enough ). The question is a tradeoff between how much performance you want and how much speed in development you want.

I am sure that for the average developer out there, Marionette or Chaplin will be faster than plain Backbone.

<comment><USER4> I disagree, it might be faster on the short run but not on the long run. small swift mvc is better than standing on the giant shoulder of the other guy.

Seriously backbone is not hard to learn, fucking easy to extend, specially removing the rendering boilerplates, thats like 30 seconds of extending the view system.

You also do not address the main point, most examples are plain backbone, why is that? probably because handling your own "marionnette" is easy.

</comment></comment></comment><comment><USER5> I wish more people would be this open:

"As one of the main authors of Chaplin, I may be biased. But I do see weaknesses and room for improvement."

instead of the bashing that we see in many comparisons.

</comment><comment><USER6> Note to those not familiar: Marionette and Chaplin are frameworks built on top of the Backbone.js library. It's interesting to see a comparison of frameworks that doesn't mention Ember.js or AngularJS.

</comment><comment><USER7> The article should've been called "Marionette Vs. Chaplin" for obvious reasons.

</comment><comment><USER8> This is a nicely detailed, nuanced overview. The conclusion contains the thesis of the comparison:

> _Marionette is rather modular, you can pick the patterns you like. (In my > opinion, you should pick most of them because they can improve your app.)_

> _Chaplin is more like a framework, it's centralized and rather strict. The > Chaplin authors think these guidelines offer convenience and boost > productivity. Your mileage may vary, of course._

I've played around with Marionette and am now tempted to try out Chaplin, precisely because of its rigidity...Backbone's advantage is how minimal and flexible it is, but of course, that aesthetic and philosophy is what creates the need for Chaplin in the first place. I wouldn't mind using it to build a hobby app if, by doing so, I gained a better understanding of best (or at least, very good) practices in structuring a Backbone app</comment>


Nebulet: A microkernel that runs WebAssembly in Ring 0 - lachlan-sneff https://github.com/nebulet/nebulet <comment><AUTHOR> The author has previously done AMAs on /r/rust: [https://www.reddit.com/r/rust/comments/8j7y1f/i_am_lachlansn...](https://www.reddit.com/r/rust/comments/8j7y1f/i_am_lachlansneff_creator_of_nebulet_a_rust/) and [https://www.reddit.com/r/rust/comments/8bzex4/a_microkernel_...](https://www.reddit.com/r/rust/comments/8bzex4/a_microkernel_that_implements_a_webassembly/)

And yes, for those comparing this to The Birth And Death Of JavaScript: _" After watching it for the first time, I realized that the joke idea that Gary proposed could actually work, and work well! I'd say that that talk is probably why I started writing Nebulet."_

<comment><USER2> It should be renamed METAL sometime in the future and we should start implementing an open source shim named Cacao, before the nuclear war break out.

<comment> lachlan-sneff An earlier version of nebulet was named "Metal OS".

</comment></comment></comment><comment><USER3> I love it. God speed.

The idea of a multi-user time-sharing virtual memory operating system is seriously outdated.

Today, the server OS could be based on a one user, multi computer abstraction, with multiple gigs of memory, solid state storage, and reliable gigE+ network as assumed essentials.

Entire sub-systems of the current linux kernel can be omitted.

Most of the VFS layer, with so many optimizations for spinning rust. Right out.

Paging, swapping, shared objects, address randomization and PIC. Right out.

User access controls, file access controls, network access controls / firewalls. Right out.

Of the 50,000 device drivers in the linux kernel, probably 50 deserve to be supported.

For a workstation with graphics / GPU and console support, and every pluggable external device support, maybe some sort of legacy emulation layer would work. Basically run a linux VM for backwards compatibility with those 50,000 devices. Would be less work than implementing those drivers...

Remember, Linus was once a 19 year old with a dream, and a small repo of prototype kernel demo code, 25 years ago.

<comment><USER4> As part of the lightly educated masses, this sounds good to me. Can anyone more knowledgeable than me comment on the feasibility of something like this?

<comment><USER5> To the extent the OP took it, as a universal way that 'servers' could go, not very feasible. Partly because we already HAVE what's being described, in the form of hypervisors.

We then layer within it all that other stuff that's chopped away to bring us back to a system that has a bunch of stuff we want, but most importantly that supports a wide range of applications we want to deploy.

The big problem with stripping back to the absolute bare essentials is that you optimize towards a local maxim, and severely limit your flexibility. This is certainly the way you want to go if you have deep pockets coupled with a need for bare-bones speed that can't be sharded in an effective manner. But that's not the majority of workloads.

<comment><USER6> Honestly the overhead of a modern OS, especially one like Linux which has been finetuned for these sorts of workloads is negligible. More importantly, any gains you make by stripping out parts of the OS you don't need you immediately throw away by going for a virtualised, sandboxed ISA.

If you want to squeeze more performance per watt than you can get from a modern server, the only way forward is to code your application in Verilog and to run it on an FPGA or ASIC.

<comment><USER7> It's not only about performance per something though, see e.g. this paper about boot time optimizations: [http://oirase.annexia.org/tmp/paper.pdf](http://oirase.annexia.org/tmp/paper.pdf)

</comment></comment></comment></comment></comment><comment><USER8> So in light of Spectre, the Chrome developers don't believe it's safe to have any sensitive data in the same memory space as V8, but WebAssembly is safe in ring 0? What am I missing here?

[https://chromium.googlesource.com/chromium/src/+/master/docs...](https://chromium.googlesource.com/chromium/src/+/master/docs/security/side- channel-threat-model.md)

<comment><USER9> "Normally, this would be super dangerous, but WebAssembly is designed to run safely on remote computers, so it can be securely sandboxed without losing performance."

I'm staring at this sentence hoping the author is being supremely sarcastic...

<comment><USER10> I think they're saying that WebAssembly code doesn't lose any performance when you sandbox it, _not_ that WebAssembly has equivalent performance to native code.

</comment></comment></comment><comment><USER11> He mentions Singularity as inspiration which is exactly what came to my mind.

This isn't an unproven space. Singularity proved you can use a single global address space (given 64-bit) and software to isolate processes - something MS Research called Software Isolated Processes.

This requires a verifiable bytecode/VM system so the kernel can verify the instruction stream at load time. In a way, WebAssembly is even easier to verify than C#.

It's obviously a research toy but that isn't a bad thing.

<comment><USER12> That was before spectre happened. Software isolated processes are now basically impossible to do. All the CPU microcode updates & workarounds are purely about fixing isolation between processes & rings that the CPU is aware of.

<comment><AUTHOR> AFAIK, all the CPU microcode updates were for fixing Meltdown, not Spectre. Unless and until CPU manufacturers find a way to fix speculative execution for good, software-based mitigations would seem to be mandatory.

<comment><USER13> The problem is that "fixing speculative execution" means "stopping to make things faster in any measurable way". Given that the caches are there to make things 2 orders of magnitude faster, this is rather crippling.

The hardware based protections are the only boundary where you can "fix" speculative execution without slowing down your system by 100x.

The hardware boundaries effectively act as hints that say to the hardware "slowing down things by 100x here won't kill performance too badly -- we should turn off speculation for safety". Without those hints, everything needs to get that much slower.

<comment><USER14> Considering the hardware mitigations aren't some magic bullet, but are a "big hammer" that cripples CPU OoO behavior in crrtain ways _for everything_ , software mitigations don't seem that unreasonable. Of course, "software mitigations" use CPU facilities as well, and can allow for making critical sections safe. In practice, it is well understood what code needs to be written in a spectre-safe way. The difficult question isnhow to write code to anticipate the next 10 varieties of speculation attacks...

</comment></comment></comment></comment></comment><comment><USER15> > Normally, this would be super dangerous, but WebAssembly is designed to run > safely on remote computers, so it can be securely sandboxed without losing > performance.

This seems a like a pretty strong claim. I hope that it's true, but I'm not going to be running WASM modules in ring 0 any time soon.

<comment><USER16> WASM is a stack machine, which does not add to security. You sense that no real VM specialist, nor one in field of security put hand to its design.

When I first read the specs, it screamed to me "VM design 101." It feels to be someones master thesis, more than a piece of production software. Just as the original Netscape Javascript 1.0 was.

It will have its fair share of "typeof null" style bugs to come.

<comment><USER17> Why is a stack machine bad for security? The JVM also had sandboxed execution as a goal and also uses a stack machine. But perhaps the stack machine was choosen because it tends to produce smaller binaries (which is important for things you send over the net) and not for security reasons?

<comment><USER16> >But perhaps the stack machine was choosen because it tends to produce smaller binaries (which is important for things you send over the net) and not for security reasons?

Who knows what was in their heads, but stack level attacks are as easy as to exploit unsafe type casting in anything that amount to a stack pointer.

My guess why they choose to do it that way is simply because there are more literature available for mid-tier coders in style of "VMs for dummies" and they wanted to always have an option to not to do extensive research on every small mater, and just copy JVMs behaviour.

<comment><USER18> The stack in stack-based VM does not refer to the real stack that contains return pointers that can be manipulated. You don't have access to that from web assembly.

The security problems of java are not related to it being a stack-based VM at all. The problems are that the api lets applets do things they shouldn't be able to and arbitrary code execution during serialisation.

</comment></comment></comment></comment></comment><comment><USER19> Obligitory:

[https://www.destroyallsoftware.com/talks/the-birth-and- death...](https://www.destroyallsoftware.com/talks/the-birth-and-death-of- javascript)

<comment><USER20> If it's actually prophecy coming true, people might want to leave SF before it becomes part of the exclusion zone.

<comment><USER21> It's already happened, it's just that the SF/MV overmind migrated to another host and has resumed normal operation.

</comment></comment></comment><comment><USER22> Linux already allows untrusted user code to be run in a ring 0 VM, via BPF/eBPF. Honestly, given the choice between Web Assembly and eBPF to run in kernel mode, I'd go with Web Assembly. The fewer secure VMs that have to be audited, the better.

<comment><USER23> To be fair, BPF/eBPF is far more designed for simple and obviously correct verification. For eBPF, it's 10 register, two address, but load store, so that on CISC and RISC platforms there's generally a 1 to 1 between eBPF asm and JITed ASM. So the in kernel JIT doesn't even need a register allocator. The code flow graph is constrained to be a DAG so you can solve the halting problem on programs. etc.

You're looking at at least a couple of orders of magnitude more work to get to the same level of correctness for a WebAssembly runtime.

<comment><USER24> There has been a WebAssembly interpreter implemented in Isabelle [1] and it's been proved correct. Not fast, but still pretty cool.

[1] [https://www.isa-afp.org/entries/WebAssembly.html](https://www.isa- afp.org/entries/WebAssembly.html)

<comment><USER23> > Not fast

That's the kicker. BPF is simpler, _and_ in spitting distance of native code perf. And if you're doing something crazy like injecting user code into interrupts, you care about perf.

That being said, you're totally right that it's possible to get parity, just orders of magnitudes more work.

</comment></comment></comment></comment><comment><USER25> More context:

[http://lsneff.me/nebulet-booting-up/](http://lsneff.me/nebulet-booting-up/)

[http://lsneff.me/why-nebulet/](http://lsneff.me/why-nebulet/)

<comment><USER26> "Nebulet is just a way to try new ideas in operating system design. It's a playground for interesting and exotic techniques that could improve performance, usability, and security."

That's it. I hope he gets the support he needs.

<comment><USER27> > I hope he gets the support he needs.

That's what you say when someone checks into rehab, not releases a software project :)

<comment><USER28> Is there a difference?

</comment></comment></comment></comment><comment><USER29> > Normally, this would be super dangerous, but WebAssembly is designed to run > safely on remote computers, so it can be securely sandboxed without losing > performance.

This throws away the very important security property of defense in depth. A system design should include interlocking levels of security, so even if there is a vulnerability in one place, extra work may be required to exploit it.

<comment><USER22> It's no worse than what Linux already allows via eBPF.

<comment><USER29> So? Removing hw ring protections for all programs is not the answer.

You are actually making my point.

<comment><USER30> Hardware protection rings are a holdover from a time when we didn't have program formats that could be statically transformed and verified to do exactly what the operator desires. They have a nonzero performance overhead even when implemented in hardware, and in an ideal design should not be required at all

Re: your followup about defensive in depth, this is a common and frankly boring fallback argument. At some point computers had much less reliable internals, and for example even the result of strlen () could vary across runs. Should we also perpetually account for the presence of unreliable registers or memory too?

<comment><USER12> > when we didn't have program formats that could be statically transformed and > verified to do exactly what the operator desires.

Which we still don't. Rowhammer, spectre/meltdown, etc... proved that even if the code doesn't violate any sandbox constraints that doesn't mean it didn't violate everything the sandbox was attempting to protect.

Hardware isolation is still very important and very necessary, now more than ever.

<comment><USER30> JFC. The reason the bugs you refer to are so important is because they /spanned/ hardware protection domains.

<comment><USER12> Yes, which means they also spanned software protection domains. Meaning your software protection didn't work, regardless of how "verifiable" the bytecode is.

And a few of those so far have no known software protection domain fix, relying instead of hardware domains (eg spectre, which is why Chrome pushing site isolation hard - because they can't fix the software protection and are relying on hardware ones instead)

</comment></comment></comment></comment></comment></comment></comment><comment><USER31> Ok I don't understand the reasoning behind why this is safe... The explanation is pretty sparse.

<comment><USER32> The language is memory safe, so it is theoretically limited to the surface area that the non-memory-safe OS libraries allow. Of course, that is assuming there are no exploits in the WebAssembly compiler, and no exploits in the OS libraries.

Access to syscalls would not be unusual in any case. This is the normal attack surface for an OS. The new attack surface is the WebAssembly compiler and checker.

To be honest though, given the processor vulnerabilities that have come about, I don't know if I really feel so bad about software protections like this anymore. Nothing is a panacea, even magical processor protection rings.

<comment><USER33> I think in light of recent processor bugs, there's also an argument that software protection is easier to patch than hardware protection.

</comment></comment></comment><comment><USER34> discussion on the similar project Cervus from earlier today: [https://news.ycombinator.com/item?id=17184410](https://news.ycombinator.com/item?id=17184410)

</comment><comment><USER35> This is what the Java Virtual Machine could have been but never was. Most applications are so lightweight for today's computer capabilities that running them over a virtualization layer is not a problem at all. As a developer I want my applications to run everywhere without having to take into account different OSs, architectures, etc.

You still will have native applications for a lot of different situations where performance is more critical and paying the higher cost of creating, testing and distributing for different OSs. That is a skill that should never die, like creating the hardware itself.

HTML5 is a good attempt to this, but it has problems with not-well-defined behaviours and the fact that not all applications, e.g. games, fit the hypertext approach.

<comment><USER36> What problem exactly do you have with Java?

<comment><USER35> Java virtual machine could have had better integration into OSs and browsers, but it's licensing model made it impossible. I worked with Applets on the browser and had a lot of potential, but probably it was too soon for them as computers where slower and Java was not so will optimized back then.

WebAssembly doesn't has this history and it can be used in ways that Java has been discarded for historical reasons.

</comment></comment></comment><comment><USER37> just when i was beginning to feel adequate, i discover this is all done by a highschooler :(

congrats to that kid, he's got a damn good head on his shoulders.

<comment><USER38> highschoolers have one wonderful resource in abundance (compared to the working population) and that's time.

<comment> lachlan-sneff Yeah, no, we don't. I just find time for the things I love.

<comment><USER39> Trust me - compared to working adults, you do. :)

<comment><USER40> As someone who was in high school just a few years ago and am now working I would argue that is definitely not true. High school can quite easily take a lot more time than work, especially if you are an honors student or do any extra-curricular activities. I would wake up at 6 am, be at school at 6:45am, and leave school at 5pm most days of the week due to sports and class. Then I would have 2-5 hours of homework to do. Now, working for a large company is 40-50 hours a week, 9am-6pm with little work after hours.

<comment><USER41> Depends on the job, some of us do a lot more than 40.

Getting married and having children will make you reassess your statements. Heck, just getting married will. Of course, I am assuming that you are single.

</comment></comment></comment></comment></comment></comment><comment><USER42> Java Applets were supposed to be safe too.

</comment><comment><USER43> What's safer, running untrusted code at ring 0, or running it at a lower privilege level? The answer should be obvious to anyone that's not dreaming of some ideal world.

Ideals are great to strive for BTW, just don't lie to yourself about already having gotten there.

<comment><USER44> The point isn't to be safe, the point is to be both safe and fast.

<comment><USER43> Lower privilege levels don't really convey performance benefits. I suppose syscall overhead may impact some applications, but one should not be running untrusted code where the performance bottleneck is accessing the system.

</comment></comment></comment><comment><USER45> This is an interesting idea by putting some userspace stuff back into kernel. But I wonder how much overhead you can save as the supporting argument is just one sentence.

<comment><USER46> context switches / syscalls cost a lot of cycles to save and reload cpu context. you basically need to push all stuff to memory related to context, registers, flags, stack pointers et.c etc., then load the ones for kernel space, perform some call, and switch back. This means a lot of overhead is saved, especially for small functions.

[https://wiki.osdev.org/Context_Switching](https://wiki.osdev.org/Context_Switching)

<comment><USER45> lol I'm well informed on this topic but thanks anyway. Maybe I didn't make myself clear in my previous post. I was questioning the motivation -- Is there any existing profiling work that shows a significant amount of time has been spent on context switches in this _particular_ workloads and how much you can save by adopting this approach.

<comment><USER47> Well, do you not recall the massive amounts of moaning that took place because now everyone's I/O bound stuff (most webservers/databases) works far slower than it used to when spectre/meltdown patches had been applied? If we could get rid of the cache flush that occurs when a userspace process syscalls, there'd be a lot less heat produced at your local data center.

<comment><USER45> I agree with what you said because everyone knows it's __massive __. All I wonder is __how __massive, quantitatively.

</comment></comment></comment></comment></comment><comment><USER48> I love this because im closer to being right about my claim that eventually a restricted javascript will replace arch specific assemblies >:D

</comment><comment><USER46> interesting project. it's not safe, but definatly i like this kind of application of system software.

It might be interesting to try and run the webassembly in a VM ring 0 where the ring -1 can do some security routines and checks on it, but that might be beyond the scope and intent of this project.

</comment><comment><USER49> Because what could possibly go wrong?

</comment><comment><USER50> This does not sound like a good thing for anyone to actually use in production ...

</comment><comment><USER51> Just reading that title makes me feel a little fit sick

</comment><comment><USER52> Well, congratulations are in order, if this is the first step towards throwing out most of the OS.

Face it. Linux had its time, its conception of the world reflect a developers wet dream from the mainframe era, with many users, few resources, and the soon to be extinct dictator, err, universally hated system administrator.

Who needs elaborate permissions when you're the only user on the system? Which user still shares data without sending it, manipulating permissions? Who likes managing installs and incompatible dependencies? Hell, just copy the data, that's what we all do. The file-system dedups it anyways if necessary.

The list of unused and unwanted features goes on, but developers just keep reincarnating this same old fantasy of an anachronistic OS. It seems to me nobody but Linus can make them see again..

Linus, there's so much pain. What's the use case these days? Do you see Linux going over its own horizon, how? I suspect your answer involves a server OS.

PS, this idea of course also reminds of Microsoft's Singularity OS.

<comment><USER36> Virtually all production servers in the world today are running GNU/Linux. The substantial majority of smartphones run a Linux kernel. I wouldn't say Linux has "had its time".

You may be right that the traditional permissions model is outdated, but it represents only a very small part of what Linux does, and indeed it seems totally unrelated to this project, so I'm not sure what point you're making.

To use the Android example again, it's proof that you can layer a very different permissions model (single-human-user app sandboxing) on top of the Linux kernel.

<comment><USER53> Android uses the Unix permission model heavily - sandboxing is achieved by creating a new user per app, and filesystem, network, etc permissions are managed via user and group IDs just like with Unix.

So how is it "very different" (in implementation, not surface appearance)?

<comment><USER36> Surface appearance was my point -- it's possible to create a model that's very different _from the user 's perspective_ without changing the underlying model of the kernel.</comment></comment></comment></comment>


Offer HN: Free AppSumo.com Bundle - <AUTHOR>

Hey Guys
I heart HN and have met / learned a lot from being on here. First 10 emails get todays (http://appsumo.com) designer bundle.
Email in profile. <comment><USER2> Wow ! Thanks. taking you up on that offer. Hopefully I can pay it forward with my current skillset ! Oops, missed it by minutes ;)

</comment><comment><USER3> Looks like I'm (ridiculously) late to the party. Anyway, appreciate the offer you're making

</comment><comment><AUTHOR> Wow. That was fast. We have 10% coupons if you email me. Only for HN readers.

<comment><USER4> Ah, I presume from this comment that they are all gone then? Dang, that's what I get for spending time studying in the library, instead of on HN...!

Still, your kindnesses are much appreciated and make HN a great place!

Thanks!

</comment></comment><comment><USER5> Thank you so much for this kind offer. Emailing you now.

</comment><comment><USER6> I'm a happy customer. Thanks though!</comment>


Pocket Removes Hacker News, Reddit 'Save to Pocket' Browser Integrations - <AUTHOR> The integrations beloved by power-users have been removed from the Chrome and Safari Pocket extensions, though Pocket has stated that the integrations will be returned given sufficient public request.<p>Pocket support can be reached at https://help.getpocket.com/contact or via Twitter at @PocketSupport <comment><USER2> ¯\\_(ツ)_/¯ - if the powers-that-be at Pocket wish to shoot themselves in the collective foot, that's their prerogative; I'm not about to grovel in their general direction. This has, historically, been the impulse to abandon ship and look for an alternative, signalling more walled garden and/or service shutdown ahead.

This looks workable, and explicitly open for self-hosting: [https://wallabag.org/en](https://wallabag.org/en)

<comment><AUTHOR> In my previous experience with Wallabag (approx 2 years ago) I found their text-to-speech functionality to be significantly worse than Pocket, which is a shame.

</comment></comment><comment><USER3> Why artificially restrict a feature and then make users beg to get it back? That's quite user-hostile.

</comment><comment><USER4> I am disappoint.</comment>


Apple rains on Adobe's parade - <AUTHOR> http://online.wsj.com/article/SB10001424052702304846504575178153832071956.html?mod=WSJ_hpp_sections_tech

<comment><AUTHOR> Click the first link here if you hit the paywall:

[http://www.google.com/#q=apple+rains+on+adobe%27s+parade&...](http://www.google.com/#q=apple+rains+on+adobe%27s+parade&fp=bcdf8cbbf06dc4f)</comment>


Trump's Truthful Heresy on Globalization and Free Trade - <AUTHOR> http://www.forbes.com/sites/stevekeen/2016/11/11/trumps-truthful-heresy-on-globalization-and-free-trade/ <comment><AUTHOR> NB: Steve Keen is a liberal economist from Australia (currently in London) who is doing ground-breaking anti-establishment work. He is well worth looking into regardless of your political outlook (I'm a conservative and he has changed my thinking on government deficit spending.)</comment>


Twitter's new Tweet IDs and the screw up that is Javascript BIGNUMs - <AUTHOR> http://groups.google.com/group/twitter-development-talk/browse_thread/thread/6a16efa375532182

<comment><USER2> Not cool JavaScript, not cool...</comment>


Can Arm Survive RISC-V Challenge? - <AUTHOR> https://www.eetimes.com/author.asp?section_id=36&doc_id=1334306# <comment><USER2> I'm not sure that MIPS and RISC-V represent the same threat.

In their heyday MIPS Technologies enthusiastically used the patent system to drive differences between their product and open systems. The company has since been through the grind of losing market share and being sold on and taken over multiple times and, now that it's clear that commercially they've lost to ARM, they're releasing MIPS as open source. This has been done before with other software and rarely brings the incumbent down. I don't see this as much of a threat to ARM.

> No one wants to spend months negotiating license terms under today's cost > and time-to-market pressures.

Now this might be a threat. Companies that are after every single penny for their IP [1] never seem to realise that at some point their customers are getting a better experience with DIY and some random geeks on an internet forum.

ARM developers do have a whole host of tools, ancillaries and services available to them but I'm optimistic that RISC-V has enough people and organisations supporting it to make it a viable alternative for many practical uses. The tech world has too many monopolies and walled gardens at the moment and we will all be better off if there is space for people to try stuff and consequently enough competition to keep incumbents humble. Also, surely some tech giant wants to "commoditise their complement?"

[1] I hate the term "intellectual property" but what else to use to make myself understood?</comment>


Ask HN: Help I'm building my hardest software project yet. Struggling - <AUTHOR>

I'm building the most challenging software application I have yet built. I'm a one man band and I do everything from back end coding to front end coding to deployment.
I'm trying to do it right, which means learning and using technologies that I am unfamiliar with, but in the long run will make me more productive.
I have a full time job as well as children so I've got alot on my plate.
It's extremely rewarding emotionally because I love the project and I am learning alot and I believe it will be something useful.
On the other hand it's taking alot longer than expected (why do I ever expect anything else?) and I'm getting exhausted from the brain taxing range of new technologies I need to learn.
I am at the point that I have proven all the key technologies and actually done all the hard technical things that need to be done.  Now I need to tie it all together into an integrated working application and get it out there.
Anyone got words of encouragement to push me through to get this finished and launched? I can feel myself physically slouching under the weight of the effort. <comment><USER2> It sounds like you're just struggling while on your way to your own 'black triangle' moment.. It's a good thing! The reward is totally worth it!

[http://rampantgames.com/blog/?p=7745](http://rampantgames.com/blog/?p=7745)

<comment><AUTHOR> Yes I do take the black triangle approach to development. A long period of solving problems and de-risking and learning stuff. Nothing tangible to show but a bunch of solved problems.

Next step, tie all the solved problems together into a working solution. Relatively speaking it's actually the easy bit.

<comment><USER3> Thanks for engaging in the dialogue.

From your answers it would appear that you are on the brink of seeing your idea come to fruition.

If it is any help, try to integrate each technical area one by one into the complete application. The incremental results might give you that extra shot of energy seeing the finish line so close.

Good Luck!

<comment><AUTHOR> Yes I _really_ need to see something tangible to get the boost to keep going. It's been very hard coming up to speed and now results are needed.

</comment></comment></comment></comment><comment><USER4> I hear you! I feel the same way. Just spent three years on an app that is about ready for release. But as a one man show... there are simply limits to what one person can do. It's hard. Basically I learned to take lots of breaks and be patient.

</comment><comment><USER5> Very interesting, as I am in a similar situation as you (but I quit my job to do it). All I can say for encouragement based on my day to day experience is: don't listen too much to your mental chatter based on emotions on a day to day basis. I find days when I get very disappointed in the pace of the progress, the look of the design, UI/UX etc, and other days when it really looks like it's coming together. Also, a lot of the landing pages/blogs about the front- end dev tools (e.g. Meteor, React, Ember, Angular etc) make it seem that an app can be thrown together in a weekend, but I have found that is definitely not the case (btw I am using React, Flux, Node stack). Best of luck to you!

</comment><comment><USER6> Look at your kids. If this would be a means to allow you to spend more time with them, then you know it is worth pursuing.

</comment><comment><USER7> If you are building your hardest software yet there are few golden rules.

First of all you need to be sure that what you are doing it is worth, take a break and look at your project from a different angle, it is still worth working on it ?

Keep it simple, look at any single piece you have already build, it is necessary ? Why ? It is really necessary or is a "nice to have" ? Focus only on what is necessary, the "nice to have" will be put in place later.

Why you keep find it so "taxing" ? Have you switched paradigm ? (OOP->FP maybe ?) it should take a while, but not too long, if after a couple of months you are not comfortable yet you may consider to be sure that you have really understand what is going on...

If you are still going it is worth for sure... Keep it strong :)

</comment><comment><USER8> You may be a one man band, but you needn't go alone! Build a rough prototype with the skills you've learned, and reach out to friends and family for their input. Their support will help you crunch through the rough times and motivate you to finish your project.

</comment><comment><USER9> Like you, i am working on a big project and have a day job. That job is running my own steel company. I realy enjoy the learning and the problem solving. And we use the software in our office. It runs for months without glitches so i think its not that bad. And now i am building a web application for my clients. So yes, it is possible and it is fun. And sometimes it is hard. And if it fails, the next project will be better. Oh, i use Lisp and postgresql, that makes it even more fun.

</comment><comment><USER3> Is your full time job as a software engineer?

Is the application in an area that you are intimate familiar with? Have clear idea of the use cases?

<comment><AUTHOR> >> Is the application in an area that you are intimate familiar with? Have clear idea of the use cases?

Yep I definitely understand what I'm doing but learning the specific technologies needed to do it is taxing.

<comment><USER3> By avoiding the question about your full-time job, I get the impression that you might be experienced in some other field.

Which in turn suggests that you've taken on two big projects, (1) to learn a lot of technologies; and (2) to build an application. Both are commendable projects. But as you have found a huge undertaking.

To complete the application, you might need to recruit people with the required skills rather than trying to integrate and test everything on your own.

Once the application is completed, are you going to be selling it yourself? Considering that you claim to have domain knowledge this might be another reasonable guess.

<comment><AUTHOR> No money to employ people but I really wouldn't want to anyway. I only want to operate as a one man band. Despite the challenge I really enjoy the learning process.

</comment></comment></comment></comment><comment><USER10> get it finished already so we can see what you've done...lol.

<comment><AUTHOR> People's software projects are interesting only until they are released then they are all very boring.

Go to ProductHunt to see todays round of new software products that deliver food to your dogs kennel door. All software projects sound interesting until they are released.

It's because the unknown is a blank canvas upon which to paint inspiration.

</comment></comment><comment><USER11> Real artists ship.

<comment><AUTHOR> You got that right. It's still hard to do.

</comment></comment><comment><USER12> MONEY. There.

<comment><AUTHOR> That's certainly one factor. Not everything but definitely one factor.</comment></comment>


Show HN: I Am Making an 8-Bit CPU in Logisim - <AUTHOR> Hey HN,
I am making an 8-Bit CPU in Logisim and blogging about it.t's nothing fancy, really simple, unoptimized dumb CPU for sake of learning. I am no electrical engineer, I am just a self-taught dude who has programming as a hobby and wanted to dive deeper into abstractions.
So here it is, so far I wrote 2 parts:
* https://codebite.xyz/post/2017/3/7/Let's%20Make%20a%20CPU:%2...
* https://codebite.xyz/post/2017/3/9/Let's%20Make%20a%20CPU:%2...
I welcome any and all critique and feedback, as I can be wrong about everything for sure. <comment><USER2> Looks like a good project, a nice change from doing everything in HDL.

Isn't the circuit layout going to get quite large however? How are you going to organize it? E.g. does Logisim have hierarchical views or sub-components?

<comment><USER3> Yes, it does have custom components. It gets slow with complex examples like a CPU, but not so much to become useless.

<comment><USER2> Good plan. Have you thought much about the instruction set yet? Any interesting features from existing commercial 8 bit processors you're going to re-implement?

<comment><AUTHOR> I plan to KISS it as much as possible. The goal is to learn the basics. Maybe after that do more cool stuff in some HDL. Maybe even buy a FPGA :)

I am a further into the development of the CPU then I show in the blog, as such I do have ISA already, but it's constantly changing. The control bus though, is final I think.

[https://i.imgur.com/1Sh1cSh.png](https://i.imgur.com/1Sh1cSh.png)</comment></comment></comment></comment>


Show HN: Restatable – Simplify your global state in React - <AUTHOR> https://github.com/michaelwm/restatable <comment><AUTHOR> Developer here!

I've never been able to find just the right React state management framework. I love Redux: I used it in the workplace on a large scale project and it made development at scale manageable. I've also enjoyed createContext, Unstated, and other state management libraries for projects at a smaller scale. But none of these solutions (with one exception) actually fix the only reason I don't use Redux for small projects: they still require a lot of boilerplate!

That's why I created Restatable, a library that actually simplifies global state management in React. Inspired by the one library that fixed my problems ([https://github.com/cs01/stator](https://github.com/cs01/stator)), Restatable lets you keep using React state the way you always have but makes global state manageable. There is no boilerplate to write or new frameworks to learn. Hell, even the syntax is the same. If you know React, you already know Restatable.

To use Restatable, you just:

1\. Create a Restatable store.

2\. Connect it to your components.

3\. Use state like normal.

Seriously: that's it. Once you've connected your components, Restatable takes care of rest. I've been using Restatable in two of my personal projects so far, and I'm incredibly happy with the way it's turned out. Although I'm content using the library myself, I wanted to show it because I wanted some community feedback.

Although I've yet to run into any hiccups with Restatable, I'm not an expert on the inner workings of React - that's why Restatable calls setState internally and lets React manage the rest. I haven't really battle tested Restatable and am unsure if I'm doing something dangerous here.

What do you think? Let me know!</comment>


Listen: Today's stories in a short 5-minute summary - <AUTHOR> https://listle.io/embed/187429761 <comment><AUTHOR> Hey! Thanks for checking this out. If you do try the Listle mobile app, we'd love to hear your feedback.

Although the above link is a short summary of the most time-sensitive audio articles that have been posted on Listle today, we're aiming to go beyond that and have articles on a ton of different topics. For instance, you can find almost all of PG's essays, fundraising advice from the YC partners, book summaries, content on UBI or the entire timeline of the impeachment, to name a few.

So if you find yourself commuting or doing any mundane stuff and decide to listen to some articles, please let us know what you think! :)

</comment><comment><USER2> Is this TTS? I tried getting into Curio.io for a while, but the audio format article genre is very hard to make into a unique product category. Especially when the big news organisations such as WSJ, Economist and The Guardian have their own audio versions of articles.

<comment><AUTHOR> Hey! We're not using text-to-speech, all of the narrations we have so far (around 4000 audio articles) are recorded by people. We're currently doing a mix of both news and content that's more on the evergreen side (science, books, startups, self-dev). The aim here is to basically create a huge library of audio content on a wide range of topics and be able to make recommendations to users, based on what they're usually interested in. Thanks a lot for the feedback, it's very highly appreciated!</comment></comment>


Facebook Introduces 'Hack,' the Programming Language Of the Future - <AUTHOR> http://www.wired.com/wiredenterprise/2014/03/facebook-hack/ <comment><USER2> The language seems compelling. The name sucks.

</comment><comment><USER3> Which future?</comment>


Show HN: E-paper room booking system with Google Calendar, Python and Bootstrap - <AUTHOR> http://www.visionect.com/blog/room-booking-epaper-digitalsignage-with-google-calendar-and-qrcodes/

<comment><USER2> Brilliant! So simple.

I'm still quietly rooting for an E-Ink resurgence. Platforms like this and the E-Ink phones announced recently are great to see, something about E-Ink's simplicity is just so damn charming.

</comment><comment><USER3> I really like this concept. I can think of a bunch of ideas to take advantage of this hardware. However the hardware seems expensive. A kindle is only 120$ and I understand that amazon subsidizes them but what is the difference?

I don't understand why the server is needed. Can you use it without the server?

</comment><comment><USER4> Clearly a neat demo of their hardware.

Big e-ink fan, but having an intermediary server like that should really lead to the devices being much cheaper, which I guess is an economies of scale problem.

<comment><USER5> Yes and no.

On one side, the Visionect stack saves you insane amounts of money over trying to develop against vanilla Eink hardware. Which has to be worth something, right?

On the other side, VTablets are a lot more rugged than your vanilla ebook reader (which are cheap consumer devices).

On the third side, support and R&D. The devices and the ecoystem is constantly improving and evolving. This is not a consumer device with a single use case. Also try calling Amazon about getting some help from them regarding deploying your app to their device.

On the fourth side, economies of scale like you noticed yourself.

Disclaimer and shameless plug: I was part of the Visionect team and was involved with development of Geoffrey eMenu and Wemar Nautipad applications.

</comment></comment><comment><USER6> Sometimes the simplest things are the best. Good job!

<comment> luka-birsa Thanks! Being pragmatic is in our DNA.</comment></comment>


Ask HN:¿Why did YouOS die? - <AUTHOR>

YouOS was a web OS that was actually accepted in 2006 by YCombinator and died in July 2008<p>Does anyone know why did YouOS die? <comment><AUTHOR> Here you've got info about YouOS: <http://www.crunchbase.com/company/youos>

and their web: <http://www.youos.com/></comment>


The Manic Pixie Dream Girls of Antiquity - <AUTHOR> https://nibnalin.me/dust-nib/the-manic-pixie-dream-girls-of-antiquity.html <comment><USER2> (1) It's not a bad idea to compare contemporary fiction with ancient fiction. Most of the 2500+ yr old blockbusters are basically superhero movies.

(2) "Yamato Nasdeshiko" is not a "Magical Girlfriend", rather it is a different ideal of Japanese femininity which may or not be associated with magic.

(3) "Magical Girlfriend" is not Japanese in origin. See "I dream of Jeannie"</comment>


Ask PG: Has the algorithm been modified? - <AUTHOR>

It seems that much less votes are needed to get a high position on the front page. I see stories with 5 points reaching nearly the same position as one with 600+ points. Which would be fine actually, if the 600pts are accumulated over two days and the 5 points within 10 minutes, but the 5 points story is an hour old already.
So what I'm asking/suggesting really is:
1. Has the algorithm been tweaked or changed so that a story makes it to the homepage more quickly, or does it just seem like that?
2. Can it be changed so that a story needs more upvotes before appearing on the homepage? I think this improves the quality of homepage stories. <comment><USER2> If you want to confirm/disprove your hypothesis you can use a tool I built for just this usecase:

<http://rewindhn.com>

It also has an API if you want to play with the raw data yourself.

<comment><USER3> Wow, this is excellent, the best HN-related app I've used in awhile. I obviously missed it when it was on the front page.

</comment></comment><comment><USER4> Previous discussions:

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

<http://amix.dk/blog/post/19574>

The simplified algorithm is

 _Score = (P-1) / (T+2)^G

where, P = points of an item (and -1 is to negate submitters vote) T = time since submission (in hours) G = Gravity, defaults to 1.8 in news.arc_

The updated algorithm posted by pg has other factors, but those are related to quality control. If the same algorithm is still deployed, stories decline with time. So, during quiet periods, the new stories with far lesser number of votes rank higher than old stories with high number of votes.

</comment><comment><USER5> I suspect that what you are witnessing is nothing more than the Thanksgiving holiday effect.

</comment><comment><USER6> Can't speak from inside knowledge, but it has been observed when this was asked in past that during slow period (middle of night, U.S. time; Sunday mornings) it takes surprisingly little activity to rise quickly to top (if only briefly).

<comment><USER7> This makes sense, really. So few votes are cast (on page #1 of the newest, often seemingly 10-per-50-posts) that people voting means something is significant.

<comment><USER8> May be, but it lets luck play a bigger role and looks like an abusable feature.

<comment><USER9> It's a feature that means that those of us living outside the continental USA are not disadvantaged.

</comment></comment></comment></comment><comment><USER10> Right now from what I can see it takes 3 votes to get to the homepage (I checked using the Swequity link, it was at 2 and not on the homepage, after one more upvote it was), but those 3 upvotes have to be in a fairly limited timeframe to be effective. 3 points in 5 hours doesn't cut it, but 3 votes in a half hour or so is enough.

How long it will stay there depends on how many votes and flags it gets after that.

A flag counts as multiple downvotes.

<comment><USER11> Making it easier for a post to hit the frontpage might be desirable to reward people for interacting with the "new submissions" page - if it only needs 3 votes, there is a much higher likelihood of instant gratification.

Might be something to build into the next algorithm.

</comment></comment><comment><USER9> During quiet periods it's easier to hit the front page. A lot of stories get on the front page during the European daytime and get a second round of voting when the US east coast gets to work.</comment>