JVM Garbage Collectors Benchmarks Report - <AUTHOR> https://ionutbalosin.com/2019/12/jvm-garbage-collectors-benchmarks-report-19-12/ <comment><USER2> Why isn't the benchmark code public ? For people to adopt/convinced, they should be able to run the benchmark themselves, and see a similar pattern in the numbers as well.

<comment><USER3> Some theories:

(a) laziness

(b) wanting to avoid discussions about whether the exact way something was written was fair to some GC or another

(c) wanting to avoid "can't reproduce these exact numbers on a different CPU or different JDK version" discussions

(d) the code doesn't matter since these microbenchmarks are not the actual application you are interested in

Seriously, if you are interested enough in this that you would be willing to run the benchmarks, you presumably have some JVM workload you care about. (Or you could just grab a standard benchmark suite.) If you are interested enough, you can run _your workload_ with the different GC flags and see what they do _for you_ , in _your context_. Being able to reproduce the author's microbenchmark numbers on your laptop would not tell you anything about how your workload of interest runs on the big servers (or whatever).

</comment></comment><comment><USER4> Has anyone experienced a significant performance improvement just by switching GCs? We have an Elasticsearch cluster with G1GC and I've been wondering if it's worth the time to replace a small number of nodes with different GCs. We could swap out 10% of the G1GC nodes for ZGC nodes, for example.

<comment><USER5> I know that the Shenandoah people have tested with Elasticsearch and seen great improvements.

