Java’s results are super surprising. I hold the JVM’s GC in extremely high regard, so I would love to see comments from someone who is more familiar with it’s implementation.
After reading into this more, it looks like the Java runtime has a number of GC algorithms available, and will use heuristics to pick one as the program runs. The goal of this is to allow it to perform well with either low latency or high throughput requirements.
In the Java benchmark results listed in the blog post, one version lets the runtime decide which algorithm to use, and the other explicitly uses the G1 collector. After reading the HotSpot docs, it looks like the concurrent mark and sweep (similar to Go’s) GC might perform well with low latency requirements.
The reddit user jcipar managed to get the max pause down to 22ms by tweaking parameters.
He also mentioned that the JVM GC does a lot of online tuning, so the max pause times may drop over a longer run of the program. This is similar to the Racket GC, where the maximum pauses are >100ms at the start of the run, but converge to around 20ms as the program continues to run.
It would be nice to run the benchmarks for a longer period of time, and only measure max pause times once this “ramp up” period is over.
Ya - I was going to say. The magic of Java (and .NET actually) is that they’re much better given long run times with their Server GC’s. I’d like to see the benchmarks over the course of a day or even a week.
Gil Tene suggests a part of this is the lack of compaction in Go
.@jamie_allen Go’s (current) collectors don’t compact. Different problem space. Not compacting in Java mean not running very long.
Working on updating our Ruby JIT to work with something much closer to Ruby HEAD. Initial bits are done, but at the cost of neutering a lot of functionality
An Apple wired keyboard with numeric keypad.
http://www.apple.com/shop/product/MB110LL/B/apple-keyboard-with-numeric-keypad-english-usa
I’ve been using these keyboards for years as well. I love them (and I do not use OS X).
Over the years I’ve tried several mechanical keyboards with different kinds of switches but this keyboard remains the one I return to.
The one keyboard I do want to try out is one with Topre switches. From several switch testers I’ve tried out these always jump out as the switch I like best, but these keyboards are pretty expensive.
Not sure if anybody else on the BO team is a Lobsters user, but I’m happy to answer / forward any questions about this stuff. It’s still early days, but we’re all excited to have it out in the open where we can collaborate with the community :)
Looks great! I’m really glad to see Jenkins moving at a good clip, and Blue Ocean looks like something I’d be super happy to deploy at work (eventually ?)
Blockchain is a pretty interesting technology but there’s one massive flaw in this implementation:
A decentralized peer-to-peer architecture with nodes consisting of market participants (such as banks and securities firms).
What makes a blockchain trustworthy is that it’s very hard for a single entity to dominate the network and start cheating. bitcoin has thousands of full nodes and each of these help to secure the network. When membership is limited to banks and securities firms only the number of nodes is going to be low. Add to that the stakes are also very high with large sums of money involved and the incentive for someone to break this relatively insecure system is very high.
In practical terms it’d make a lot of sense for them to just piggyback on the bitcoin blockchain since it’s already heavily secured by a large number of participants. But I doubt they’ll do that since then they’d have to give up on the control they get from the relatively centralized model they’re proposing.
With a limited membership list, you can (e.g.) whitelist the private keys that are allowed to participate. The participants can agree up-front that if someone starts overmining everyone else will blacklist their keys.
I have had a similar thought, but I have to imagine there is a reasonable answer here… I just can’t think of it.
For me, I’m a software note-taker, and a dedicated user of Zim which is a desktop wiki that fits by brain very nicely: The ability to create document trees is really useful, for keeping a work log, or for putting related documents together.
Search is pretty good, and so I have a tendency to paste just about everything of interest into it, for future reference.
I’m really excited for OMR. Having a generic reusable tool of that power freely available is going to really enhance a lot of languages out there and possibly start some new cool ones.
OMR Team member here: Super glad to hear that! We’re hard at work trying to make this happen. We’ve put up our Eclipse Project proposal here here, and would love any feedback people have.
I’ve been using Fantasque Sans Mono for over six months now, and it’s definitely one of the best monospaced font I’ve used. I initially installed it just to see how silly it looked (it used to be called Cosmic Sans, what should you expect), but I realized that a lot of work and effort went into making it. I find that it looks better than DejaVu, Consolas and Terminus for my uses, including playing roguelikes.
Yes, I’ve been using it for a while too, +1 for Fatasque. It’s especially great on highdpi displays.
dstat instantly replaced htop as my “first glance at a troubled system” tool as soon as I saw it. It has nice breakdowns on different types of cpu + disk + net + paging + context switching etc…
I’ve always deferred to iostat and/or iotop to verify if high load is due to blocking on IO. Iostat should be there on most Linux systems, especially servers.
I see another commenter mentioned dstat, I’ll have to give that a try.
I think we all need to exercise a large amount of sympathy for the person who sent the message. While they go about things the wrong way, people do not understand the way that software is put together, and so come to unreasonable (to us) conclusions.
Perhaps we need to be developing some well written explanations that can serve as templates for responses to mail like this.
I mean, I’m sympathetic - she sounds desperate, and for good reason. That doesn’t mean indulging her patiently is a productive course of action - that will just encourage more of the behavior, from her and others. And the author here has already tried that, it appears.
This was a fascinating look into how badly a game can be broken with effort. Lots, and lots of effort.
A real congratulations to the video production too – made the whole thing completely understandable, with an excellent level of detail.
We’ve made great use of this in our quest to improve the codebase. By making dependencies explicit, rather than third order includes of includes, it’s dramatically easier see what’s been put in the wrong place.
I feel like it’s impossible to discuss “unicorns” without extreme silliness ensuing. Even the word is obnoxious and immature.
Using it without irony or dismissal is saying, “I’m oblivious to the fact that I’m a future stereotype of the worst things about the 2010s.”
I find myself thinking that if my kindle (non-fire) had an email client and decent web browser (which would necessitate a better screen refresh rate), I’d ditch my phone.
My Droid turbo lasts about two days most of the time, but my kindle lasts for literally weeks. I came back from a two week vacation without charging my kindle, picked it up and started reading without issues. If I could do that with my phone or – even better – my laptop, I would be very very happy.
The kindle doesn’t even have to refresh the whole screen it can flip parts of the screen. I’d love to have a e-ink ssh terminal.
I bought something along these lines last year - a device called an Onyx Boox i86 which has access to the Play Store, supports Bluetooth keyboards, has a button to switch into eink’s A2 refresh mode for temporary smooth scrolling, etc.
The device isn’t perfect (has a small battery when using wifi/scrolling, shipped with an old Android version (but is now updated)). I haven’t been actively using it but these comments are making me think about trying to make it my primary device for a week.
If yer curious about this stuff I’d check out the mobileread.com forums which seems to be the most active community of eink ereader power users.
Oh yeah. Something like this + keyboard and battery would be a dream device for working on a beach.
I’m not sure you’d get the same battery in that case though. You’d actually be using the wifi and CPU instead of letting them idle. The screen on most devices certainly uses quite a bit of power, but not all of it.
I still use feature phones for exactly this reason. Smart phones are for kids.
I always have to laugh when people compare their smartphones' speed to old mainframes. You know what they also have in common? Being useless a useless brick when not near a power outlet.
PS: The Nokia 100/200 are pretty great. 3-4 weeks without charging.
That’s actually a good point. I guess the reason the smartphone makers don’t try for better battery life is because not enough people complain or walk away from their products. Wouldn’t be surprised if the scene changed pretty fast if people actually voted with their feet.
It’s not even monofunctionality, IMHO (workflow and UI is one side of his equation though) - it’s the fact we have giant backlit colour screens and massive cores. Put a super-low power SoC/CPU and a nice ePaper screen and you have a general purpose computer running whatever normal software. Then you can build whatever constrained (in whatever ways you like) software.
I’ll be honest my end goal is a SSH on a chip with e-ink screen and a keyboard. The ultimate terminal.
I more or less subscribe to this methodology, however it breaks down in long-lived feature branches (I know, a bad thing anyway) with several collaborators. If you wait to rebase until the branch is “complete” then you risk some really hairy conflicts and potentially flat-out breaking the feature you’ve been collaborating on in hard-to-identify ways. If you rebase frequently, then you screw up peoples' local repo when they get out-of-sync with the newly forced branch refs. Generally rewriting history in a collaborative environment requires great care.
One of the best things I picked up from this post was actually from the comments - I didn’t realize --force-with-lease was a thing, but I like it. It’s too bad it’s such a long option, but it may help this collaborating with rebases problem somewhat.
When you do --force it means you don’t care about prompts or warnings, and you just want to do what you want to do. Making --force behave as --force-with-lease means it won’t force when you really want it to force. I’d prefer something like --overwrite or --rewrite to make it clear you’re removing history, but it’s also not going to get held back by the conventional semantics of CLI toos.
If someone adds a jit to this I bet it would offer a strong case versus luajit. However, it looks like someone would need to maintain an alternate implementation: https://github.com/munificent/wren/issues/371
I wonder if this is a case for integrating OMR’s jit like IBM has done with Ruby.
We (at OMR) would love if someone tried it – and we’d be willing to answer a lot of questions on the process.