Chimps understand concept of cooking - <AUTHOR> http://news.harvard.edu/gazette/story/2015/06/cooking-up-cognition/

<comment><USER2> I am not a biologist or anything of that ilk, however I am a bit skeptical that the chimps understood the concept of "cooking" the food. It seems more likely that they understood "hey if I do X, then the food gets more tasty" with X being put the food they have (which is raw) in the "cooking device". Making the leap to saying "yes they totally understand the concept of cooking" seems a bit anthropomorphizing.

<comment><USER3> To be fair the article added this anthropomorphism. What the scientists found is unlike most animal species, the chimpanzees had enough self-restraint to not eat raw food the moment they found it, if they knew they had the chance to improve it later on.

</comment></comment><comment><USER4> Catching Fire, by Richard Wrangham, is a pretty good read for those interested in the impact and importance of cooking in human evolution. I really enjoyed it.

</comment><comment><USER5> Seems a bit weak. [http://www.gocomics.com/calvinandhobbes/1986/03/12](http://www.gocomics.com/calvinandhobbes/1986/03/12)

</comment><comment><USER6> I'd like to know more about this "cooking device". Was it not _really_ cooking the food, but just switching the raw food for cooked food? What exactly was it?

<comment><USER7> [http://rspb.royalsocietypublishing.org/content/282/1809/2015...](http://rspb.royalsocietypublishing.org/content/282/1809/20150229)

See also the 'Figures & Data' tab for some drawings and videos.

The cooking 'device' is just two nesting plastic bowls with a piece of cooked food hidden in it.

</comment></comment><comment> T-A This is news? [https://www.youtube.com/watch?v=GQcN7lHSD5Y](https://www.youtube.com/watch?v=GQcN7lHSD5Y)

</comment><comment><AUTHOR> from the article: "[chimps share with humans...] a preference for cooked food, the ability to understand the transformation of raw food into cooked food, and even the ability to save and transport food over distance for the purposes of cooking."</comment>


A Million-user Comet Application with Mochiweb, Part 2 - <AUTHOR> http://www.metabrew.com/article/a-million-user-comet-application-with-mochiweb-part-2/ <comment><USER2>
      We made a comet application on Mochiweb that lets us push arbitrary messages to users
      identified by an integer ID. After pumping 1000 msgs/sec through it for 24 hours, with
      10,000 connected users, we observed it using 80MB, or 8KB per user. We even made pretty
      graphs.

Much better. It is on the level of the rest of the field now (save Liberator.) Still, a million looks far from this. I can't wait for the conclusion. If it doesn't happen we'll have to get some torches. ;)</comment>


Show HN: Voice feedback widget to hear from your users - <AUTHOR> http://developer.voicegem.com

<comment><USER2> A nice addition would be a close button, plus listening for the Esc key, to close the "Send us a voice message" dialog after it has been triggered. Otherwise a very impressive idea!

</comment><comment><USER3> This is great! I added it to our homepage because olark has been great, so hearing the voices of our customers would be great too.

I did a quick custom button on our page and put it alongside our twitter and fb buttons (<http://www.doublerobotics.com>), but it would be nice to have a well designed/branded widget that fits nicely with social buttons.

</comment><comment><USER4> Would there be a way to easily publish the good (or bad) testimonies from your users to put on your landing page? That might be something that entices people to install it on their sites?

Alternatively, you could make this for mobile sites, so instead of having to type feedback on small keyboards, you can do it by voice! And then you can try to transcribe it either using natural language processing (only if you're up for it), or farm it out to 3+ people for transcription, and cross check each copy for accuracy.

And then if this can go to whatever system people use for CRM, I think that's be pretty neat, esp for mobile!

<comment><USER5> And yes, you can easily get a public link to any voice feedback you receive, and post it on your testimonials page. But I would check with the sender first obviously.

</comment></comment><comment><USER6> You need a way to bring up the preferences options again. I know this will offend the 'simple ui' sensibilities of some, but I clicked something wrong, and 'remember', and have no way to change it, so now I get no audio. ever. :/

</comment><comment><USER7> This is great, I'm trying to think why olark / liveperson / intercom.io don't have something like this, it's brilliant. +1 for taking the time changing Bootstrap colors a little

one constructive comment, I wanted to click "home" (to (voicegem.com) but could not find a link, I just edited the URL manually, but adding a homepage link would have been nice.

and another one, really small one, it took me a while to notice the "remember my choice" for approving the microphone, I would do that as a checkbox, default on, it's hard to notice, and once I gave you permission, I trust you not to eaves drop on me.

<comment><USER5> Thanks for the feedback, just changed the header link so it takes you to VoiceGem.

The permission remembering has to be set by the user, and we found the simple Allow screen to be more friendly than the one with the remember box. Thanks for the feedback!

<comment><USER7> Thanks! fast fix...

</comment></comment></comment><comment><USER8> I think a really nice feature would be to let me send some voice feedback to MYSELf instead of to you guys, so I can test it. I wanted to test it but not necessarily send you feedback.

<comment><AUTHOR> Great idea, working on it right away.

EDIT: Done!

</comment></comment><comment><USER9> I got a blank recording from this, and then when I tried to send it to you it failed and said the message couldn't be sent anyway.

Some kind of indicator of audio levels is going to be important so users can at least see that it's working properly. Not sure what's up with it not sending, probably an easier fix on your end.

<comment><AUTHOR> We do have a sound level meter. If that didn't move for you, it probably means we didn't get any sound input from your microphone.

As for the sending, we are investigating it right now. I think the recipient email address was malformed; just pushed out a fix, hopefully that'll do.

</comment></comment><comment><USER10> I've noticed that with my Retina MBP (using Chromium nightlies), I can't click on the "Allow access to microphone" button in flash. Is this an issue with retina pixel mapping?

Pretty frustrating - voicegem looks awesome!

<comment><AUTHOR> Yea, that's a bug with Flash and the new Retina display. They fixed that in the new beta version of Flash. Hopefully it will be pushed out soon.

</comment></comment><comment><USER11> And it crashed.... [http://www.downforeveryoneorjustme.com/http://developer.voic...](http://www.downforeveryoneorjustme.com/http://developer.voicegem.com/)

<comment><USER7> Up now, might be the HN front page traffic boost syndrome

</comment></comment><comment><USER12> Cool service! Just left some feedback :)

</comment><comment><USER13> reminds me of odeo.</comment>


Note to self – never give up on your dreams - <AUTHOR> https://docs.google.com/document/d/1HOol4Jw1uMgIxc8hj23Fx0H_mPAo_a67JcdRt_hJM3M/edit?usp=sharing <comment><USER2> "Note to self" Is a good prefix. For many people there are numerous possible paths to success and flexibility + adaptation is the key to happiness, while failing quickly is a crucial intermediate step.

Choosing to go all in on one is a personal choice that is going to be a poor fit in tons of cases.

<comment><USER3> All self-help should come with the prefix, as in 'this worked for me, may work for you or others, or not'

</comment></comment><comment><USER4> Does opening this google doc give the owner my email address?

</comment><comment><USER5> Note to people publishing with google doc: It's not possible to use text-to- speeach software when google does not allow access to the select and copy buffer.

</comment><comment><USER6> I'm impressed by the polish of the website and the product for a one-man operation. Congrats!

</comment><comment><USER7> congratulation, can you share how you made money from this?

<comment><USER6> I'm also curious - he mentions that the trigger for this note was someone becoming a paid subscriber, but I could not find that option in partizion.io or any other web presence.

EDIT: found out, after installing the extension, there is a 'Subscribe to PRO' option. Costs $6/month or $48/year and unlocks unlimited workspaces.

</comment></comment><comment><USER8> This is a great reminder that ultimately only you know what _you_ want.

Don't let anyone else discourage you by pretending they know what you want. They don't.

</comment><comment><USER9> have you considered advertising your product via ppc for example? it can be an effective way of getting more customers if properly done

</comment><comment><USER10> Actually looks really useful plugin too!

</comment><comment><USER11> thank you so much.

</comment><comment><USER11> thank you so much</comment>


Killer Queen: Half Joust, half StarCraft and one giant snail - <AUTHOR> http://www.polygon.com/features/2013/8/29/4593934/killer-queen-joust-starcraft-giant-snail <comment><USER2> I had a chance to play this game at California Extreme last year. There were about 16 controllers hooked up, and most were full at any given time. Very fun, and extremely chaotic. It's probably one of the most interesting of the couch multiplayer games coming out right now - Samurai Gunn, Divekick, Sportsfriends and the like. There's a bigger difference between 2v2 and 8v8 multiplayer than you would think, and that dynamic is really multiplied when you're all in one physical location. That said I worry about the viability of these games because it's so hard to get a group of that size together in the absence of arcades. I bet they could get really big at college dorms, though. I know the Wii still does very well in dorms because of Smash Bros. and Mario Kart, which have similar optimal player configurations.

</comment><comment><USER3> Oh man, these sorts of things are my favourite kinds of games. I love any sort of esport level multiplayer, but I also love the amount of fun that local multiplayer games can bring (Bomberman, Nidhogg, Smash Bros. etc).

I'd be interested to know the rules in detail. A quick google hasn't turned up anything though...

<comment><USER4> Bomberman is god tier game.

Absolutely amazing.

I am surprised at just how terribly wrong they got it in later iterations - weird 3D and horrible styling.

Has anyone done an analysis of franchises that stopped being great? Bomberman, MicroMachines, etc etc.

<comment><USER5> When my youngest son played bomberman for the first time with the rest of the family, I went and got the camera and took some photos of him playing because of the joy and surprise so clearly visible on his face. Later I tracked down an email address for the designer of the game and sent the photos. I got a very nice reply from a coworker in English passed back.

</comment></comment></comment><comment><USER6> This game is awesome.

Here is some footage of my team from the tournament in February: [https://www.youtube.com/watch?v=44O1fWfj2QY](https://www.youtube.com/watch?v=44O1fWfj2QY)

</comment><comment><USER7> The bi-coastal Come Out & Play festivals are probably the best place to learn the importance of field testing.

It's already a pull quote, but this really deserves emphasis:

"""

"The way that we really playtest [the video game] is by playing the field game, because the iterations are just easier to implement," says Mikros. "We just change it, no coding involved."

"""

Get out into the world, fellow hackers!

</comment><comment><USER8> Is the Unity middleware really as good as he says? I'm not a Unity developer but I can't imagine what kind of middleware would help that much.

<comment><USER9> Hey I'm one of the designers of the game. In Killer Queen the only middleware we used was 2DToolkit for 2D rendering, although this is no longer necessary since Unity has 2D tools built in. However with other projects, especially 3D ones, I use stuff from the asset store all the time. Some of the code we're using from the asset store handles pathfinding, procedural terrain generation, tweening, and GUI rendering. Plus, we get a lot of art assets from there (especially for placeholders.)

</comment></comment><comment><USER10> A hoot of a game, but there's really only one, I think. And you really want a full compliment of players. It was on display at GDC this year.

<comment><USER9> There's two cabinets right now: one in NYC and one in SF. We're making more but it's a slow process. If you're in NYC you can play it at Spring Fighter in June: [http://gamecenter.nyu.edu/event/spring- fighter/](http://gamecenter.nyu.edu/event/spring-fighter/)

<comment><AUTHOR> How powerful is the computer driving your Killer Queen game?

The article says your first cabinet cost $3,500. How much of that was just materials? If you built more cabinets (perhaps less fancy and with lower-end computer hardware), how much cheaper could they be?

Also, I'm curious what kind of game play tweaks you've made based on player feedback after your unveiling at NYU's No Quarter exhibition?

<comment><USER11> Hey cpeterso the first cab was somewhere between 3500 and 4K to build but we did all the labor. If you calculate that into the equation, it's more like 20K. Our current cabinets are more expensive, they retail at 12K, so it's not the kind of thing you will buy for your room. They are built in Wisconsin, are of higher quality and also feature better TVs. We'll ship wherever. They include a coin door and are really made for public spaces like arcades, bars, student unions etc. We're figuring out how much money can be made on them and it's looking very good that you can recoup the money in less than a year if it's in a well trafficked area. Our goal is to get them closer to 10K or less. Believe it or not the computer is only about 400 of those dollars, the bulk of the money is the cabinet, joysticks and TVs. We are looking at ways to make them cheaper but we'd have to build quite a few of them to get economies of scale working for us.

As far as game play tweaks, it's not really any one big thing, it's more about little tiny changes that we keep doing in response to tournament performance. We did change the way the soldiers look and made variants on the workers so they are easier to distinguish from each other. The big changes have been in making it Arcade ready, adding an attract screen, music, code for taking money, UI elements to let people know that the game is about competing with the other cabinet, instructions etc.

<comment><AUTHOR> Thanks for the details. I missed Killer Queen at California Extreme 2013. Are you going to California Extreme 2014? :)

</comment></comment></comment></comment></comment><comment><USER12> Halfway through I thought this was going to be a hybrid video/physical game in the vein of Natural Selection 2, where two teams each had a "commander" using a computer interface to give them high-level real-time strategic direction, while the other players engaged in physical melée to determine the outcome of individual battles. That would be even cooler.

</comment><comment><USER13> Is it guaranteed to blow your mind?

<comment><USER11> of course.

</comment></comment><comment><USER14> This was the best game I played at GDC this year.

Recently there's been a great groundswell of local multiplayer games, and this is one of the top ones out there.

</comment><comment><USER15> Are there any videos that showcase the game?

<comment><USER16> There is one on the right of the second section, [https://www.youtube.com/watch?v=zorgpC93Aq4](https://www.youtube.com/watch?v=zorgpC93Aq4)

<comment><USER17> Reminds me a lot of Warcraft 3 custom games (minus the in person setting and arcade game input)</comment></comment></comment>


Why You Need To Hire Great Developers - <AUTHOR> http://benlakey.com/2012/07/01/hire-great-developers/

<comment><USER2> I hear this statement all the time. Great developers are 20x more productive than average developers.

I've been a software engineering manager for 20+ years.

I've worked with great teams and I've worked with teams where it fell on me to fix a bug because no one else could figure it out.

In my experience, it's more complicated than good developers vs. average developers.

There are best practices that great developers demonstrate. There are great developers who are terrible team players and there are terrible developers who turn out to be great product managers. There are average developers who have a critical ability to keep the team together and to get even more out of the top developers.

In my experience, I prefer the right attitude, the right drive, and a person who is constantly striving to do better.

There's a lot of arrogance in our industry. I'm not sure it's something that we should continue to embrace.

<comment><AUTHOR> I agree with you wholeheartedly, and I think the points are complimentary. I also wrote a post prior to this one, in which I argue that a team of good developers that can work together is far better than a team with one technically superior developer who can't work with others. If you can find the developer who is both technically great, and can communicate effectively in a team, you've found a very special person indeed.

</comment></comment><comment><USER3> This post feels a bit too much self-congratulatory. "look! I'm a great developer! And if you're one too, upvote!"

For one thing, the problem is that it's not a simple dichotomy of great developers vs. average developers. I have nothing to back it up, but I'm guessing it's a fairly typical normal distribution of talent… Then, where does "greatness" start? 20x sounds fantastic, but what's the difference between a great developer and a developer that just a bit less good? Will I get a 2x at least?

The other thing that bothers me is that it's a very selfish and elitist idea. I'm pretty sure that most of the great developers didn't start as such. To become "great", they worked and learned from others who were better than them. And they certainly did so by working in teams that accepted a "not-great" developer amongst them. The horror.

If everybody did like you're saying, we'd eventually run out of great developers, because the not-great-by-a-hair would have to work with the terrible horrible average developers and wouldn't progress as they should/could. (except for the rare breed of truly great developers who were better at 14 than most developers will ever be)

edit: in this last paragraph, it sounds like I consider _myself_ a great developer. Let it be known that I think no such thing.

<comment><AUTHOR> These are fine points. Apologies if it came off sounding self-congratulatory.

</comment></comment><comment><USER4> This article was very confusing. They go on to praise the great developers, and how much companies need them, etc, but then they end with this:

>If after you interview a candidate you find that you aren't completely sure about them, don't hire them. If you can't tell if they are good or not, don't hire them. If 2 out of 6 people on the interview loop are either 'no' or 'maybe', don't hire them. The consequence of letting a bad developer in the door is far greater than maybe missing a good one.

This is exactly what people do, and it's the exact reason why finding great developers is hard. And ironically, this tip is posted under the section "We're Awful At Distinguishing Great Developers."

Great developers are difficult to spot because they can look like bad developers. Great developers are often honest about what they know and don't know. If you ask if they know mysql, their answer might be that they're very familiar with it, but there's a lot about it they don't know. Great developers can often lack the confidence that average developers exude to make up for their lack of skill. If you ask how to do something, they might express that their way may not be the best. Great developers can be nervous, because they can believe that they may not be as qualified as a company is seeking.

All these signals make people doing the hiring uncertain. To put a filter of "unless 1000% certain, do not hire" just ensures you get someone of, at absolute best, your skill level, and at worst, a fantastic bullshitter.

<comment><AUTHOR> Would you agree that being a great communicator, and growing as a person to be less nervous are aspects in the makeup of a great developer? (I'm not saying they are, just curious what you think).

</comment></comment><comment><USER5> Can somebody invent a way to filter programmer groupthink articles out of the HN homepage?

</comment><comment><USER6> This article is operating on an assumption that you let any given developer access your entire codebase. By partitioning developers into certain projects, you can isolate bad developers and move them into less harmful positions, while moving the majority of your great developers into critical infrastructure areas. There are ways to handle this that do not include missing out on good developers.

<comment><AUTHOR> I agree that it operates on that assumption, and that the full-stack developer assumption is a good one. Have a read of this blog post for the mindset:

[http://codercake.com/benefits-of-becoming-a-full-stack- devel...](http://codercake.com/benefits-of-becoming-a-full-stack-developer/)

</comment></comment><comment><USER7> Are we done with having original thoughts now? Why was this written? Programming bloggers that are in some kind of management or, especially, founders write this exact same post 100 times a day ... We get it ... The "20x rock star progammer" meme is real and we have to pay attention !!!!

Ok, whatever. Stop talking about it. I think it is probably true that great programmers are order of magnitude BUT please don't flame over that because I don't care.

However, why do most of these CRUD projects think rock stars want to work for them or why do they think they are doing "really important stuff" when they are really just doing CRUD, and in some cases plain old boring CRUD.

Anyway, this whole concept, true or not is just cliche at this point.

<comment><USER5> Basically everyone is still rewriting the same essays that Joel Spolsky wrote around 10 years ago.

<http://www.joelonsoftware.com/>

<comment><USER8> Agreed, the article in the OP is a re-worded version of [http://www.joelonsoftware.com/articles/FindingGreatDeveloper...](http://www.joelonsoftware.com/articles/FindingGreatDevelopers.html)

</comment></comment></comment><comment><USER9> In my experience hiring great developers brings more challenges then benefits.

They are difficult to retain, They are difficult to be made satisfied, you need to change your company compensation rules to accommodate them and various other problems.

It's much better in my experience to hire a mediocre developer and train him in your domain.

<comment><AUTHOR> If it requires changing your company compensation rules, you have different problems at hand. Great developers don't cost more in dollar signs so much as they do in operating in an environment with other great developers, working on great challenges.

</comment></comment><comment><USER10> My company is making a business of identifying great developers (gild.com). It is a notoriously difficult task, even with the wealth of information developers tend to make public about themselves.

<comment><USER11> _...even with the wealth of information developers tend to make public about themselves._

I guess I'm gonna be a negative Nancy here, but I know some very good developers that don't make anything about themselves public. I expect some of the very best are completely invisible on the internet, at least by their real name, because they're too busy working on things their employers would rather keep as trade secrets.

<comment><AUTHOR> I suspect you're right, though I'd rather they share the non trade secret advice that they have in a more public fashion, such as a blog or stackoverflow.

<comment><USER10> Yeah, this is what we're aiming at, making how developers interact with the community as part of our scoring metrics.

</comment></comment></comment></comment><comment><USER12> "There are lots of companies and people earning lots of money writing bad codes. There are lots of money to be made fixing those bad codes."

</comment><comment><USER13> I don't think hiring great developers is something everyone must do. After all, there are not enough of them to go around. Instead I'd say that the ability to hire great developers is a key advantage to being a smaller company.

Also, I'd say that the notions of "10x" or "20x" greater productivity from the best developers are set on the wrong footing entirely. Such ideas presuppose that development is just production work, when in reality it is highly creative. The advantage of good developers isn't just that they do what others would do but more efficiently, the advantage is that they do much more. Often times they expand your business. Quite often the genesis of a multi-million dollar product or services offering doesn't come from the top-down, conceived in management and merely implemented by the rank and file, but instead comes from the bottom-up, from a wacky idea that a developer has and rolls into a tech demo. Without great developers that's the sort of thing you miss out on.

<comment><AUTHOR> The 10x/20x thing doesn't refer to productivity at all. It refers to ability. So I think we're in fact saying the same thing here.

<comment><USER14> Really? You're quantifying ability? What is a unit of programmer ability? You can track LOC or bugs or maybe even revenue generated, but none of those are exact measures of ability.

<comment><AUTHOR> I don't think it's quantifiable. The numbers are imprecise opinions.</comment></comment></comment></comment>


Show HN: PreAlpha – AI knowledge information framework - <AUTHOR> https://github.com/acutesoftware/AIKIF

<comment><AUTHOR> This is very Pre-alpha, and it has had a number of iterations so far.

The requirements [https://github.com/acutesoftware/AIKIF/blob/master/doc/AIKIF...](https://github.com/acutesoftware/AIKIF/blob/master/doc/AIKIF_requirements.rst) give an overview on what the goals and intentions are.

Comments / feedback / requests appreciated</comment>


Ask HN: What is your experience with using a cloud based personal computer? - <AUTHOR> I'm thinking about moving my personal computer to the cloud, something like Paperspace or Amazon WorkSpaces. I'd like to hear feedback from people already using such services. <comment><USER2> Disclaimer: I have zero knowledge about cloud based personal computers. I did search Paperspace and Amazon WorkSpaces and learned a little about them from their respective websites, but I am still left with questions.

Other than in my mind RDP'ing into a more powerful computer than what you currently use, what benefit would this actually provide?

Personally I like having physical control over my computer. I also like knowing what precisely is installed and running on my computer. Why would you trust your security to a secondary party by running your "operating system" in the cloud? Why would you want to be reliant on an always on internet connection?

Please don't think I am picking a fight, I am actually interested in this. My current computer is unable to play video games, if this was a viable solution to that I would gladly make use of it. [Edit] For everything else I do on a computer my current model does everything I need.</comment>


Euphrates: A Sega Game Console Emulator - <AUTHOR> https://github.com/mikebenfield/euphrates <comment><USER2> Can someone please post any good resource for beginners about writing emulators.

I've read a blog post the other day that was recommending to start with CHIP8 as a good exercise for people that want to get into emulating.

<comment><USER3> I got interested this summer and followed [http://emulator101.com/](http://emulator101.com/) to write a Intel 8080 emulator + hardware emulation for Space Invaders. It was a lot of fun.

I was then able to use the knowledge gained from that to start on a NES emulator, which I unfortunately haven't had time to continue on, but I'd definitely recommend that website for the 8080 and Space Invaders.

He does it in C, but I found it easy to follow in a different language. I made mine in Rust as an exercise to learn Rust as well.

</comment></comment><comment><USER4> > _euphrates_virtual_memory, a library implementing memory banking via native > virtual memory_

Is this.. practical? As I understand it, modern general-purpose computers tend to use 4KB pages (or larger!) for virtual memory, while game cartridges could and did use whatever crazy memory maps they could wire up... at least on the NES and SNES. Maybe Sega's 8-bit consoles were tamer?

<comment><USER5> Sega 8 bit "mappers" used 16KB slots, so you can use 4KB pages to emulate them. The mapper is solely to bank switch memory and doesn't do any of the support chip fun that more complex NES mappers do, so it's generally simpler. Only thing to note is the first 1KB (ie the interrupt vector table) is fixed on most mappers, which presumably would need a workaround.

Details: [http://www.smspower.org/Development/Mappers](http://www.smspower.org/Development/Mappers)

</comment></comment><comment><USER6> How does Euphrates compare to MEKA? As far as I know it's the state of the art of Sega 8 bit emulation. [http://www.smspower.org/meka/](http://www.smspower.org/meka/)

</comment><comment><USER7> What I really hope for is a backend for the Motorola 68000. That way we would be able to do homebrew in Rust for the megadrive/master system, various atari and apple computer in rust :) . I saw some work on a llvm-m68k backend but it was nowhere near ready.

<comment><USER8> The Sega Master System was purely Z80-based though. Anyway, a m68k backend is in development, there are fairly recent news about this. It's not clear if it will ever be included in the official LLVM release, though.

<comment><USER7> It use Z80 as a slave CPU but the main CPU is the m68k :) .

[https://en.wikipedia.org/wiki/Sega_Genesis#Technical_specifi...](https://en.wikipedia.org/wiki/Sega_Genesis#Technical_specifications)

<comment><USER7> I sorry, i see that I mistake the megadrive / genesis with the master system.

</comment></comment></comment></comment><comment><USER9> Mainly for AI? What?

<comment><USER10> ALE(The Arcade Learning Environment), an Atari emulator for AI, is a good example of this genre of softwares. [https://arxiv.org/abs/1207.4708](https://arxiv.org/abs/1207.4708)</comment></comment>


Ask HN: Is this a bad time to join Google? - <AUTHOR>

Seems like every week there's a new blog post about someone's reasons for leaving Google.  People say Google has gotten sluggish, political, bureaucratic, etc.  There's a potential availability bias here, because happy people staying where they are tend not to write blog posts about it.  Nevertheless, there's some kind of exodus from Google, and going in the opposite direction of all those smart, entrepreneurial folks feels a little weird.  In addition to the actual experience of working at Google, I'm also curious about people's future perceptions.  That is, will people who join Google in 2011 be seen as people who got in when the bar was lower?<p>I'd like to hear people's thoughts on whether this is a good time to join Google or not.  Not just Googlers and Xooglers; I'm interested in everyone's opinions.  Thanks! <comment><USER3> Of course, you'll work with incredibly smart engineers and hopefully have a great experience. Believe me when I say the grass is not always greener on the other side. On HN you'll hear about everyone saying you should work at a startup but believe me 9 out of 10 startups suck to work at. Low pay, working with less than good practices ( compared to google ) , over worked, more than likely the startup will fail, and you won't even have Google on your resume for the future. I would suggest taking the job, build some experience , learn as much as possible, and if you still have the startup itch after a few years go for it.

</comment><comment><USER4> It is always a good time to join Google, and even more now when Larry Page is in charge. He is in the same league as Steve Jobs wrt being forward-looking, but less known due to lower public profile.

All companies with more than 1 person have or get issues - also Google - <USER2> the willingness and ability to measure and fix issues is probably much higher within Google than most sizable companies.

note: I am a xoogler and worked there for 4 years.

<comment><AUTHOR> Thanks for your thoughts. How long ago did you leave? What did you leave to do? (Please be as vague as you feel you need to in order to preserve your anonymity.)

<comment><USER4> I worked there from September 2005-September 2009. I co-founded a startup.

</comment></comment></comment><comment><USER5> I've joined Google 4 months ago, and so far it is the most enjoyable job I've had, including grad school. I've worked at 3 start-ups before, and after working at Google, I think promise of future riches is the only reason to prefer a start-up. If you are proactive, you get full freedom to choose problems you work on, a ton of computational resources and many very smart and supportive people around you. I had an opportunity to join Google earlier as a "general pool" SWE, and I turned it down because I thought I might get stuck maintaining some boring piece of code. But if I knew what I know now, I would've taken it and would probably be in the same position as now -- SWE's have ability to reallocate themselves, and if you find a better team, your old manager isn't going to fight to keep you

<comment><USER6> So if not SWE, what did you become? SWT? Or did they snag you for SRE?

<comment><USER5> Also as SWE, but for a specific position, as opposed to general pool new hire that gets assigned after starting

</comment></comment></comment><comment><USER6> It's a big place. Not all of it will be good, and not all of it will be bad. I guess the question is: are you feeling lucky?

Sorry, sorry. But seriously, if entrepreneurial folks seem to be bailing (and that is my own observation), will that bother you? Maybe you just want to maintain a bunch of systems which were built by someone else. Some people clearly find that sort of thing fulfilling. There are buildings chock-full of them.

Have you ever worked in a big company before? You might want to go just to learn what it's like. You can learn a lot about what really makes people tick, including yourself.</comment>


Love Selenium? It may be cheating on you - <AUTHOR> https://hackernoon.com/youve-been-using-selenium-and-are-pretty-happy-with-it-right-8eeac1bc875c <comment><USER2> It's for a number of these reasons that our (internal) testing framework integrates a number of different technologies, including selenium for functional tests, but also different products for visual (and content) and accessibility testing. The results set describes the overall state of the application in a much more reliable fashion.</comment>


Why NonExperts are Better at Disruptive Innovation - <AUTHOR> http://singularityhub.com/2012/07/13/rethinking-the-concept-of-%e2%80%9coutliers%e2%80%9d-why-non-experts-are-better-at-disruptive-innovation/ <comment><USER2> The article's author failed to provide any evidence to support his key premise "Non-Experts are Better at Disruptive Innovation". It would be nice to have a _substantial_ discussion on this interesting topic.

<comment><USER3> Usually , a disruptive innovation is a combination of a new technology and a new business model. Being an expert in the old technology or business model becomes less helpful.

At the beginning you mostly don't compete on the same customers.With time, when you start competing on the same customers, you can hire experts.

<comment><USER2> Yes, it's a compelling narrative. Where's the evidence though?

The problem with the narrative is that I can come up with an opposite narrative: "fresh perspective is important to come up with a new direction, but only an insider has the skills/experience/connections/market knowledge/capital/etc to finish the new direction, therefore all innovation is done by insiders". Now we have two compelling narratives, both of which cannot be true at the same time. We're not advancing our understanding of the innovation process.

It's all empty rhetoric until the evidence is laid out.</comment></comment></comment>


[Lecture Videos] CMU 10-701 Introduction to Machine Learning - <AUTHOR> https://www.cs.cmu.edu/~mgormley/courses/10701-f16/schedule.html <comment><AUTHOR> ML Introduction Courses Comparison

10-715: this course is intended for PhD students in the Machine Learning Department.

10-701: this course is intended for PhD students with a strong mathematical and programming background.

10-601: students in this course have the most diverse collection of backgrounds.

10-401: this course is intended for undergraduates with a strong computer science and mathematical background.</comment>


An Open Letter to the Erlang Beginner (or Onlooker) - <AUTHOR> http://ferd.ca/an-open-letter-to-the-erlang-beginner-or-onlooker.html <comment><USER2> I think what most of the pro-erlang articles are actually extolling is the VM and not the language itself. The last 3 sections of the article are purely about VM features.

BEAM is an incredible piece of work, you can keep the syntax/string handling.

</comment><comment><USER3> Wow, this is an endless list of apologetic statements trying to paper over Erlang's many deficiencies.

"Your first contact will suck but it's not Erlang's fault, it's yours".

Way to motivate.

<comment><USER4> Bicycles have training wheels to get you going. Erlang doesn't. It might be hard and require effort.

I don't know how you learn new things, but it's generally taking me lots of effort: math, sports, music, etc. They're all hard when you first begin.

I remember I couldn't ever do anything good on a bass guitar (I started learning with a terrible sense of rhythm, not being able to clap on a 4/4 beat). I thought that music was just too hard, that the notation was too complex and obtuse for the sake of it, that improvising and jamming took some natural skill to get. It doesn't. All it takes is work, lots of it. It's hard because it's different and not something you pick up easily without prior experience. And even once I learned how to play bass (and have been for years now), I can't play drums for shit because it requires an entirely different way to think about music, notation and synchronism. You have to get in a different mindset when you switch instruments, or even just bands.

As for sports, mastery takes years. Of course someone in a good physical condition will pick up some of them with more ease than someone not used to many sports, but if you're a trained ice hockey player, the skillset you learn won't apply with the same ease for baseball or basketball when compared to roller hockey or field hockey. You have to go back to some basics. Re-learn how to position yourself, new strategies, discover muscles you hadn't trained before.

I see learning new programming languages as something somewhat related -- Languages can do their best to be friendly, but when the concepts behind them just vary wildly (see Prolog vs. C), you'll likely hit a wall. And it will not be the language's fault, but a question of you working hard enough to grasp it. Many languages have similar concepts and could be compared to switching from Bass Guitar to a cello, or from football to flag football. Python and Ruby have different syntaxes, but switching from one to the other is often a question of details. Even going back and forth with PHP is a similar thing. Going from Scheme to Common Lisp isn't as big of a leap as going from Prolog to C. I do believe Erlang (and many functional languages) fit this concept.

If you've never worked with them before, you'll be surprised by persistent data structures, the absence of O(1) arrays, message passing semantics, share- nothing ideas, lack of global data, an environment without main loops (or any kind of loops), different ways to handle exceptions, a specific way to package and write applications, lack of namespaces, new syntax, atoms, pattern matching, linked-lists as strings, bit syntax, etc. Of course the first contact will suck if many of these concepts are foreign -- you have to learn from scratch when you likely were very proficient in many other languages. You will be slow, your code might be slow, and everything will look unfriendly.

Obviously some languages are suffering from bad design, but knowing Erlang, I don't believe it's one of these. Hence my position on blaming lack of familiarity before syntax or any other reason. You have the right to disagree, but I would like to know your reasons for it if you do :)

<comment><USER3> Sure, here is one example: error messages. I guess even the author of the article (you?) couldn't come up with a good justification for them. They are truly horrendous, cryptic and maddening to figure out.

There is just no excuse for a language that's twenty years old to not have reasonable error messages.

Strings are a whole story of their own, but simply saying "they're not that important" is just ludicrous if you simply take a look at all the efforts that every single programming language in existence take to make string manipulation fast and extensive.

The way the supervisor model is touted as a major improvement is also very disingenuous: you still need to create and maintain the chain of supervisors yourself, and nothing stops you from doing that in other languages. Erlang really has no advantages there.

The syntax and multiple separators also makes it very hard just to move code around (think: refactoring).

You shrug and say that the beginner just needs to try harder, I'm saying "they won't, they didn't and probably never will".

Erlang is an interesting academic curiosity but it's too alien and its creators are too blinded by their own brilliance to even acknowledge these very simple mistakes, so the world just moved on.

<comment><USER5> > The way the supervisor model is touted as a major improvement is also very > disingenuous: you still need to create and maintain the chain of supervisors > yourself, and nothing stops you from doing that in other languages. Erlang > really has no advantages there.

This is total nonsense. You cannot write your own supervisors in other languages. The supervision tree works because Erlang processes can monitor each other. If you fail, I get sent a message. Error handling or orthogonal to the calling function stack. This is implemented underneath Erlang inside the VM and is baked into the entire run-time environment. The following languages to my professional knowledge do not support that construct: Fortran, Algol, Pascal, C, C++, VB, VBA, Java, Python, Perl, PHP, Ruby, Lisp and Haskell. All of these languages handles errors up the call stack.

If you want to write your own supervision trees then you need to implement your own run-time environment with your own custom language on top of it.

<comment><USER3> > This is total nonsense.

Yet, the author of the article himself agrees with me:

"Yes, you need to create and maintain the chain of supervisors yourself."

> You cannot write your own supervisors in other languages.

Now, _that_ is total nonsense. First of all, Turing complete is Turing complete, so your statement is wrong just on this basis.

Now if you want to argue that it's easier to maintain such a chain of supervisors in Erlang than, say, in Java, I'll just disagree. You spawn processes (lightweight processes) all the time in Java and monitoring their death is a few lines of code.

You just don't need the support of the JVM for that, and going further, I just don't see what JVM support adds for this particular functionality.

Hence my point that Erlang doesn't buy you much over traditional programming languages in that area.

<comment><USER5> Sorry - I call an Emacs skeleton function and use identical supervisors to every other supervisor. I have never written a line of supervisor code in 8 years of Erlang coding.

The Turing complete argument implies that representation is not important. Joe Armstrong has a great line for dealing with that red herring. He asks people to write an algorithm for doing long division with Roman Numerals. Guess what the representation of a number in Arabic numerals make alogorithms easy even though Roman Numerals are 'Turing complete'...

Having run an internet bank in J2EE with a budget of over $100m dollars and then built a clustered full stack in Erlang for under 1% of that I have the data to prove that your talking mince. Please bring your comparative costs to the table.</comment></comment></comment></comment></comment></comment>


Mimalloc – A compact general-purpose allocator - <AUTHOR> https://github.com/microsoft/mimalloc <comment><USER2> We tried mimalloc in ClickHouse and it is two times slower than jemalloc in our common use case [https://github.com/microsoft/mimalloc/issues/11](https://github.com/microsoft/mimalloc/issues/11)

<comment><USER3> To be clear, your program ran at half speed, right? That's far worse than doubling the time spent in memory-management functions.

<comment><USER2> Yes, our program ran at half speed.

</comment></comment></comment><comment><USER4> Are there functions available with which I can at run-time query how much OS memory is used, how much handed out in allocations, how many mmap()ed pools are used, and so on?

I find that one of the most important features of a malloc library to debug memory usage.

glibc has these functions (like malloc_info()) -- they are very bugged in that they return wrong results, but after patching them to be correct, they are super useful.

<comment><USER5> Any more info/link on how they are incorrect and the patches you need to fix them?

<comment><USER4> Sure, my patches are linked in the bugs I filed:

[https://sourceware.org/bugzilla/show_bug.cgi?id=24026](https://sourceware.org/bugzilla/show_bug.cgi?id=24026) \- "malloc_info() returns wrong numbers"

[https://sourceware.org/bugzilla/show_bug.cgi?id=21556](https://sourceware.org/bugzilla/show_bug.cgi?id=21556) \- "malloc_stats printing size_t fields as unsigned int"

If you're interested in this topic:

After finding one bug after the other due to 32-bit integer overflow in malloc.c, I just searched for "unsigned int" in that file for fun, and 30 seconds later found what I consider a security vulnerability in realloc():

[https://sourceware.org/bugzilla/show_bug.cgi?id=24027](https://sourceware.org/bugzilla/show_bug.cgi?id=24027)

In certain situations, if you realloc() e.g. 32G + 5 bytes (reallocs this large can happen in large programs e.g. for data analysis), it'll copy only 5 bytes, and leave the rest as memory garbage.

That experience taught me that open source code being old doesn't mean anybody ever read it.

<comment><USER6> pt2malloc is only maintained by glibc, but not really. Since they cannot maintain it, they want to get rid of it. The upstream maintainer released a better version pt3malloc, which glibc refused to adopt. It needs one more word per alloc.

</comment></comment></comment></comment><comment> c-smile Looks like the same idea as Konstantin Knizhnik's thread_alloc:

[http://www.garret.ru/threadalloc/readme.html](http://www.garret.ru/threadalloc/readme.html)

At least the same architecture of allocated chunks management.

</comment><comment><USER7> I always find comparisons with tcmalloc hard to parse, since it has a million knobs and the defaults are terrible. If they are running with 16 threads I would normally advise increasing the thread cache size far above the default 3MiB. also interesting would be jemalloc in per-CPU mode.

As always the thing to do is build and run your own workload and see the results.

</comment><comment><USER8> The tricky part with allocators is always the multi-threaded setups.

Even something as simple as a bunch of threads doing malloc-free in a loop will drop performance of a lot of allocators to the floor, due to some sort of central locking or excessive cache thrashing. This is typically solved by adding per-thread block pools, free lists or some such.

If you go further down the rabbit hole, there's a case when blocks are allocated in one thread and freed in another, your very typical producer- consumer setup. This too further complicates things with the pool/freelist setup and requires periodic rebalancing of freelists and pools.

So once all this is accommodated, a well-tuned allocator inevitably converges to a model with central slabs/pools/freelists and per-thread caches of the same, which are periodically flushed into the former. Then it all comes down to routine code optimization to make fastpaths fast, through lock-free data structures, some clever tricks and what not.

In other words, it's always nice to read through someone's allocator code, but in the end this is a very well-explored area and there's basically a single stable point once all common scenarios are considered.

<comment><USER9> What if I'm writing code that's strictly single-threaded? Presumably malloc could be simpler and/or faster in this special case?

Is there a production-ready allocator that's optimized for single-threaded use?

<comment><USER10> It's very hard to not accidentally pull in a dependency that makes your code multithreaded.

<comment><USER11> You guys could argue this all day and both be right. Depending on what type of system you're working on, you are either very likely to pull in a multithreaded dependency or you are not. Systems programming is different from game programming is different from web client programming is different from kernel development. In most of my career, I would have never accidentally pulled in a multithreaded dependency, but I could see how that could be easy to do in some cases.

</comment></comment></comment></comment><comment><USER12> The benchmarks are very impressive! I am excited to read through this code and think on it.

Edit: They do mention they're all from AMD's EPYC chip, which is a little idiosyncratic. Speculation: perhaps page locality is more important on this architecture.

<comment><USER13> The benchmark repo contains results with a Intel Xeon.

Looks roughly similar: [https://github.com/daanx/mimalloc- bench](https://github.com/daanx/mimalloc-bench)

</comment></comment><comment><USER14> Just a general question in regards to using memory allocators, in the consideration of a C only application.

The problems I encounter with allocator and heap manager are almost never solved by these types of frameworks. These problems include:

1\. Improper usage of the memory returned that contradict implementation. 2\. Pool allocators that don't have separation between individual blocks (performance reasons). 3\. Specifying the lifetime of the memory to a thread or until specific events happen. 4\. Difficult to diagnose corruption, with any tool available.

Here's a specific scenario I deal with very often: There are N persistent worker threads. These worker threads have their own pool of memory, and prior to getting work we know this pool is clean. After the work is finished and before more work is recieved the memory is cleaned. Any excess requested memory is returned to the global-pool, and any memory that is "unmanaged" is dealt with properly.

This means that people can do whatever heap management call you use (void * obtainMemory(size_t);) in the scope of business logic without having to worry about infrastructure concerns.

Having a faster malloc/calloc doesn't benefit me as much as making the usage of memory easier, and the understanding of what happens easier.

</comment><comment><USER15> Is anyone aware of a good/fast single threaded allocator for cases where you don't need/want to pay for thread safety?

<comment><USER16> If you're single threaded then you'll never have mutex contention so they'll always be fast-path. I'd suggest you actually prove that the memory barriers are actually a problem for you via profiling, since it's somewhat unlikely it is.

<comment><USER17> > _If you 're single threaded then you'll never have mutex contention so > they'll always be fast-path._

Concurrent algorithms (to which multi-thread capable allocators belong) typically necessitate design and performance compromises which aren't nullified by creating only a single thread.

> _I 'd suggest you actually prove that the memory barriers are actually a > problem for you via profiling, since it's somewhat unlikely it is._

civility's reply to your post is somewhat rude, but they're right. It's rather arrogant to assume that the poster doesn't know what they're doing, without knowing anything about their specific problem. Modern allocators are complex pieces of software, typically with a lot of knobs and dials, and it is entirely plausible that an allocator tuned for single-threaded programs is more performant for a specific use case than a generic multi-thread allocator.

<comment><USER16> You can get large gains tuning an allocator for a specific use case, yes, but that's very different from tuning it for thread safety. Particularly since most major allocators use a first-level allocator that's thread-local and is therefore not paying any thread-safety tax in the first place.

> It's rather arrogant to assume that the poster doesn't know what they're > doing

Given the question they asked I don't believe it was arrogant at all to assume they don't really know what they were doing. Their response seems to justify the push to start from the basics as well.

<comment><USER15> Nice job - you've succeeded in being just another condescending asshole.

<comment><USER18> It's true that shallow comments are frustrating, but aggressive ones are worse. If you keep breaking the site guidelines like you did repeatedly in this thread, we're going to have to ban you. Can I persuade you, instead, to review [https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html) and use HN as intended? It sounds like you know a lot, and we want knowledgeable users. It's just that we want not to have a tirefire wreck of a website more—so we have no choice but to put out flamewars.

<comment><USER15> Dan, go fuck yourself. By letting people get away with snarky condescending tones and banning people who call them out on it, you're encouraging shitty behavior. "Don't be snarky" is right up top in the comments section of the guidelines, but it's easier for you to chastise me because I called the snarky guy an asshole. That's just lazy on your part.

Aggressive comments aren't worse, they're just easier for you to recognize.

<comment><USER18> You're right that "Don't be snarky" is high up in the comment guidelines, but even before that comes "Be kind." Being unkind is worse than being snarky. I don't mean morally worse, but worse in the long-term effect it has on the forum. The guidelines aren't moral edicts, they're heuristics designed to prevent the system from burning out. Snark is bad, but aggression is worse: it leads to flamewar and eventually, as people keep upping the ante, to scorched earth. It's in that sense that what you did was worse than what you were reacting to. Snark is like vandalism—it eventually wrecks a neighborhood. But aggression is like arson, or gun battles in the streets.

We care as much as you do about snarky and condescending comments. I personally share your feeling of being even more averse to those than to the cruder abuses. But for a bunch of reasons, they're harder to moderate. Here's one: people's interpretations of what counts as snark or condescension vary widely. There is little community consensus around this, and moderation can never get too far ahead of the community view. We have to choose our battles wisely if we don't want to spark backlashes, protests, and off-topic distractions that render the cure worse than the disease.

I can't moderate based on my personal views. That's the reason why your advice wouldn't work. We couldn't moderate based on your personal views either. It isn't laziness—it's that you can't impose an individual interpretation set on the community as a whole. People assume we do, but that's only because they haven't learned about moderation the hard way. Moderation is extremely different from extrapolating one's likes and dislikes into site rules and then using power to enforce them.

Does that mean doing nothing about snarky and condescending comments? Hardly, and if you read my comment history (not that I recommend it), you'll find plenty of examples of asking people not to do that. But they're ad hoc and I try to be careful not to demand too big a leap from the reader.

The plan is, over time, to raise the bar for comments so that gradually the snark and shallow dismissals stand out more prominently as abusive, the way that "you're an asshole" comments do now. Then it will be possible for moderators to do more about them. But this needs to happen slowly— frog- boilingly slowly. If we push too hard, the community balks and moderation loses power. We can only do what the community will support. We can lead—but only a bit at a time. Even if [https://news.ycombinator.com/item?id=20252539](https://news.ycombinator.com/item?id=20252539) was trite and unhelpful, I guarantee you that the hivemind is not yet ready to support moderator intervention at that level. It needs to get more refined before that is possible. That's the long-term hope, but it will take years if not decades to get there.

<comment><USER15> I appreciate your reply, but I don't believe the vandalism and arson metaphor fits. There are just people you let get away with crap and ones you don't. His goal was to antagonize me while flying under the radar, and he succeeded. My goal was to antagonize him in retribution, and I failed.

So where are we now? I'll go back to reading the headlines instead of the comments because I'm not clever enough to keep people like that from getting under my skin, and he'll go on to piss off someone else the next chance that comes up.

Anyways, I regret snapping at you. Take care.

<comment><USER18> > There are just people you let get away with crap and ones you don't.

It's really a comment-by-comment thing rather than a people thing. If you're seeing cases where we're failing to moderate a post that cries out for it, the likeliest explanation is that we didn't see it. We'd appreciate links, because we can't come close to seeing everything here. Or of course you can flag the comment (described at [https://news.ycombinator.com/newsfaq.html](https://news.ycombinator.com/newsfaq.html)). In egregious cases, emailing email@example.com is best because then we're guaranteed to see it sooner.

> His goal was to antagonize me while flying under the radar

Really, are you sure? Can you point to the comment that demonstrates this? Because either I missed something obvious or you're reading perhaps a bit too much into what was posted. Intent is notoriously difficult to read accurately in these posts, as I'm sure you know.

<comment><USER15> > Really, are you sure?

Pretty sure, and user adwn commented on it too. It's a pretty common pattern to not answer the question and then indicate it was a dumb question in the first place. Then he doubled down on the acceptable insults in the follow-on response.

I'm sure I'm oversensitive to crap like this, but I don't think I'm wrong to notice it.

I wonder if HN would ever add a feature to block/hide users others don't want to see, something per reader. I don't see a browser addon for it, and while I'm sure it could be done purely client-side, you might find stats about who is being blocked and how often interesting if it was done on the server. Heh, I'm sure I would end up on a few people's list, but it doesn't seem likely that we're all just going to get along anytime soon.

Anyways, thank you again for the polite reply.

<comment><USER18> You're welcome! and likewise.

I feel like we probably shouldn't add a block/hide/killfile feature because it would be a step back into the siloed style of forum ([https://hn.algolia.com/?sort=byDate&dateRange=all&type=comme...](https://hn.algolia.com/?sort=byDate&dateRange=all&type=comment&storyText=false&prefix=false&page=0&query=by:dang%20siloed)). That would feel easier in the short term but would perhaps be a retreat from the hard problem of building a community site that actually works. The thing about that task is that it's always deeply unsatisfying and frustrating. One can only fall short. Yet it seems like the right task to be working on. Perhaps in the end, as Bob Dylan put it, we win the war after losing every battle. Or perhaps it just falls back into the swamp. The ambition of HN has always been to maybe stave off doom a while longer ([https://hn.algolia.com/?sort=byDate&dateRange=all&type=comme...](https://hn.algolia.com/?sort=byDate&dateRange=all&type=comment&storyText=false&prefix=false&page=0&query=by:dang%20stave)), or as pg put it years ago, "make a conscious effort to resist decline" ([https://news.ycombinator.com/newswelcome.html](https://news.ycombinator.com/newswelcome.html)).

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER19> The important thing about all this is to measure perf on realistic workloads before and after. I don't really believe in allocators that have "excellent performance" on everything.

</comment><comment><USER20> The Dev at Discourse also try it with Ruby, the result aren't as good as jemalloc. [1]

[1] [https://twitter.com/samsaffron/status/1143048590555697152](https://twitter.com/samsaffron/status/1143048590555697152)

</comment><comment><USER21> the redis benchmark is interesting! Maybe antirez can make sth out of it

</comment><comment> john-aj I never like names that require a "pronounced like" note, but cool project regardless.

<comment><USER22> Given the rather unpredictable nature of English pronunciation that's basically required for any made up word.

<comment><USER23> Particularly since it would not be unreasonable to assume that the "mi" in mimalloc is incorrectly pronounced like the "mi" in Microsoft.

</comment></comment></comment><comment><USER24> they should not have tested on AWS

</comment><comment><USER25> I should create memealloc which converts all memory allocations to base64 encoded gifs

<comment> Iwan-Zotow with cats and unicorns inside</comment></comment>


Ask HN: What to do when a website violates their own TOS and sells your data? - <AUTHOR> I gave a website my email in a specific way with the Google + trick. Their TOS clearly stated that they neither sell nor share the data.
Now I'm getting unrelated emails that are addressed to the Google + email address I used to sign up. Evidence that they clearly sold my data.
Can anything be done in this situation? Are TOS's legally enforceable? <comment><USER2> I suggest 1) publicly shaming them, and 2) creating a completely separate throwaway email account instead of using the "+" trick.

I'm not a lawyer, but I've heard you can sue over these things, but you generally have to prove damage. Getting an errant email is probably not damage. Your only recourse is to report them to some governmental authority and hope that action is taken (unlikely).

<comment><AUTHOR> So effectively a TOS has no force of law?

</comment></comment><comment><USER3> Privacy policies are often legally enforceable, and there may also be government agencies that will directly take and pursue complaints without you needing to bear the expense of legal action yourself.

OTOH, this all varies considerably by jurisdiction. (Both country and, within the US, state.)</comment>


Next Silicon Valley is emerging in India - <AUTHOR> http://specials.rediff.com/money/2009/mar/04slide1-next-silicon-valley-emerging-in-india.htm

<comment><USER2> There seems to be a difference of opinion about this: <http://www.google.com/search?q=%22next+silicon+valley%22>

</comment><comment><USER3> no way ..this can happen</comment>


A guide on how to impliment 2D sprites in a Java game. - <AUTHOR> http://www.blog.knolif.com/All-About-Sprites/

<comment><USER2> um... this kind of info can be found in the basic Java Tutorials.</comment>


Spock.com out of private beta - <AUTHOR> http://www.spock.com (disclaimer) I'm a webdev at Spock, but it's cool and we're open for business. <comment><USER2> Here's what I get when i click on anyone's profile ...

Status: 500 Internal Server Error

Not a good start I must say !!

<comment><USER3> I marked something as correct and got a 500 error in a modal dialog box that can't be closed, forcing me to close the whole tab. This is exactly why extended private betas are so damn useless. You can't do a perfect launch no matter how much you fret over trying.

<comment><USER4> Just because it's not perfect doesn't mean it couldn't be a lot worse. Their site appears to be having load related problems. Closed betas don't provide a lot of load testing.

<comment><USER3> I suppose it depends what the goal of your private beta is. If they were primarily testing their search results then maybe it was a success. If the goal was to launch and have a polished stable product I think they failed.</comment></comment></comment></comment>