[https://d3i71xaburhd42.cloudfront.net/605efbc0fed86899dcbf87...](https://d3i71xaburhd42.cloudfront.net/605efbc0fed86899dcbf8733884a9256493acb25/8-Table3-1.png)

Christine Flood is pretty great and she has some wonderful talks on YouTube if you're interested in how Shenandoah works. The image above comes from one of her papers on GC ([https://www.semanticscholar.org/paper/Shenandoah%3A-An- open-...](https://www.semanticscholar.org/paper/Shenandoah%3A-An-open-source- concurrent-compacting-Flood-Kennke/605efbc0fed86899dcbf8733884a9256493acb250)) and shows order-of-magnitude improvements in pause times with average pause times 1/10th that of G1 and total pause times 1/27th that of G1.

Shenandoah and ZGC are also made for larger heaps and often datastore have larger heaps.

<comment><USER4> Thanks for that, I'll definitely check out the paper! I don't know much about the JVM, or GCs, but it's always interesting to learn.

</comment></comment></comment><comment><USER6> A good start but it's really a brief survey and I wouldn't call it actionable.

The greatest challenges for Java gc is when heap sizes are big and when data is turned over slower than pure transactional. In other words allocate and retain for a while and free, with a 32gb heap. That's where gc tuning becomes a dark art.

The bottom line is allocation rapidly and keeping up with that is easy enough. Mix in hundreds of parallel and live app threads, large memory structures that live for minutes or hours, and add a transactional gc turnover.

I think go does so well because if you want a cache in go you get smart and use the c escape route.

<comment><USER7> For large data structures I sometimes move them off the Java heap using the NIO/ByteBuffer APIs, which keeps my normal working set smaller. Only works for certain use-cases though.

<comment><USER8> Java Unsafe can be great for moving things off heap too. And this is also the kinda place where pooling in Java can help more than it hurts. But all these solutions have a few sharp edges and aren't universally helpful.

If/when Valhalla lands it'll help soften a few of the rough edges here.

</comment></comment></comment><comment><USER9> What's the performance of Go's GC like against the JVM's? Especially since both languages are about the same abstraction level and roughly the same speed (3x slower than C for general unoptimized code excluding startup time).

<comment><USER10> I don't know of any direct comparisons of JVM and Go GC efficiency.

However, the biggest difference is that there's only one Go GC, while there are several supported ones for Hotspot. With the exception of CMS, which is deprecated, those collectors occupy different niches, meaning there are times you'd use each of them.[0]

The Go collector is optimized for relative simplicity and low latency, and currently tolerates significant overhead to hit that target.

[0] Maybe Shenendoah and ZGC are close enough that they're just direct competitors? Perhaps they're even designed to supercede G1? I'm not quite sure about that, but even so, it would leave at least 2-3 options, depending on whether you include Serial/Epsilon as serious options.

<comment><USER11> It's fundamentally difficult to compare them, because the features of the language itself change the workload the GC faces in a typical program. For example, Java boxes almost all values, so can't store very much on the stack. That means that conventional Java programs (typically) generate many more short-lived heap allocations than Go programs.

For more, see the excellent blog post here: [https://blog.golang.org/ismmkeynote](https://blog.golang.org/ismmkeynote)

<comment><USER10> I haven't put real thought into this, but it seems that in principle, given enough understanding of the runtimes, you can create good benchmarks of the collector. You would have to find patterns that force it to allocate/collect similar amounts of data, but that's doable.

However, to your point, so far as the languages tend to allocate more or less data on the heap, that might change which benchmarks look good, the same way that you'll care about different automotive benchmarks if you want to tow a trailer or race.

</comment></comment></comment></comment><comment><USER10> With the BurstHeapMemoryBenchmark, I wonder whether the effect is driven by the concurrency of G1/Shenendoah/ZGC, not greater efficiency.

If the code doing allocation is single threaded, then parallel/serial GCs could have stop the world pauses, while the other collectors would continue allocating while the GC runs.

That's a real effect. It means that sometimes you can improve the throughput of a process with a lot of sequential work by allocating extra-CPUs and using concurrent collectors. However, that's something of a niche case--more often, you choose between throughput and lower pause times.

<comment><USER8> I think the rock-paper-scissors dance between throughput, latency, and efficancy that a GC plays is a pretty facinating topic. It really brings out the our biases from the kinds of work we do.

If a service has reduced it's latency that only increases the throughput the overall system. CPU/Memory efficiency of a single process often much less important because there's often headroom and GC can help leverage underutilized that cpu/memory.

</comment></comment><comment><USER12> Do i read correctly that in the ConstantHeapMemoryOccupancyBenchmark, ZGC delivers two operations per second? Two? Per second?!

The test is just:

      void test(Blackhole blackhole) {
          blackhole.consume(new byte[_8_MB]);
      }

So it's not like each "operation" is actually a large number of elementary operations, either.

<comment><USER13> No, the test is more than that. The preallocated objects matter because they are pathologic cases for certain GC operations. Large allocations compound this further.

I guess CMS manages to perform fine here because it can flexibly resize the young generation and isn't region-based while G1 has special optimizations for what they call humongous allocations.

It's a test that checks how collectors perform under two combined deviations from the assumptions for which they're optimized (i.e. that object graphs have a high branching level that allows parallelization, short-lived objects are small on average)

</comment></comment><comment><USER14> Does anybody know the author of the article? Where does he get his content from? Is he making a living as a speaker or is/was he also a coder?

<comment><USER15> > Does anybody know the author of the article?

You know this article is on his website, don't you? His name is the domain name.

[https://ionutbalosin.com/about-me/](https://ionutbalosin.com/about-me/)

> is/was he also a coder

Seems unlikely anyone would be writing an article about Java GC, including having coded up benchmarks, without being able to code.

<comment><USER14> I am just curious. In my 'likely' world, people doing this kind of work have a reputation or a visible history. A live q/a session on the internet could do wonders.

<comment><USER15> > have a reputation or a visible history

He does - it's on his website.

<comment><USER14> Thats not enough for me. I write stuff all day on my or other websites. Who vouches for his work? The guy is secretful. One can not reproduce the benchmark. Why should i trust his results?

<comment><USER15> > Who vouches for his work?

It's a blog, not a peer-reviewed research paper. The guy is widely known in the JVM community. I'll vouch for his work if you want.</comment></comment></comment></comment></comment></comment>


JVM Ecosystem Report 2018 – biggest ever JVM survey - <AUTHOR> https://snyk.io/blog/jvm-ecosystem-report-2018 <comment><USER2> Good report mostly confirming my expectations, except for the low response quote from US. I see Spring a lot, but tbh wish we could get rid of it and its complexity complex. You might disagree unless you have worked on maintaining other developer's code chock full of pretentious antipatterns and braindead "REST" microservices to hide the humble core functionality of the app (couple SQL statements).</comment>


Not sure what to do with my startup idea - <AUTHOR>

I have a pretty good idea for a mobile app that I want to develop that is based on musicians and their news feeds, it is not something revolutionary but it is missing in today's world and actually something I would use everyday.
I am not a coder but my forte is in digital marketing as I have been doing it for 8 years and pretty damn good at it.
Building an app today is something that is all the rage so I know hiring a coder is going to be very costly once programming and design are included.
Anyone have advice on how I can go about doing this, should I partner with someone that can code, take the risk and invest the money to have it developed? <comment><USER2> _hiring a coder is going to be very costly once programming and design are included_

You should start learning about coding now, not with the intention of building the app yourself, but with the intention of becoming more knowledgeable about what the developer's job entails. If you find a developer and say "build me an app" you might get estimates like 12 months and $50k. If you know that you just need a news feed, you can say, "can you take this jQuery mobile template and wrap it in Phonegap, and create a simple database to store a data feed from the following sources, you might be able to get it done in a few weeks for $300 [1].

[https://medium.com/@morphmail/the-first-300-a-startup- launch...](https://medium.com/@morphmail/the-first-300-a-startup-launch- tale-f074d957da4e)

<comment><AUTHOR> Good idea, I have some basic programming language but not enough to code something like this completely on my own. I'll start reading up on Phonegap and seeing how I can narrow down exactly what I want to get it a cheaper price as well.

That Medium story is awesome, thanks for that!

<comment><USER3> I made this free tutorial series for PhoneGap/Cordova ([http://app-o- mat.com](http://app-o-mat.com)) -- it assumes you know HTML/JS (but not too much)

</comment></comment></comment><comment><USER4> As always: That depends. ;-)

The most important question is: Can you make a sustainable business with you app and will you generate money from it? If this is the case, you could either find an investor (which may be very, very hard at you current stage) or invest some of your savings on your own.

Then, how are you used to work currently? Do you prefer working with others or on your own?

Finding a co-founder is often a good choice for startups because you find like-minded people which (hopefully) share the motivation for the project with you. However, doing something together requires a lot of trust in each other and empathy. If you find yourself comfortable with another guy at your project, go for it, that's the best solution, in my opinion. If you disclose some more details about your idea, I am sure, HN could be a place to start searching.

If you find yourself uncomfortable with that and you're not willing to learn to program, go for oDesk or something similar as some other comments already suggested.

</comment><comment><AUTHOR> I was able to make a mockup app, if anyone is interested in seeing what I'm doing you can reach out to me by twitter @kmetral

</comment><comment><USER5> In an ideal world, you could partner with a developer who would built it in exchange for equity. There are ways to make that happen...go to meetups, put an ad on craigslist, etc. Just remember that developers get these sorts of offers ALL THE TIME. Make sure you stand out.

Personally, I'd be wary of spending my own money on paying a contractor to build something. It will be expensive and there is no guarantee of a good outcome.

Good luck!

<comment><AUTHOR> Thanks for the help! Yea this would not be my first startup so I know developers are approached everyday with tons of ideas to get involved in.

I got accepted into Startup School so I'm looking forward to seeing who I can meet up with that could help me out.

As for as spending my own money, you are right, I have done this before and ended up being super expensive and outcome was not that good.

I know there are many of talented coders on here so if there is anyone that is interested in hearing more I'm more than happy to speak with them.

</comment></comment><comment><USER6> See if there's a way for you to implement a simple version of the idea without writing any code, and just using a blog or email newsletter.

<comment><AUTHOR> so build a website to create hype and collect emails? I have seen some apps do that

<comment><USER6> No, I mean a simplified but still useful version of your idea. You haven't shared what your idea is, so I don't know if this will work for it.

</comment></comment></comment><comment><USER7> I understand you pretty well because I'm in the same situation now. So what I've done? I've created something like a prototype using Prottapp (design was made by my wife in Adobe Illustrator). Another tool for this is Balsamiq. After this I'm going to create a crowdfunding campaign for further developing as I don't have enough money for it. May be you can try to do the same

<comment><AUTHOR> I just signed up with Prottapp and I'm going to do some designs so I can see what I want exactly, thanks for that recommendation.

I appreciate your help, this is definitely going to help me a lot.

</comment></comment><comment><USER8> If you've been doing digital marketing for 8 years and are pretty damn good at it, I'm surprised that you're having trouble paying for a coder. Digital marketing is typically closer to sales and revenues. The effect your work has has (and thus your compensation) can be orders of magnitude higher than programmers.

<comment><USER9> I think you'll find salaries are about the same. Without going into executive level management, a senior digital marketer will earn around $70k to $160k in western markets in my experience.

</comment></comment><comment><USER10> We could use a good digital marketer to help with Codective.com and we could also build your app. firstname.lastname@example.com

</comment><comment><USER11> Sam has a great blog post about this: [http://blog.samaltman.com/non- technical-founder-learn-to-hac...](http://blog.samaltman.com/non-technical- founder-learn-to-hack)

The title says it all - learn to hack.

<comment><AUTHOR> That was a great blog post, thank you for sharing that with me. I'm going to start learning how to build my own prototype.

</comment></comment><comment><USER12> Not a startup guru here, just a coder. Please take into consideration that a good programmer wouldn't put best effort for cheap as well. I think you should search for programmers with enthusiasm + skill combo. Good luck!

<comment><AUTHOR> I definitely agree with you, to get a very good coder to put their best effort it will not be cheap so maybe looking for a partner could be my best option.

</comment></comment><comment><USER13> Before you put a lot of money into development, don't forget to validate your ideas first. I highly recommend the lean startup methodology.

</comment><comment><USER14> Maybe you can start with a web app that is much cheaper?

<comment><AUTHOR> that was something I thought about as well.

</comment></comment><comment><USER15> I would go with Odesk.

<comment><AUTHOR> Have you had any luck finding a developer on Odesk that can deliver good work? I have used Odesk for other sites I had built and it was pretty bad.</comment></comment>


Product Hunt Raises $6M from A16Z - <AUTHOR> http://techcrunch.com/2014/09/13/producthunt-raises-6-million-from-a16z/ <comment><USER2> As a non-Silicon Valley non-American this is unbelievable to me. It would take a lifetime and you still wouldn't get this kind of investment money in Europe for a site like ProductHunt.

</comment><comment><USER3> After having a product - Traction (book) - hit #2 on PH a few weeks ago, I can say that PH drove more and higher quality traffic than several other well- known blogs we were mentioned on.

PH is great and Ryan is awesome - really excited to see where PH goes after the raise!

</comment><comment><USER4> Congrats on raising money, I'm not sure what Product Hunt will do with $6 million and how it will get a return on that investment, but I guess while a gold rush is on you sell pickaxes right?

I'm sure what they are doing is valuable and they certainly have an interesting audience, I just don't have the imagination to understand what they plan on doing with it.

<comment><USER5> "but I guess while a gold rush is on you sell pickaxes right?"

Translation: anything that doesn't seem useful or profitable can be analogous to selling pickaxes during the gold rush

<comment><USER4> No, I meant it. There are quite a lot of VC's and angel investors throwing money around (gold rush), so instead of being the companies trying to get investment (digging for gold), product hunt is connecting investors to products (selling pickaxes), though I guess they must be successful enough to be invested in, so that sort of spoils the metaphor I guess.

</comment></comment></comment><comment><USER6> I have not looked at PH for months. too US/siliconvalley centric. hopefully the cash means they can deal with this problem now

<comment><USER7> It is definitely US centric. It is also very Apple-centric. Many times I see a blurb "New app X that does Y" which sounds interesting only to click on it and because they use url shortener/redirect find out it is either a direct link to the ios store or that it is an ios app. It would be nice if they would indicate that something was only for one platform or at least directly link to the page so you could see that it was a link to apple or google or whatever before clicking on it.

<comment><USER8> Hey HN! Erik from Product Hunt here. Just wanted to chime in to say that 45% of site visitors are outside the U.S.

also, good feedback.

<comment><USER6> great. next to contributors.

</comment></comment></comment></comment><comment><USER9> Wow, congratulations Ryan. It was probably quite easy (relatively) for PH to raise, since top tier investors have been sourcing potential deal flow from PH for months. Also, it does not hurt that they are a YC company, increasing their social proof.

</comment><comment><USER10> That TechCrunch article is very defensive.

</comment><comment><USER11> This funding seems nuts to me.

<comment><USER12> $6m is not a lot of money. It's big for the average series A for YC, and $6m is a 4 year runway for a 30 person team if they don't blow it on a fancy office. High quality traffic + a job board. The $22m valuation seems high though when you think about what they think that company will be worth.

<comment><USER13> 30 people for 4 years seems far more than PH should need for even for even ambitious expansion plans.

When you consider the highly concentrated audience of product development users of the site, the valuation makes sense.

<comment><USER14> Repeat traffic demographics is destiny.

</comment></comment></comment></comment><comment><USER15> Who really needs Product Hunt?

1) Moms: Well, since they make "all" the buying decisions for the family.

2) Small businesses: Sadly enough, your local dentist, or local mechanic, still need to know what are the latest, shiny tools for their trade.

Software engineers and product makers, I just do not see their monetary value, other than testers for PH.

</comment><comment><USER16> Congrats PH team.. The PH Philly Meetup was a great time, and I love the direction you guys are moving in. Looking forward to seeing the next evolution!

</comment><comment><USER17> This is marginally less silly than Snapchat being "worth" as much as SpaceX.

</comment><comment><USER18> Congrats to Ryan and the team!

I know there must be more to the plan (in addition to divide and conquer), can't wait to see what's in the works.

</comment><comment><USER19> Congrats!

</comment><comment><USER20> Amazing!</comment>


Positioning in the web explained with GIFs - <AUTHOR> http://blog.froont.com/positioning-in-web-design/ <comment><USER2> It's a great visual explanation, but the page is full of typos and spelling mistakes that can easily be caught by default spellcheckers.

I can issue a pull request with the corrections marked up if you have a git repo somewhere.

Unfortunately, the textual errors are detracting from the great message of the page.

<comment><USER3> and some that a spellchecker may not catch, such as "brake" instead of "break"

<comment><AUTHOR> Damn typos. Thanks!

</comment></comment></comment><comment><USER4> It's a digestible introduction, but in the real world you'll find that there's a lumbering iceberg underneath.

Display, alignment, justification, relative parents, stacking contexts, flow, negative margins, flexbox, transform... all of these interact in... let's say interesting ways, and not consistently across browsers.

I _wish_ CSS positioning could be explained with a few GIFs, but moving outside the playground you quickly realize it can't.

Now that the DOM and JS are mostly solved problems, I'd like to see browser vendors seriously tackle CSS rendering so it can be this simple.

<comment><USER5> Here is the best explanation I've ever seen (a bit more fleshed out than the OP): [http://www.barelyfitz.com/screencast/html- training/css/posit...](http://www.barelyfitz.com/screencast/html- training/css/positioning/)

And here's another good one that is specific to layouts: [http://learnlayout.com/display.html](http://learnlayout.com/display.html)

</comment></comment><comment><USER6> Really cool way of visualizing some CSS concepts but I would have loved to see "float". I think that's the one that gives people the most trouble. I think it would probably take several gifs to illustrate though. I do appreciate that the author kept his presentation very simple.

<comment><USER7> I would have like to see position:sticky.

<comment><USER8> It'll be great when the time comes, but it's definitely not ready for production: [http://caniuse.com/#search=sticky](http://caniuse.com/#search=sticky)

</comment></comment></comment><comment><USER9> Note that relative positioning does not _just_ create a stacking context, it also allows you to use the `left` and `top` properties to offset the element from its static position.

</comment><comment><USER10> I appreciate the effort, but I found these animated illustrations confusing. Which part is what? On which sides are they bound? How are they attached? How do they interact? When are the shapes "scrolling" and when are they animating themselves? I like seeing the concepts in action, but I came away with little idea of what the concepts were other than that they were different - well, little more than I started with. More size, context, and interactions would make this vastly more educational, I think.

<comment><AUTHOR> Good point! It actually would be pretty cool also have a working example. I'll keep that in mind for the next posts.

</comment></comment><comment><USER11> > DO: Navigation that is always visible on the top of the screen? Yes!

Is this really a good practice? I'd personally avoid it unless there's absolutely no other way of accomplishing whatever you are trying to do in terms of UX.

<comment><USER12> It works well on some sites and badly on others. Either way its still important to know how to do it.

</comment></comment><comment><USER13> I didn't understand the absolute gif. They said use it for logos that need to appear at the top of the page, but then you see it scroll right off the screen with the rest of it.

Are they saying, it's absolute in reference to the yellow box it's a child of, and it's only scrolling up because the yellow box is?

<comment><USER14> And the text is just wrong:

"The tricky part is that it will be absolute to the parent element that has a position of Relative or Fixed."

Should be: "relative, absolute or fixed" (or more simply: position other than static")

<comment><AUTHOR> Thanks! Fixed!

</comment></comment></comment><comment><USER15> Too bad the animations are not in css :D

<comment><USER16> Or SVG, which would allow for much easier handling than CSS. :-p

</comment></comment><comment><USER17> Hi Tom A, Danish here :) Good luck and all the best!</comment>


Is Facebook More Addictive Than Cigarettes?  - <AUTHOR> http://motherboard.vice.com/2012/2/6/is-facebook-more-addictive-than-cigarettes--2

<comment><USER2> No, Facebook is not more addictive than cigarettes. Facebook may be addictive at first but when you reach the saturation point, the addiction diminish. Unlike cigarettes, the more you smoke, the more you become addicted to it and it is hard to remove from your system.</comment>


AirPod earphones for iPhone 7 prompt choking fears - <AUTHOR> http://www.telegraph.co.uk/technology/2016/09/08/airpod-earphones-for-iphone-7-prompt-choking-fears/ <comment><USER2> meh, link submission failure, we don't have a telegraph.co.uk account</comment>


It's clear who's to blame for Australia's fires, and it's not arsonists - <AUTHOR> https://www.vice.com/en_uk/article/akwgp8/why-big-oil-should-pay-for-australian-fires <comment><USER2> Can anyone point to data that strongly implies there is a clear, direct, and proprotionate climate cause here? It seems more like decades of mismanagement met a dry year, which can happen no matter tue amount of 'oil company pollution' and independent of a 2deg temp rise.

This just seems like lazy journalism playing to their base. Maybe I am jaded.

Let it be known that I am not a skeptic, but frusturated with the general level of discoure in the media which I feel just emboldens skeptics and deniers.

<comment><USER3> You're not crazy, this article is lazily written. It reads like political propaganda.</comment></comment>


Dark Sky App is finally available on Android - <AUTHOR> http://www.theverge.com/2016/5/12/11658818/dark-sky-android-weather-app <comment><USER2> Available... but not in all countries. ¯\\_(ツ)_/¯

That said, it has been available for a long time in unofficial forms. For example Weather Timeline accepts "Forecast" (from [http://forecast.io](http://forecast.io) / dark sky's weather api) as a source: [https://play.google.com/store/apps/details?id=com.samruston....](https://play.google.com/store/apps/details?id=com.samruston.weather&hl=en)</comment>


Windows Is Already Dead, It Just Doesn't Know It Yet - <AUTHOR> https://dennisforbes.ca/index.php/2017/05/04/windows-is-already-dead-it-just-doesnt-know-it-yet/ <comment><USER2> And with it is likely to die the institution of the consumer desktop PC. Simultaneously, in the greatest stroke of irony, Linux is left as the "last man standing" as the only sensible choice for an engineering workstation. The Year of the Linux Desktop is upon us, as the Desktop finally dies.

<comment><USER3> I've wondered for a while whether the market will bifurcate, professional users will need workstations with the ability to install and run applications and everybody else gets a web browser.

<comment><USER4> I'm picturing something similar, Asimov's "a Multivac terminal in every home". Arguably we have that now a la Google Search, but step it up to "a cloud terminal in every home". A monitor and interface [keyboard and mouse, gestures, whatever] with an internet connection; everything you do and "have"//"save" will be "in the cloud" with little to speak of stored locally. Whilst developers, creators, &c will have a workstation.

</comment></comment></comment><comment><USER5> IT friends tell me that Office 365 and hosted Exchange are selling like hotcakes. Also remember (faintly) reading at one point that MS made more money off a copy of Android than Google from patent royalties.

I had to crack open some .NET code recently, and I am completely baffled why anyone would choose that platform for just about anything in 2017.

I guess as long as MS can find another vein they can sink the needle into, what happens to Windows is purely academic.

<comment><USER6> .NET niche always seemed to be in simple SMB intranet apps. Almost any IT guy in a shop that runs windows could setup an IIS server and have a CRUD app running in a couple of days. Getting anything else typically required a separate hire.

I assumed that .NET was still alive and well for SMB. Has that changed?

<comment><USER5> Still alive and kicking in the SMB market, and so is MS Access.

</comment></comment></comment><comment><USER7> "I write low-effort quick contemplation pieces like this occasionally, and they seldom earn me fans or new readers: " The article lightly suggests that windows isn't getting any better, and there's lots of other choices, and office won't protect windows sales like it once did.

As long as people keep handing more and more power to microsoft, I'm not sure Windows is going to die any time soon. They figured out that apple and google make lots of money on controlling what apps can go on a phone, and selling customer data to advertisers (in googles case, your eyeballs on search.)

It's no mistake they're giving their new software away for "free." They're not stupid, they're going to monetize you one way or another. Like the nice advertisements in your file explorer for cloud storage, or in your start menu for minecraft...Your OS advertises, tracks, knows what software you're using, when, how, and wants to make money on you. :(</comment>


AMD Ryzen AMA - <AUTHOR> http://www.tomshardware.com/reviews/amd-ryzen-ama,5018.html#xtor=RSS-100 <comment><USER2> This one's funny:

"I don't know how old you are, but I'll date myself. Back in the old days of PC gaming, it didn't really matter what kind of CPU you had because everything out there was graphics card bottlenecked."

He means he's too young to have caught the era where games on PCs didn't have 3d acceleration? Or even 3d for that matter...

<comment><USER3> I remember when PCs didn't have _sound_ by default and you had to buy a Soundblaster or Adlib card. As well as having to buy 2MB extra RAM to play DOOM, which was CPU-driven 2.5D.

Edit: this seems to have gone full "Four Yorkshiremen", possibly remembering the last time AMD was really competitive.

<comment><AUTHOR> On an Apple II, the built-in speaker could only do two states. You had to PWM your way into sounds while drawing on the screen and trying to keep audio sample rate while reading the analog joystick that took longer to read the more up/right it was.

<comment><USER3> Perhaps surprisingly the early PC had exactly the same architecture: two-state speaker, RC-timer based joysticks. A few games and eventually lots of demosceners managed to get decent sound out of the PWM speaker. Although I remember when demos and games really would have preferred you spend several hundred £ on a Gravis Ultrasound.

<comment><AUTHOR> I remember needing to wait for a VBLANK before writing to the 6845's VRAM. Oh... And the write-only EGA registers, that made it impossible to know in what mode you were...

What a revolting machine the PC was...

</comment></comment></comment></comment></comment><comment><USER4> I'm genuinely excited that AMD seems to have righted the ship on this one, I've extremely fond memories of the Duron/Athlon days when AMD was eating Intel's lunch which made the market more competitive and dropped prices.

The Ryzen 5 is looking like a strong contender for my next home build.

<comment><USER5> Ryzen looks really promising, but I'll wait for naples since I want the additional PCIe lanes (and cores).

All in all I am really happy with AMDs comeback - finally some competition.

<comment><USER6> Much of AMD's 'comeback' is courtesy of Intel resting on its laurels and collecting rent. It will be interesting to see how Intel responds.

</comment></comment></comment><comment><USER7> Can anyone recommend a system builder? Looking for a system in a smallish form factor to set next to the 4K TV in the man cave. It will be used mostly for steam games on the TV. It being quite is a key. No I do not want to build it myself. Having built systems for myself since my 1st 486 to my last 6-core Phenom I am over it.

<comment><USER8> I'm also on the look out: I'm thinking about AVADirect (www.avadirect.com), they let you make fully custom ones. Depending on what you're looking for, some options might be maingear, alienware, falcon northwest, xotic, velocity micro and origin.

Hoping someone who's ordered from any of them can chime in and share a bit more

<comment><USER7> Thank you for the information. I will have a look!

</comment></comment></comment><comment><USER9> > _redgarl: (...) [I]s there a new focus for AMD in the upcoming future?_

> _DON WOLIGROSKI: (...) [O]ur finger is definitely on the pulse of storage > tech. Of course I can 't comment on unannounced products, so if we did have > something in the works I couldn't talk about it._

That is really cute.</comment>


Big Data Is for the Birds - <AUTHOR> http://nautil.us/issue/27/dark-matter/big-data-is-for-the-birds <comment><USER2> Don't have a radar handy? Then point a telescope at the full moon as is rises in the east in late August or September and watch for the tiny specks flying across the disk. On a typical night, you can see one bird every minute or so but on rare occasions they can number in the hundreds every few minutes. When you consider the arc of the sky you are covering the number of birds involved is staggering.</comment>


Inbox 2.0 Makes Me Sad - <AUTHOR> http://www.techcrunch.com/2007/11/14/inbox-20-makes-me-sad/

<comment><USER2> Will GMail become an OpenSocial Container?</comment>


Tumblr is "The Easiest Platform To Share Yourself" - <AUTHOR> http://www.centernetworks.com/tumblr-howard-lindzon-interview

<comment><USER2> It hosts tumbleblogs for free. What is a tumbleblog? At <http://www.tumblr.com/faqs> they say: "If blogs are journals, tumblelogs are scrapbooks [or] slightly more structured blogs that make it easier, faster, and more fun to post and share stuff you find or create.

A different take at this YC.news item: <http://news.ycombinator.com/item?id=72996>

<comment><USER3> _"... It hosts tumbleblogs for free. ..."_

In exchange for inferring anything they want enticing you with a low cost. In this case free. Owning and controlling your own data is going to be a big theme as the markets mature. Taking control of your own data makes it possible to control who can infer, how you license it.

Sure it's not free, it is inconvenient. But it means you have the ultimate say on who gets access. Your friends? acquaintances? even anonymous cowards? Probably the biggest advantage is the grubby marketers who ultimately sell by inference from your data can be held at bay.

<comment><USER4> Are you saying that tumbleblogs takes copyright over the content that people publish there? I thought that all the hosted blogging platforms let people own their own data.

<comment><USER3> _"... Are you saying that tumbleblogs takes copyright over the content that people publish there? ..._ "

Hey rms, no. Not copyright but control of content and through that the ability to infer. As you know I have this thing with letting third party sites have control of your data. For example by control I mean release this bit of information with _"all rights reserved"_ , another _"creative commons, Attribution NonCommercial NoDerivs"_.

I know these sites are easy to use, cheap and share. There is a cost. Maybe I'm arguing a point others don't care about. There is a better way to share.

_"... I thought that all the hosted blogging platforms let people own their own data. ..."_

What about _meta-data_? What about the logs. Depends what you mean by "their own data". I may seem to be arguing the extreme case but there are other ways you can share your data without third party social sites. It's just they haven't been invented yet. To put the third party out of business and take control of your own data is an interesting idea ... at least to me.

</comment></comment></comment></comment><comment><USER5> I want to see a Web 2.0 startup called UrGrammr.com - just for the irony.

</comment><comment><USER6> Can somebody give a short summary of what Tumblr is? The video is unwatchable for me - they should have used YouTube...

<comment><USER7> tumblr is like blogger, with less features. it helps people setup even more inane things called tumblelogs: <http://en.wikipedia.org/wiki/Tumblelog></comment></comment>


Ask HN: Browser plugin to annotate HN users? - <AUTHOR>

Is there a plugin or similar that lets you associate (private) notes with particular users?  I'd like such a tool, and I imagine it could be good for the site - reputations associated with IDs would become more persistent.<p>I believe something similar exists for Reddit, fwiw.<p>(Even better would be some kind of global tool that lets you do this across sites, when identities can be matched, but I imagine that's asking too much (I've wanted this for years - http://www.acooke.org/cute/Automatemy0.html)). <comment><USER2> Not for HN, specifically, but an app I'm developing functions as a annotation- sharing platform across the web: moot-it.appspot.com

Yes, I do realize that .crx plugins can no longer be installed via the web (I don't know when Chrome made that change, but it's a relatively recent change), so if you're interested in trying it out, let me know (e-mail in my profile) and I can send you a unpackaged version to install in developer mode to test out.

<comment><USER3> You just download the CRX and then drag it into an open Extensions tab. This works, but is completely unintuitive.

<comment><USER2> Did not know that at all, thanks :O!</comment></comment></comment>


Koding - Free VMs for online development - <AUTHOR> http://koding.github.io/docs/guides/koding-overview/

<comment><USER2> Koding(en)'s been on my radar a while since they're in a vaguely similar space (lightweight virtualization).

But as a coder, I could never for the life of me figure out what Koding is for. Apparently the Koding team doesn't know either.

It's a bunch of (admittedly cool) tech features thrown in a box and shaken up a bit. Now the team is scratching their heads about what it is they've built, trying to justify their investment money. Koding is a fine example of a "sitcom" startup in YC parlance [1]: social virtualized viral cloud coding, just because.

So that's my analysis. If anyone from the Koding team reads this, here's my advice: Stop. Take a machete to 80% of the product. Figure out what it is that you're great at, and that people really, really want. Then you won't need to be making silly goggle videos or tragic blog posts like this one.

[1] [http://paulgraham.com/startupideas.html](http://paulgraham.com/startupideas.html)

<comment><USER3> I know what I'm going to use it for.

I work on an open source project and I've just submitted a patch. Tomorrow, I'm travelling to go spend a week with my parents, away from home. I don't plan on taking my laptop with me, but I want to follow up on my patch. Reviews are probably going to ask for minor changes.

Basically, I can see myself using something like this when I'm on the move. I'm not a big fan of dragging my laptop with me everywhere I go...

<comment><USER4> So how is this different from either having a copy of your git repository on your phone (which you can mount on your parent's computer), or accessing your own home server remotely (or an EC2 micro/free tier server instance)?

<comment><USER5> It's different from having a repo on your phone because you don't have to install git to use it.

It's different from your own remote server because you don't need to set one up.

</comment></comment></comment></comment><comment><USER6> Hi all, I'm one of the Koding developers. I've posted this as a comment but thought It would be helpful to the question of "What Koding is?"

Basically, [http://koding.com](http://koding.com) offers full vm with root support and a web-terminal (again just like a desktop terminal) to access this it. What does it mean? It is a full featured Ubuntu where you can install any stack you want. Want to play with Redis? No problem just do apt-get install redis-server. Want to try to use vim? Just type vim and enter. You see that only your imagination stops you here.

Not only this it has the concept of "Apps" that let you install custom webapps inside Koding, which can access your VM. For example there is the Rails Dashboard app that let you deploy and setup Rails instances with just one click. There is the Teamwork app, which is a collaborative way to work with your friends, basically you can share and play together on the same editor and terminal! Just think how great this is, you basically can mentor someone, you can get help to develop your app and so on.

Well not only this, there is also Groups where you can work and share your with your friends,class,team, etc.. Groups are awesome because they are totally separated from Koding and you can control and give access control to each of the member of the groups. This are basically subreddits with their own members and culture. Also VM's can be shared amongst the members, which makes it awesome to work together on projects.

This is just a sneak peek and many other features are on the way. Just give it a try please and see yourself how many great things

</comment><comment><USER7> The title of this post is more informative than the Koding homepage or even the docs themselves. A clearer message about why I should sign up is critical.

After watching the video, I did understand what Koding was solving and was excited by it's potential. But, that message needs to be communicated more clearly when visiting the Koding homepage.

From the docs:

"Koding offers nearly unlimited possibilities; so many in fact, that people often misunderstand what Koding is being designed for. "

This seems aloof. I feel that this is more explanatory of what Koding offers:

"Koding provides free hosted VMs for development to anyone. The Koding VMs provide you with a real Ubuntu OS, with a real Terminal, and allow you to work on real code. Python, PHP, C++, C, it doesn't matter. Even better, they are online. Accessible from anywhere in the world. Even sharable with teams."

On a side note, would it be possible to offer offline capability? Perhaps allowing users to download/upload Vagrant VMs configured with Puppet.

<comment><USER8> Heya, i'm the koding user (not staffer) who wrote those docs :)

> This seems aloof. I feel that this is more explanatory of what Koding > offers:

I would agree with this sentiment. I didn't expect so much publicity over my little doc project haha. I'll look at rewording that, thanks for the feedback :)

> On a side note, would it be possible to offer offline capability? Perhaps > allowing users to download/upload Vagrant VMs configured with Puppet.

To my limited understanding, the VMs will offer an always-on option in the future. I haven't heard of a timeframe on any of this though.

My apologies if i'm slow to reply/etc, i'm new to this platform.

 __edit __: I made an issue on this note.[https://github.com/koding/docs/issues/71](https://github.com/koding/docs/issues/71)

</comment></comment><comment><USER9> To actually get to the site you need to go to [http://www.koding.com](http://www.koding.com), there didn't seem to be any link in the docs.

The fact they publicly say its free does not strike me as a strength, how are they going to pay the bills to store all of my data?

It looks like it started life as an online php editor (kodingen.com) but now has broadened out to supporting vms with 'social' stuff.

Some of the main competitors are: \- [https://c9.io/](https://c9.io/) \- [http://compilr.com](http://compilr.com) \- [https://codenvy.com](https://codenvy.com)

The general experience after playing with it for a few minutes is quite nice, robust file tree, good editor (ace), interesting news feed.

<comment><USER10> It looks to be that additional VMs cost money, so there's a business model to start with.

btw, your compilr link goes to a domain squatter.

<comment><USER11> Either s/he edited the link or your DNS is hijacked since it works for me :-)

</comment></comment></comment><comment><USER12> This is useful for me. I don't really care about the social features etc but the core product seems good.

What is the business plan? I don't want it to be advertising or selling information about me.

The documentation could be better. The site looks very slick but doesn't really lay out the basics. For instance, just reading, I wasn't sure whether or not files are stored between VM runs (i.e. being able to save my work and configurations for use in later sessions).

The site (koding.github.io) doesn't even link to the main page (koding.com).

Side note: start ups have terrible names. What's wrong with using actual words?

<comment><USER13> > Side note: start ups have terrible names. What's wrong with using actual > words?

One part "brand names have always been silly" and one part "need to find a domain name that's available".

</comment></comment><comment><USER14> Can someone explain what this does, in technical terms? The site doesn't.

<comment><USER15> From some brief playing around, it's a web-based development environment:

1\. At the simplest level, it's an installation of Ace ([http://ace.c9.io/](http://ace.c9.io/)), an in-browser code editor. So you can edit code in-browser and it gets saved it to some (free) cloud storage.

2\. There are some social features added on to this, which I haven't really investigated, but I guess you can form groups, get a feed of updates, share projects, etc.

3\. In addition to the basic cloud storage + editing, you can spin up (also free) VM instances to back the editor, forming a dev environment. Your web- based editing space gets mounted as /home, and you have root access to an Ubuntu machine so you can install whatever you need. This can all be managed through either the web interface, or SSH if you prefer. However since they're only intended to back the IDE, the VMs shut down about 20 mins after everyone accessing one has closed their Koding browser window, to discourage using them as free VPS hosting.

There are a few other companies in this space. Cloud9, which developed the Ace editor ([https://c9.io/](https://c9.io/)) are possibly the best-established. Koding seems to differentiate by emphasizing the social/collaborative features more, and possibly in being more generous with the VMs. There is also [https://www.nitrous.io](https://www.nitrous.io), which I don't know anything about. If anyone's up for writing an article, I'd certainly be interested in an overview of the current offerings from someone who's actually used them, i.e. more in-depth than I can glean from checking out their websites.

</comment></comment><comment><USER16> I already felt in love with Koding, but I had some connection issues while using it, kinda bothering.

But the service still lovely, looking forward to see it get more stable through the years.

</comment><comment><USER17> I watched the video and am none the wiser. What is the problem that koding solves? It seems like some sort of groupware social network thing for dev teams with a vm hosting thing bolted on.

<comment><USER8> I'm the koding user (non staffer) who made the video.

My goal was to quickly gloss over the features with the video, but i thought the concept of Online Development was a pretty well grasped concept. No offense to you of course, the video obviously falls short for a lot of people. It's not intended to be a pitch, just an overview.

I had hoped that by going over the features, that Koding would make a bit of sense. Perhaps i need to redo the video? The short timeframe goal, really limits me though haha.

I never intended my 2 minute overview to be on the front page of Koding, nor be posted onto reddit and here. This is so much more publicity than a short little video targetted at new Koding users.

Nevertheless, thanks for the feedback :)

</comment></comment><comment><USER6> There is an public announcment: [http://blog.koding.com/2013/08/koding-is- public/](http://blog.koding.com/2013/08/koding-is-public/)

<comment><USER15> Unfortunately, this announcement doesn't tell me anything about Koding!

</comment></comment><comment> koding-dev Hey guys, Koding developer here, thanks for the comments, there are some really valuable ones that we should consider doing. Would gladly answer the questions, if any?

<comment><USER18> hi! 1. Would it be possible to download the virtual machine onto my desktop/laptop, then, work on it for a bit, then upload it back to the virtual machine?

2\. Would it be possible for the online virtual machine to access a USB debugger on my desktop? thank you.

<comment> koding-dev you can ssh/ftp into your VM but downloading it and uploading back is not possible atm, and i don't think if it is going to be the case. As for the second question i don't think it would be possible w/o running your VM locally. Thanks.

</comment></comment></comment><comment><USER19> This page abort on Chrome/WinXP. It works on firefox. Checking the page source code the only thing strange I see is a font hosted on googleapis.com

<comment> koding-dev That is weird, chrome on win7 is doing fine, i am gonna install an XP box, thanks for the notice.

<comment><USER20> You guys should really have a QA test bed with _all_ supported OS's and browsers and with _every_ releasable change regression test it through all of these OS's and browsers meticulously.

Since you're using VM technology I'd have assumed this would be a no-brainer to setup and enforce?

<comment><USER21> > You guys should really have a QA test bed with _all_ supported OS's and > browsers and with _every_ releasable change regression test it through all > of these OS's and browsers meticulously.

You and what army? They could be doing that or they could be adding features...

P.S. I accidentally downvoted you whilst copy-pasting your comment and can't undo it, sorry about that. Feel free to downvote me back.

</comment></comment></comment></comment><comment><USER22> I tried to register with github and now it just loops a popup that closes immediately forever when I try to sign in with github or register with github. Cool.

Update: Tried it in my unprotected chrome and after a few bumps got it working. Once you are signed in the demo is pretty good.

<comment><USER23> Hey hobs, it's possible some chrome plugin is interfering with Github authentication though. If you can provide a little more info, I can debug it for you.

P.S. I work for Koding.

<comment><USER22> No worries, I got registered via chrome and now the github login works in firefox as well. Thanks!

</comment></comment></comment><comment><USER24> Koding looks interesting, however my interest in the project died after waiting several months to get into the beta but hearing nothing and seeing no changes to their site. I'd still love to try it though, but I won't hold my breathe.

<comment><USER23> Hey hoverbear, sorry for the long wait time.

We're in public beta now and anyone can sign up: [https://koding.com](https://koding.com)

P.S. I work for Koding.

</comment></comment><comment><USER25> The news stream on [http://www.koding.com](http://www.koding.com) is broken as new content is simply inserted at the top and whatever you're trying to read is jumping around randomly.

</comment><comment><USER26> You guys should try [http://www.CodeAnywhere.net](http://www.CodeAnywhere.net), free online code editor that connects via ftp, dropbox and has a built in sandbox as well.

<comment><USER27> There are a few similar services. One is Cloud9 (c9.io)

</comment></comment><comment><USER28> You liked how the NSA was copying all your emails from Google mail, and all your sources from github. You will love how they'll introduce backdoors in your programs while you write them with Koding!

<comment><USER29> Businesses cannot stop coming up with new products and solutions. We cannot say that "Oh, NSA can access anything so let's not use anything anymore."

A better way to address the problem is to just persistently keep fighting it and raising this issue. Running away from it will not get us anywhere.

</comment></comment><comment><USER30> Locked to one OS. Expected mainstream ones. Useful for a niche of people.

</comment><comment><USER31> i can see the advantage over having to set up my own vm or os install... but by targetting an os which, to a very close approximation nobody uses, I can't help but wonder what their target audience really is.

nobody who wants to make software for a living i'd imagine... although i guess it could work really well for web hosting type stuff where the crippling choice of OS is irrelevant?

<comment><USER6> What do you mean with "by targetting an os which, to a very close approximation nobody uses"? You mean nobody uses Linux for development? That's a comment which really doesn't have single point of truth. At least i would except some sources that backes your argument, which you dont't have. Shame.

<comment><USER31> nobody uses linux for much other than servers to an excellent approximation. i shouldn't need sources for this... how many work places use linux workstations that you have ever seen? or homes? and aren't most pre-installed linux boxes nuked to have windows put on them?</comment></comment></comment>


Awesome Cold Showers: for when people get too hyped up about things - <AUTHOR> https://github.com/hwayne/awesome-cold-showers <comment><USER2> (from the last "shower"):

> I'm guessing their servers are 100k each? No basis for that guess though.

Seems strange to make the guess without basis then says so.. except that it's suspiciously in the right OOM. Perhaps it was unconsciously based on that "shower" article providing a cost estimate for AWS, as well as an estimate of the premium over hardware.

[https://blog.expensify.com/2018/01/08/scaling-sqlite- to-4m-q...](https://blog.expensify.com/2018/01/08/scaling-sqlite-to-4m-qps-on- a-single-server/)

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

</comment><comment><USER3> Do we know if research in software development is of higher quality than, say, psychology research, or nutrition research?

<comment><USER4> From my (admittedly very limited) exposure to either, I'd say no.</comment></comment>


LKML: Linux 4.19-rc4 released, an apology, and a maintainership note - <AUTHOR> https://lkml.org/lkml/2018/9/16/167 <comment><USER2> Duplicate of [https://news.ycombinator.com/item?id=18000698](https://news.ycombinator.com/item?id=18000698) .</comment>


Spending $60 USD on a video game doesn't make sense anymore - <AUTHOR> https://www.polygon.com/2019/9/19/20874156/apple-arcade-xbox-game-pass-subscriptions-netflix-model <comment><USER2> Wow, lots to say about this article. Before reading it I thought they were going to make the point that all the best games are indie games and only cost $15-$30 anyhow. (I'm one of the developers of Void Bastards)

But yes, Game Pass and Apple Arcade could be game changers and it will be very interesting times for the games industry over the next few years.</comment>


Ask HN: Where can I use a 40+ core machine? - <AUTHOR>

When installing at a new client site, we (@UforaInc) found a bug that repro's on their 60 core machine that we have not be able to reproduce on 16 (32 HT) core machines from AWS.
The bug is related to lock contention on many-core machines, and we're trying to find a machine where we reproduce the issue ourselves.
AWS, GAE, Azure, etc don't seem to have anything this size. Does anyone know where we can rent or borrow a beefy machine like this for a couple of days? <comment><USER2> You might check with a couple of the OS/hardware vendors too. I know Microsoft used to have labs on both east and west coasts that allow you to do this type of debugging, I would imagine they still do.

Sun used to do the same thing back in the day, not sure since Oracle took over, but it would be worth a call. IBM/HP also might have a lab environment where you can test on.

Maybe call the machine vendor your client used for that machine and explain what you need, you'd be surprised how accommodating they can be. It won't be free, but it likely is far far cheaper than a 60 core machine.

Good luck!

<comment><AUTHOR> Good idea! I'll check on that!

<comment><USER3> If the software is running on RHEL, you should talk to Red Hat. I'm pretty sure that customers with a RHEL support contract can get access to application support from Red Hat to debug issues on the OS.

I also know first hand from Red Hat employees that they have a dedicated infrastructure for testing just this kind of "weird issue only happens on $foo hardware" stuff.

And while i can't confirm this as directly, I'm quite sure their hardware testing pool will contain some hardware that can help with debugging an issue like this.

<comment><AUTHOR> Indeed this was running on RHEL, though our client is a RHEL customer, and so far we aren't.

</comment></comment></comment></comment><comment><USER3> You may want to have a chat to IX Systems. They do a lot of pre ship 'white glove testing' which means they may have an opportunity to let you remotely borrow one before they run their shakedown testing battery.

For instance they built this 40 core / 80 logical thread monster. [http://www.ixsystems.com/whats-new/megacore-freebsd- foundati...](http://www.ixsystems.com/whats-new/megacore-freebsd-foundation- and-ixsystems-collaborate-to-further-the-cause-of-freebsd-development/)

And sell two 64 Core machines as part of their standard product lineup.

The Mercury - (AMD Opteron) - [http://www.ixsystems.com/servers/families/?family=Mercury%20...](http://www.ixsystems.com/servers/families/?family=Mercury%201400)

and

The Neptune - (Intel Xeon) - [http://www.ixsystems.com/servers/families/?family=Neptune%20...](http://www.ixsystems.com/servers/families/?family=Neptune%202400)

<comment><AUTHOR> Another great option. I'll try to get in touch with them today!

</comment></comment><comment><USER4> If you're not scared of a "weird" architecture, [http://labs.runabove.com/power8/](http://labs.runabove.com/power8/) gets you a lot of threads at a very low price.

<comment><AUTHOR> I can't figure out how they're "weird"... am I missing something?

EDIT: Yes, yes I am. Power8 architecture. Probably not best for attempting to reproduce client bugs :-)

</comment></comment><comment><USER5> Look into used UltraSPARC hardware. T3/T4/T5 all should offer >100 cores, or start building a beowulf cluster with in house computers.

<comment><AUTHOR> crossing machine boundaries doesn't seem to trigger the issue. We're specifically stuck looking for machines with lots of cores on a single box.

</comment></comment><comment><USER6> If you don't mind AMD, you buy find a quad Opteron 6168 server and return it. This one is $8,029 and has 48 cores:

[http://www.ebay.com/itm/DELL-C6145-SERVER-QUAD- AMD-6168-1-90...](http://www.ebay.com/itm/DELL-C6145-SERVER-QUAD- AMD-6168-1-90GHZ-8-X-4GB-10-X-1TB- SATA-/191439608011?pt=COMP_EN_Servers&hash=item2c92b098cb)

</comment><comment><USER7> Maybe the client will allow you to test on their 60 core machine? You know for sure the problem happens there.

</comment><comment><USER8> OVH.co.uk/OVH.us do a 40 thread server

<comment><AUTHOR> That may be a winner! $150/week for a server that MIGHT get us a repro is a good place to start.</comment></comment>


Malaysia's Cheryl Yeoh claims 500 Startups' Dave McClure sexually assaulted her - <AUTHOR> https://www.techinasia.com/malaysias-cheryl-yeoh-accuses-500-startups-dave-mcclure-sexual-assault <comment><USER2> Might not be the right words or the right thing to say, but honestly, to these type of men out there: Stop always thinking with your dick.

I can only imagine the companies existing out there.. and the women not even reporting it.

I know, it's not always easy... constant jizz on the brain... but honestly, it'll get you into too much trouble and it's just not worth the 2 minutes for you "to reach that point" and be done with it when you could've just gone home and did what you had to do there.

I read these articles.. and I want to think the man in the case is innocent, and call the woman a liar but I know she's not lying, considering the fact that it does and has happened too many times. Sure, there are women out there who will make this stuff up in order to do what they have to do, but the majority of women would probably rather not deal with this kind of thing at work.

Women are not objects and playthings... sure, once you are going out and you two are making a connection and having fun, she might get crazy sexual and make you question everything you knew about women.. but honestly, she is doing that because you two might be exclusive and she trusts you. Til then... be safe.

Prison time, a record, a demotion, sexual harassment, or sexual assault... all these things are permanent and will stay with you for life. Was it really worth it? Control yourselves. "No" means no. There's no doubt about it. Gentleman, please be safe and professional.</comment>


Bill Nye on climate change: 'It's not 50 to 75 years away–it's 10 or 15' [video] - <AUTHOR> http://www.msnbc.com/velshi-ruhle/bill-nye-climate-change-its-not-50-75-years-away-its-10-or-15 <comment><USER2> Wants to disable my ad block, my web browser not included in their list.</comment>


Ask HN: 'Escaping' Senior Software Developer - <AUTHOR> Hello HN, I come to you with a question.  I seem to have hit a roadblock in my career.  I'm currently in the top salary range for a senior software developer in my region, and unless I do something, I'm looking at being an engineer for the forseeable future.<p>That is not something I want, as I want to move away from being an employee, and more towards an executive or owner role.  I'm looking to hear about the experiences about people who made that transition.  I've been learning a lot about business and finance, and I've moved away from large corporations (where developers are a commodity) to smaller one  with more responsibility, but I'd like to hear what other people did, thanks. <comment><USER2> It's all about generating business value. If you can do that, you can do consulting or direct contracting. I'd contracted off and on in the past but a couple of years ago I started working for myself as a consultant with 2-3 clients. It's not easy; when you work for yourself, your boss can be a jerk. The pressure may keep you awake at night. It's not for everyone.

You are absolutely right that you want to avoid the "commodity programmer" part of the labor spectrum. Even if you are very good, company pay structures just won't let them pay $300K an year to a "engineer" when they pay their other senior engineers $100K. As an outside contractor/consultant they can and will. You want to be in a position where you can do things for your clients that they just can't do for themselves. For me, it's usually building the software half of a product or a major money making feature.

I have not cracked the "getting new business" part of the equation so I can't help you there. I get my clients through word of mouth or previous business relationships ("do you need any help?") which more or less boils down to luck since I don't really advertise.

When _I_ read advice like this, I think "Well, that's easy for him to say, he's probably brilliant". I can tell you that I am emphatically _not_ brilliant but I have made a _lot_ of mistakes over many years of programming.</comment>


Simplicity vs. Feature Creep: I Love It, It's Perfect, Now It Changes  - <AUTHOR> http://www.nytimes.com/2007/07/15/fashion/15discontinued.html?ex=1342152000&en=fa6b6f1ecd6f8a17&ei=5090&partner=rssuserland&emc=rss

<comment><USER2> I heard somewhere that the glaze lipstick that Monica Lewinsky wore for a 1999 TV interview was discontinued, so women clamor for it on eBay.

</comment><comment><USER3> Outstanding article. Who among us has this not happened to? I take this as a huge lesson in product design.</comment>


An AI which is not so artificial - <AUTHOR> http://www.wired.com/2015/09/amy-ingram-ai-thats-not-artificial/ <comment><USER2> entire content of post (pasted because it is very short):

On her LinkedIn page, Ingram touts her "exceptional interpersonal skills." Which is a funny thing for an AI to say, but it's true. You can exchange pleasant task-related emails with her for weeks and never realize she isn't real. That's the point: As created by the startup x.ai, Ingram represents a new class of machines that don't sound like machines. They sound like us.

:end

Why is this page so short? I've written comments much longer than this. It looks like the start of a longer article, but everything on it links to the same url, or a different story, so it seems like this is the whole thing.

That paragraph doesn't have any meat to it. It might as well be:

There is an AI called Ingram created by the startup "x.ai", which has a LinkedIn page. It responds very realistically to task based emails, to the point where one might not notice that it is not a real person for multiple weeks.

That it two sentences. It could almost fit in the title of the submission. If that is all that is going to be there, why does it need an article?

Am I somehow missing the link to the "read full article" still? If I am, why wasn't that link linked to as the submission in the first place?

This comment is now more than twice the length of the article.</comment>


The following new features have been added in Safari 9.1 - <AUTHOR> https://developer.apple.com/library/prerelease/mac/releasenotes/General/WhatsNewInSafari/Articles/Safari_9_1.html#//apple_ref/doc/uid/TP40014305-CH10-SW1 <comment><USER2> Picture element support, yay! One less browser to polyfill for.</comment>


Iron Scheme:  Scheme implementation running on .NET - <AUTHOR> http://www.codeplex.com/IronScheme

<comment><USER2> _Is this still true? Has .NET been sufficiently updated to allow full Scheme?_

This is no longer true: not because of any change in the VM, but because of a new way to model first-class continuations. Qv "Continuations from Generalized Stack Inspection", [http://www.cs.brown.edu/~sk/Publications/Papers/Published/pc...](http://www.cs.brown.edu/~sk/Publications/Papers/Published/pcmkf- cont-from-gen-stack-insp/) -

 _Implementing first-class continuations can pose a challenge if the target machine makes no provisions for accessing and re-installing the run-time stack. In this paper, we present a novel translation that overcomes this problem. In the first half of the paper, we introduce a theoretical model that shows how to eliminate the capture and the use of first-class continuations in the presence of a generalized stack inspection mechanism._ [...] _Second, we show how to use our new technique to copy and reconstitute the stack on MSIL.Net using exception handlers. This establishes that Scheme's first-class continuations can exist on non-cooperative virtual machines._

<comment><USER3> I link to the same paper - different repository in my comment. Excellent quote.

</comment></comment><comment><USER4> From <http://www.cs.uiowa.edu/~rjhansen/dotnet.html>

_I asked Professor Abelson whether Scheme could be represented in the .NET virtual machine. His answer was a clear and unambiguous "no". Most of the language can be; but one of Scheme's most useful and unique facilities, continuations, cannot be modeled in .NET's VM. It's not that nobody's done it yet; it's that it's not possible._

Is this still true? Has .NET been sufficiently updated to allow full Scheme?

<comment><USER3> Continuations are absolutely possible. This is absurd that your professor isn't staying up to date. Especially considering he's teaching a PL class. See Section 4.2 for academic "proof" <http://www.ccs.neu.edu/scheme/pubs/icfp05-pcmkf.pdf>

When .NET clr and C# beta first came out, closures were said to be impossible! C# 2.0 supports lexical closures and CPS (continuation passing style). So no call/cc but most everything else. Most developers don't even know the difference between closures and continuations to begin with. So I understand the compiler team's reasons for not implementing continuations yet. But back in 2001 - 2002 closures were said to be impossible too.

Mono has implemented continuations already... (of course) [http://lists.ximian.com/pipermail/mono-devel- list/2006-April...](http://lists.ximian.com/pipermail/mono-devel- list/2006-April/017991.html)

.NET clr does not explicitly support them. Neither does the jvm. The jvm is planning on explicitly adding support <http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6655643>

There are plenty of things missing in the jvm (by design). That the clr has and some of those have ended up being useful. I don't know how many developers remember but the clr really pushed changes to the jvm. But that is for a different thread.

Microsoft will support continuations and other advanced features as more developers begin to use those coding styles. The more .NET scheme, python, ruby developers the better. Or maybe the pressure will come from the web development side where continuations are promising (weblocks, arc, seaside).

[EDIT: A few sentences and fixing grammar]

<comment><USER5> >This is absurd that your professor isn't staying up to date. Especially considering he's teaching a PL class

The afformentioned professor Abelson is one of the authors of the Wizard Book. A look at the above citation reveals that he made the statement in 2003, while the paper your reference was published in 2005.

<comment><USER3> Ya I've read it along with most anyone that has had an interest in programming languages and went to school in the last 20 years. It doesn't make his statement less absurd.

I was doing undergraduate research on .NET in 2003 and it was absurd when I first heard it. Academics were upset that M$ made a pragmatic IL. One that didn't support many advanced languages features. That didn't mean implementing those features wasn't possible. It just meant it was yet another step back for features making it to the M$ environment.

It should be noted that Parrot was getting a lot of talk back then. It would be THE intermediate language for all languages dynamic or functional... Maybe it makes sense to start pragmatic, like the jvm and .NET, and then add the harder part later.

</comment></comment></comment></comment><comment><USER6> I must admit when Microsoft first introduced the .NET Framework and called .NET-code "language independent", I thought it was a bit of a _grand_ statement and chuckled away, since that pretty much involved C# and Visual Basic .NET.

Right now I think even _Microsoft_ is impressed with number of CLR compilers and level of support the .NET Runtime has gathered. You have C++, C#, Visual Basic, PHP, Perl, Python, Ruby, Cobol(!), LISP and the list just goes. And with Scheme now, it just got a little bit longer.

I guess even among the open-source crowd there are significant numbers of people who recognizes the _good_ products Microsoft delivers every now and then :)

<comment><USER3> Here is a mostly complete list of .NET languages.

<http://en.wikipedia.org/wiki/.NET_languages>

For all those Python coders - IronPython is usable in production now. It's stable and the differences between cpython and ironpython are well documented.

<comment><USER2> And for Schemes on .NET, in addition to the listed Common Larceny (<http://www.ccs.neu.edu/home/will/Larceny/>) and IronScheme, there is also Bigloo (<http://www-sop.inria.fr/mimosa/fp/Bigloo/>).

Common Larceny uses the pkcfm hack for its continuations, I believe, while Bigloo continuations are more like IronScheme's ("Bigloo discourages the use of call/cc" - from the manual).

Disclaimer: I have personal experience with neither system.</comment></comment></comment>


OptionPlan, an app for founders looking to design a stock option plan - <AUTHOR> https://www.indexventures.com/optionplan <comment><USER2> This is very interesting, thanks for sharing it.

Would also nice to have later series on it, like a Series B or C employee and so on, if there is data for those cases.

I am on the later series and it's really hard to know where you stand on the scale of "got fucked" to "Yay!"

</comment><comment><USER3> Thx @cfontes - The model has already been stress-tested for Series B/C and it scales. We just didn't want to over-complicate the app at launch. If more people share your pov, we can get this released pretty quickly...</comment>


Shumway: Flash implementation in JavaScript - <AUTHOR> https://github.com/mozilla/shumway <comment><USER2> This is officially in the Firefox Graveyard.

[1]: [https://bugzilla.mozilla.org/describecomponents.cgi?product=...](https://bugzilla.mozilla.org/describecomponents.cgi?product=Firefox%20Graveyard)

<comment><USER3> Yep, it's abandoned. No commits since 29 Mar 2016.

</comment></comment><comment><USER4> > Latest commit 16451d8 on Mar 29, 2016

I'm all for keeping old things around and that includes Flash stuff (look at my user name). But Shumway is super dead.

I believe there are more active projects going you might want to check out if you're looking to keep Flash alive/around.

Alternatives:

* [https://get.adobe.com/flashplayer/otherversions/](https://get.adobe.com/flashplayer/otherversions/) (yeah, still works!)

* [https://github.com/lightspark/lightspark](https://github.com/lightspark/lightspark)

* [https://wiki.debian.org/PepperFlashPlayer](https://wiki.debian.org/PepperFlashPlayer)

<comment><USER5> Also OpenFL and Apache Royale

</comment></comment><comment><AUTHOR> Like pdf.js but for flash.

Sadly it seems to be dead.

I found this effort to port what there is to a webextension but there is no documentation how far that person got and the last commit was 3 months ago.

[https://github.com/ExE-Boss/mozilla-shumway/tree/web- extensi...](https://github.com/ExE-Boss/mozilla-shumway/tree/web- extension/extension/webext)

<comment><USER6> Three months of no commits is not enough to declare a project dead.

As for Shumway, looking at the commit history[0], the last commit was over 2 years ago.

[0] [https://github.com/mozilla/shumway/commits/master](https://github.com/mozilla/shumway/commits/master)

<comment><AUTHOR> I forgot to add the link to that porting effort, and I didn't mean to declare it dead, just status uncertain.

[https://github.com/ExE-Boss/mozilla-shumway/tree/web- extensi...](https://github.com/ExE-Boss/mozilla-shumway/tree/web- extension/extension/webext)

</comment></comment></comment><comment><USER7> Stuff like this makes me wish Adobe had just open-sourced Flash. I hope this doesn't start a flame war, but I think that most of the crap that Flash gets stems from the fact that it's a proprietary plugin...if Adobe releases part-of or all of the source code, we conceivably could avoid losing history, and someone could write something that compiles to WebAssembly or something.

I remember when Shumway was announced a few years ago, and I was excited that this might be the solution that everyone asked for, but I suspect the problem was a lot harder to solve than most people thought it would be (unsurprising...Flash has 20+ years of baggage in its codebase, who knows how many weird hacks have piled up).

<comment><USER8> As one of the main developers on the project I can say that yes, 20+ years of undocumented baggage made it a really hard problem to solve.

<comment><USER7> What was the process of reverse-engineering something like Flash? Did you simply do it by looking at the bytecode (or whatever it's called in Flash), or did you write something with the mainline compiler and work from there?

<comment><USER8> The bytecode for AVM2 is fairly well documented, and there is a test suite that you can compare against. We reached 99% compatibility with that, and were at times much faster than the Flash VM (simply benefiting from years of investment in JS engines).

The hard part was understanding what the Flash player was doing, and the differences between all the different Flash Player and SWF File Format versions. Not to mention, re-implementing the rendering engine and the entire API surface of Flash, which was HUGE. We basically took existing content and tried to make sure Shumway did the same thing the Flash player did, wrote a regression test and repeated the process.

To this day, I still don't understand exactly how the timeline worked (or was supposed to work). It's like a web page DOM, but you can jump back and forth in the timeline, it's wild.

We certainly learned a lot working on Shumway. Firefox got a lot better, we stressed the JS engine and the graphics stack quite a bit, and had to make improvements all throughout the codebase to make Shumway possible.

In a lot of ways, Flash was great. Its rendering engine was (and still is) quite impressive, and nothing has really replaced it yet.

<comment><USER7> I feel the same way. Flash got so much crap from people, and a lot of it was deserved, no question, but people go so onboard with the "KILL ALL FLASH" bandwagon that they sort of forgot to replace it completely.

Video streaming with HLS isn't horrible, but it was so much easier (in my opinion) to do Flash with RTMP.

</comment></comment></comment></comment></comment><comment><USER9> Remember when getting a "free" (as in libre) version of Flash was a high priority. [https://www.gnu.org/software/gnash/](https://www.gnu.org/software/gnash/)

</comment><comment><USER10> Two questions:

1\. Can it faithfully reproduce Flyguy?

2\. Can it faithfully reproduce homestarrunner.com?

When the answer to both is "yes," then Shumway has reached its goal and the devs can stop coding. :)

<comment><USER11> Unfortunately ... the system is down.

<comment><USER12> Have some technochoclate.

</comment></comment></comment><comment><USER13> I worked on a Flash implementation called Spaceport in 2012 or so. We had the most complete implementation apart from Adobe, with all kinds of goodies like actual hardware-accelerated graphics on mobile (far better than the buggy AIR). Tried to get Mozilla to buy us out, since they were looking for a way to incorporate an open Flash implementation more complete than Shumway, but they didn't bite. Ended up acquihired by Facebook, product abandoned. I sometimes wonder, if things had gone differently, whether we could have given new life to the Flash ecosystem. Oh well.

<comment><USER14> I was working for Nickelodeon on HTML5 gaming around that time and I think I remember seeing your product. You might have interacted with some of the same people I did!

Does Facebook own your IP? Might be worth investigating whether you can loose it from where ever it lives. There will likely be a flash gaming revival over the next decade as all the kids try to revisit their childhood memories.

<comment><USER13> > Does Facebook own your IP?

No, afaik it should still be owned by the startup incubator that was the parent company of Spaceport. We open-sourced some ancillary bits and pieces before leaving, but not the most important components of the platform like the ActionScript compiler, build system, Flash API implementation, and renderer/engine.

I might try to get in touch with them, but open-sourcing it wouldn't be enough—realistically it would take most of the old team just to get it back shipshape, let alone continue adding features, and I know most of them don't have the time or desire to do that for free 5–6 years after leaving it behind.

</comment></comment></comment><comment><USER15> Flash will always be needed. How else will we view Zombo.com?

<comment><USER16> I mostly agree - but just in case, there is [https://html5zombo.com/](https://html5zombo.com/)

</comment></comment><comment><USER17> Mozilla abandoned it, I suppose because it required too much effort to complete and they need to concentrate on Firefox.

</comment><comment><USER18> I used this with great results: [https://github.com/swf2js/swf2js](https://github.com/swf2js/swf2js)

<comment><USER19> It's pretty awesome, but it's lacking a few very important things. The first I noticed was that it has no support for saving and loading shared object libraries (SOL's), which are what pretty much every flash game used to save data between sessions. They're pretty much 'Flash cookies.'

Also, it, like pretty much every other project except lightspark, doesn't seem to implement much of AVM2/ActionScript 3, which the "last generation" of flashes mostly used. Lightspark supports more of it, but still has severe rendering issues.

</comment></comment><comment><USER20> Looking forward to the Rust implementation, compiled to Web Assembly :)

</comment><comment><USER21> There have been forks and attempts at rewriting bits of it since it "died" [https://github.com/ivanpopelyshev/shumway/commits/master](https://github.com/ivanpopelyshev/shumway/commits/master)

there's also this thing [https://github.com/open-flash/open- flash](https://github.com/open-flash/open-flash)

Apparently the hard part is not the swf format, or the bytecode interpreter, or the action script language, it's the rendering engine, apis, and the vast number of bugs that content has over the years come to depend on and expect in order to work.

</comment><comment><USER22> why?

<comment><USER23> There's a roughly 20 year history of games and animations built for Flash. It would be a shame to lose them indefinitely.

<comment><USER24> I sometimes hope that Microsoft will release, for example, a Windows XP VM in an app. Perhaps a versions that's limited to connecting to the Internet Archive to play archived flash projects.

<comment><USER25> Should be able to combine Flash Player an older Firefox, ReactOS, and v86 to accomplish what you want.

<comment><USER19> You don't even need a windows clone for that since Adobe is still releasing linux binaries. Just use a relatively recent debian/ubuntu distro.</comment></comment></comment></comment></comment>


Re-Frame: Build web apps in ClojureScript and React - <AUTHOR> http://day8.github.io/re-frame/ <comment><USER2> Re-frame is a layer on top of reagent, which is an API for using React in cljs. If you want to use react, you can also just directly use reagent which is the preference of many in the community. The boilerplate and verbosity required for reframe could be overkill for many small projects, especially for solo developers, where pure reagent often thrives. However reframe's restrictions can be helpful in team environments.

The library github page is an entertaining display of equal parts vanity and hyperbole: [https://github.com/day8/re-frame/](https://github.com/day8/re- frame/)

<comment><USER3> Re-frame really doesn't add much in addition to Reagent, I really don't understand its popularity.

<comment><USER4> I've run a team with re-frame and a team with reagent (and a convention of a single state atom.) Reagent by itself scaled far better. I use re-frame if it's a company convention, but I'd far rather just ditch it.

Plain reagent has no unnecessary function registry; mutations are done with `(swap! my-cursor foo/update-foo bar)` rather than the extra overhead of `(dispatch [::foo/update-foo bar])`. This also helps new people who rely on cursive to jump to definitions, and don't have a preferred emacs setup.

Reagent testing can be scoped to a single DB. In re-frame, you can clear the subscription queue (which will not handle callbacks from network calls putting events on to the queue when the callback fires, leading to flaky tests that receive unexpected events.) In reagent, you have more power, since you can call `(reagent/atom {})` with your test state and any callbacks specfic to the test will see their DB, regardless of when they resolve.

Re-frame's single events/subscriptions files scaled horribly; once we got beyond a few hundred business-logic-filled events, velocity on changes involving that file slowed down a lot. We broke convention and moved events into namespaces closer to the code.

<comment><USER4> Three things that would make re-frame better, if you want them:

\- A supported/blessed way to switch out the entire app-db entirely for the purposes of testing

\- Use of symbols rather than namespaced keywords for function dispatch

\- Docs that give alternate strategies for code organization (fine to have the events.cljs convention, but would be nice to see some viewpoints like having one per child ns similar to angular's code organization model.)

<comment><USER5> Answers to your three points:

      - I'm wondering if re-frame-test might help?
      - That ship has sailed a long time ago. And, even if it hadn't, I diagree that symbols would be better.
      - I'm unfamiliar with angular's code. The Resources section lists larger apps which you can inspect.

<comment><USER4> I'll try re-frame-test, thanks! If it doesn't do something like `(with-redefs [re-frame.db/app-db (reagent/atom {})] ...)` it is still open to this bug, though. Because the call to `dispatch` happens inside of a callback the test library has no way to signal that future dispatches coming from a different function context should not be put on the same queue.

It'd be hard to change that aspect of the API now, and I wouldn't recommend you do it; but right now, editor completion and new-user understanding is just better on the reagent side. They do this:

        (defn assoc-foo [db bar]
          (assoc db :foo bar))

        (defn fetch-new-foo [db bar]
          (go
            (let [bar (<! (get-bar)]
              (swap! db assoc-foo bar))))

        (swap! db assoc-foo bar)
        (fetch-new-foo db bar)

whereas re-frame would make you do this:

        (re-frame/reg-event-db
          ::assoc-foo
          (fn [db [_ bar]]
            (assoc db :foo bar)))

        (re-frame/reg-fx
          ::pull-from-channel
          (fn [{:keys [f event]}]
            (go
              (let [resp (<! (f))]
                (re-frame/dispatch (conj event resp))))))

        (re-frame/reg-event-fx
          ::fetch-new-foo
          (fn [_ _]
            {:pull-from-channel {:f get-bar
                                 :event [::assoc-foo]}}))

        (dispatch [::assoc-foo bar])
        (dispatch [::fetch-new-foo])

The first one has a lot going for it; swap! is part of the standard library, has a bunch of docs for free, etc.; any clojure editor will pick up on the use of assoc-foo as a function and give you arity warnings if you pass too many parameters, etc.

I've looked at the larger apps - the way I've seen people be most successful if if they have a child namespace with events, subs, & views laid out on a per namespace basis (`my-ns.events, my-ns.subs, my-other-ns.events, my-other- ns.subs`.) Partially due to the tone the docs take, there's always some pushback as to whether that's the re-frame way to do things, and I'd love to just be able to avoid that whole conversation in the future.

</comment></comment></comment></comment></comment></comment><comment><USER6> Re-frame is absolutely fantastic in my experience. Here's a beginner workshop on Reagent/re-frame that I ran for Js devs a little while back. If you're interested to try ClojureScript, this will run your through the basics from ground up

[https://github.com/ClojureTO/JS-Workshop/tree/shadow- cljs](https://github.com/ClojureTO/JS-Workshop/tree/shadow-cljs)

</comment><comment><USER7> I enjoy working with re-frame and can't imagine building single page apps in ClojureScript without it. For some reason the docs are controversial, which is a surprise to me. I appreciate the conceptual framing in the docs and how each section builds upon the previous. I don't mind the references to star trek or statements on the greatness of Lisp.

A common complaint seems to be the docs are too verbose and people just want to jump in and use the library. If this is you, I recommend using the Luminus framework [https://luminusweb.com/](https://luminusweb.com/) to generate a new project template so you can hack on a ClojureScript project with re-frame to see if you like it.

      # Make a new project with re-frame
      lein new luminus my-project +re-frame
      # Start the clj and cljs repls
      lein repl
      lein figwheel

</comment><comment><USER3> I really dislike the documentation of re-frame. The concepts are quite simple, but the docs explain them in a really confusing and buzzword heavy way.

<comment><USER5> Hmm. In my experience, this an unusual opinion (to me, the author). Over the years the re-frame documentation has been the most praised part of the project.

Could you point out the area which you found unnecessarily difficult, and I'll happily review it. Could you also include your background, so I know where you are coming from? The docs are a little oriented towards JS developers coming across, but perhaps you are already very experienced with Clojure and data- oriented design, which makes it seem like the concepts more obvious. Maybe.

<comment><USER2> > In my experience, this an unusual opinion

It can't be too unusual; I've seen this critique shared in forums, to which you've replied, for years.

I've seen developers remark how turned off they got by reading stuff like this on its front page, which is frankly just noise and undermines the goals of a serious project:

> re-frame is lucky enough to enjoy an unfair advantage...When we use Lisp, we > get to leverage 50 years of foliated excellence from the very best minds > available.

I mean, come on. The very best minds work in many different fields with many different languages. Lisp doesn't own the best minds, and neither does re- frame. The fact that lisp or Fortran or other languages have been around for many decades is kinda irrelevant, and this writing style permeates all the docs.

> Travel the geodesic.

> an immaculate hammock conception

The heart of the how-tos is often hidden in lengthy prose that celebrates itself.

<comment><USER5> > It can't be too unusual; I've seen this critique shared in forums, to which > you've replied, for years.

In this thread, I was responding to someone saying the concepts were simple but explained with too many buzzwords. I certainly have no recollection of someone of someone saying that before.

On the other hand, I have heard some say they'd want more code examples earlier. And, just as soon as I get time I'll be doing that. Unless you want to supply a PR yourself - given your posting frequency you seem very, very invested.

<comment><USER2> My apologies again for the negative tone of my comment. I've had a bad day and I let it bleed into my remarks here.

</comment></comment></comment></comment></comment><comment><USER8> I would love to try out all these cool alternatives to pure JS plus Vue or React, but at what point is this a good idea for a commercial production application?

<comment><USER9> At this point I think it's safe to say---clojurescript has proven itself and is not a risk.

An excellent language, good libraries (Metosin's ambidextrous router, Reitit, stands out here), _the_ best development story with Figwheel, and oh, dead code elimination for _free_ , as the cljs compiler leverages Google's Closure (not to be mistaken for Clojure) compiler.

Not to mention that cljs is actually a _better_ fit for React even than JavaScript---implicit return, bias towards functional programming, and it requires no magic JSX step---in cljs you just write your html in nested data literals. It's a dream.

I haven't even mentioned black magic like core.async, or that now your front- end devs have a foothold on the JVM rather than the more-impoverished Node ecosystem(oh, you want to keep Node? Well, cljs runs there too!).

Pitch is a well-funded German startup making a presentation tool in the browser---as in, they can't afford to get their front end wrong---and they're comfortably using cljs.

Frankly at this point I think anyone serious about the frontend, who wants it to be _good_ , not just passable, should be using clojurescript. There are reasons not to---if you need something today, and don't have time to learn a lisp---but for anything not due next week, I'd recommend cljs.

<comment><USER10> Conversely, I found the experience pretty terrible when I worked on a big cljs/reagent/reframe/figwheel app over the course of a couple of years. It was slow, prone to runtime errors (though not as much as JavaScript), and often presented weird edge-cases at the intersection between the Lisp world and the React world. The company ended up abandoning all this stuff after having been big Clojure/ClojureScript evangelists for a long time.

On the other hand, after having built several large Elm applications, Elm is still the tool I'd recommend. On my current ~10KLOC Elm project, compilation is near enough instant, the structure of the code is more rigid so it's far easier to understand — even for beginners — and there's _far_ less potential for runtime errors to occur.

Of course, this is _the_ classic religious war in programming, so I expect someone to appear soon and point out that there is no empirical evidence to support the idea that a type system like the one in Elm or Haskell results in fewer errors in practice. Or perhaps they'll say jet fuel can't melt steel beams.

<comment><USER5> Hmm. This is likely to devolve into a static vs dynamic typing borefest. There is no right here: it is just different brain wiring (preferences), backed by motivated reasoning on both sides.

But to address the three points you raise...

I'm surprised to hear that there was a problem at the Reagent/React boundary. We find that works sooooo well.

I genuinely love Elm's claims around 0 runtime errors. It gets my nerdy juices flowing. But then I remind myself that this is simply not a problem I have. We might get one every blue moon (in production) and then it is fixed and deployed about 10 mins later. I have many technical challenges (eg. Kubernetes etc), but runtime problems is not in my top 20.

As to slowness, I can't comment without knowing more. We don't have that problem but that doesn't mean it might not exist in some domains. Then again, it could be bad design decisions. Dunno.

One thing for sure, I'd choose Elm over javascript any day, but ClojureScript is just working too well for us right now.

</comment></comment></comment></comment><comment><USER11> I've looked at re-frame for a couple of years now, since right when I started learning Clojure on my own time, and I'm quite interested but still on the fence about whether it would be helpful for my use case.

Our API calls are messy (historical limitations) and clojurescript's robust data merging capabilities would work wonders here. In a new front-end iteration I'm trying to use the model of a single global data store, but given how many conditional API calls we have to make and how much easier and more idiomatic it is to "cheat" with mutability in JS, it's hard to convince my team to be rigorous about keeping to this pattern for everything. There are real difficulties and tradeoffs there: ES6 spreads more than one level deep are hard to read, we may want to display a view before its drop down entries are resolved, etc.

The essentials are that we have to handle retrieving the following:

1\. A model that represents some global concerns (auth, network/system errors, websocket messages) plus the data required by the current view.

2\. A template that determines how to display the current view. This can be a full-page display with nav tree links to other views plus the display form that a given field should use (input, drop down, button, etc.), or it can be a modal view, n layers deep, and also may or may not contain a nested nav tree of its own. (Yep, we have to keep the lower-layer models ourselves and still merge errors/websocket stuff.)

I'm already confident that cljs can turn the messy model reconciliation into something easier to read and maintain. I'm less certain about re-frame's idea of how to subscribe to its db data, especially since I'd like to reuse some custom components in deeply-nested data. For example, "sticking a drop down inside of a grid column" is an expected feature in the view template.

Transforming it from js react to cljs reagent _seems_ like a pretty straightforward exercise—famous last words. The impression I get from re-frame is that it's "a more robust redux with less boilerplate," and the dev tools look great. But any proof-of-concept app I develop will be a spare-time if not my-own-time exploration. It's something I want to do, because I think it'll save us loads of time later and just be more fun to work with. It's also an uphill battle to sell using Clojure at my org anyway, and I want to make a good pitch of it without spending too much time in the weeds.

Does anyone have experience with a system like this in re-frame, or in cljs more generally, who is willing to give me some feedback?

</comment><comment><USER12> the documentation seems thirsty for validity, if i am being honest about it's attempts to impart understanding with it's quip context.</comment>


Jeff Bezos's Master Plan - <AUTHOR> https://www.theatlantic.com/press-releases/archive/2019/10/november-2019-issue-release/599809/ <comment><AUTHOR> Mods:

Could you please change this post's link to the original article:

[https://www.theatlantic.com/magazine/archive/2019/11/what- je...](https://www.theatlantic.com/magazine/archive/2019/11/what-jeff-bezos- wants/598363/)

It's far better and more thorough than the very short summary I originally linked to.</comment>