Ask HN: Anyone looking for a hacker roommate in the Bay Area? - <AUTHOR> Hardware hacker looking for a bed/workshop in the Bay Area. Very interested in alternative spaces/repurposed spaces. Don't mind living minimally/don't care about creature comforts as long as there's plenty of room to work/build. I come equipped with a shop full of tools and a laser cutter. Also a small truck. I like to share.<p>About: I'm the founder of www.diybookscanner.org, a camera hacker and hardware nerd. I currently work in R&D for a large company doing all kinds of optical fabrication/building, but I am coming to the Bay Area next month to work on book scanning equipment as well as to work on computational photography (my hobby). I'd love to live with fellow hackers, but I'd be just as happy renting space in some old warehouse. Please let me know if you know of anything, or if you'd like a roommate like me. <comment><USER2> Checkout the hackerhouse (hackerhouse.bluwiki.org)

<comment><AUTHOR> I did see the <http://hackerhouse.bluwiki.com/> site from searching HN, but there's no info regarding vacancy. Any lesser-known places come to mind?</comment></comment>


Radio Shack's Original TRS-80 Family of Computers - <AUTHOR> http://lowendmac.com/2015/radio-shacks-original-trs-80-family-of-computers/ <comment><AUTHOR> They did miss the TRS-80 Model 200 which was an enhanced, clamshell version of the Model 100.</comment>


Dealing with releases of single page applications - <AUTHOR> http://www.beepsend.com/2016/03/10/dealing-releases-single-page-applications/ <comment><USER2> If this was a problem I was truly concerned about, i'd attack it with discipline and tinkle bit of versioning. If you're making a breaking change to the API perhaps you should increment the major version, and support both, and then sail away the old API when you feel comfortable doing so.

yoursite.com/api/v1/call

yoursite.com/api/v2/call

<comment><USER3> Yes, api versioning would be nice. However, with limited resources (as always) this takes you very far without it. Api versioning also only handles breaking api changes (which this doesn't really protect you from, depending on how the users act to the notification), this also notifies the users to refresh their browsers for hotpatches regarding the frontend, and also regular feature releases. So even if you have api versioning in place, I still see benefits from having this in place

<comment><USER4> Seems like graphql would solve the api versioning problem pretty well.

</comment></comment></comment><comment><USER4> Cool idea and article.

Hot reloading deployed production applications is a really intriguing feature of meteor.

I'll bet something similar could be built if someone was using react and redux. Sort of like the local development hot reloading with react-transform- hmr, but running in production. This would make it automatic instead of requiring a browser reload and erasing the users current ui state. The trick would be in optimizing the performance. Using a websocket instead of polling would be a bit more efficient too.

<comment><USER3> Agree on all points. We don't automatically reload the browser though, so it's up to the user to actually get the new version, otherwise people would be very angry with us..

The main reason we did it this way, is that it is really really simple and quick to implement.

Thanks for the input!

</comment></comment><comment><USER5> Does anybody have any good solution to this when caching offline services through a service worker? Obviously in this scenario even a page refresh doesn't help.

</comment><comment><USER6> Sounds like a workable solution.

That said, the way I would've architected this is I'd include a build version # into the distro and provided a checkVersion backend service that would return the current build version # for the client side logic to compare it's build # to.

And if you want to go an extra mile maybe a shouldRefresh service that would only return "true" if the changes that were made require a refresh on the client side.

<comment><USER3> That crossed my mind as well. Though, that would require both frontend and backend code. This takes around 20-40 lines of javascript and works exactly as intended, and doesn't require maintenance in two or more different places

</comment></comment><comment><USER7> Or you could use framework like for example ember.js and have it out of the box.

<comment><USER8> How does ember.js solve this problem?

</comment></comment><comment><USER9> Why not simply edit the HTML5 appcache manifest? (i.e. add a commented-out timestamp)

<comment><USER3> I'm not very familiar with appcache, but reading a bit about the specifics it looks like it would work fine as long as you don't need IE<=9 support. Thanks for the input!</comment></comment>


Error Handling in Node.js - <AUTHOR> http://illuminatedcomputing.com/talks/node-errors-talk/

<comment><AUTHOR> This is a talk I gave last week at NodePDX. My speaker notes and the source code for the various versions of the app are on Github:

        https://github.com/pjungwir/node-errors-talk</comment>


Is Three Founders One Too Many? - <AUTHOR> http://founderdating.com/is-three-founders-one-too-many/

<comment><USER2> Don't worry about team dynamics. Worry about founder quality.

In our experience, 3 is as good as 2 if the people are as good. It's harder to find 3 good people than 2 though.

<comment><USER3> Harder to find 3 good people, even harder to find 3 good people that work well together.

</comment></comment><comment><USER4> Corporate governance is kind of like, well, every other kind of government: it has serious flaws no matter how you set it up.

If you decide three is one too many, the new pitfall you have to watch out for is tiebreaking. Suppose there's a fundamental disagreement, like whether to sell out or whether to fire one of the two founders and find someone new. You think you'll always be able to talk things through and come to a consensus, but let's say you're wrong. A naive 2-person setup simply has no way to handle a situation like that -- it's paralyzing. So you need a way to break ties. And now instead of a fair three-way split, you have one founder with more power (and investment) than the other, or you have some outside party (played by Justin Timberlake, presumably) with control over your future if they like the other guy more than you.

So maybe two founders is one too many. Going with one founder shouldn't cause any problems ... right?

<comment><USER5> If a two people team cannot hash out their problems together, it is already a sign of trouble.

<comment><USER4> Conversely, if a two people team _can_ hash out their problems together, there is no sign of trouble _yet_. That's probably a good time for them to address the fundamental flaws/weaknesses/risks of a two people team, one of which I described above.

</comment></comment></comment><comment><USER6> I have seen a lot of 3-founder teams fail due to founder breakup. It was pointed out to me that 3-founder teams may be the most unstable because it only takes 2 founders to agree to make a decision. Often this pattern recurs until one person feels left out and leaves.

I think one of the biggest mistakes that startups make is not getting on the same page from day one, and letting small differences become large ones. This applies equally to any sized team, but may get exacerbated as your team increases in size, and there may be a huge jump in this problem as you get to size 3.

Then again, every team size comes with its own set of issues. I wouldn't say 1 is too few, 3 is too many, and 2 is just right. I'd take this article more as, 'the perils of a 3-person startup.'

</comment><comment><USER7> Obligatory reference to Betteridge's Law of Headlines[1]

        Any headline which ends in a question mark can be
        answered by the word 'no'

AirBnB & Twitter each had three founders. VMWare had _five_ founders[2], and they've done alright.

[1] <http://en.wikipedia.org/wiki/Betteridges_Law_of_Headlines>

[2] [http://www.quora.com/Startups/Can-a-startup-be-successful- wi...](http://www.quora.com/Startups/Can-a-startup-be-successful-with-three- equal-founders)

</comment><comment><USER8> I think it's pointless to make huge generalizations like this

Is two founders also one too many? Sometimes! At least with one founder you actually solve the problem of founders not agreeing on a course of action (which surely is a bigger probably two founders than an odd number like three).

I'll concede that I'm biased, but my startup has three founders and there is absolutely no doubt in my mind that we would be worse off with fewer people.

<comment><AUTHOR> Curious - are you following the Hacker, Hustler, Designer model?

<comment><USER9> Is this some kind of well known model? What are the others?

<comment><USER10> In the legal world, firms align around "Finders, Minders, and Grinders". Finders are the well-connected guys/gals who bring in business. Minders are the intelligent ones who hash out the hard problems. And grinders get all the routine work done at a fast pace. Maybe this applies to tech?

</comment></comment></comment></comment><comment><USER11> Generally agree with this unless your team is going through an incubator/accelerator. Those programs (and not just YC/500) are best taken advantage of by a 3-4 person team.

<comment><USER3> why do you think so? not sure you should optimize for a 3 month program.

<comment><USER11> Granted, I haven't been through an accelerator but I heard a great talk by Tim Falls of SendGrid who does have a lot of experience through TechStars and he covered this topic. To get full value out of an accelerator/incubator you need to be in a position to leverage the relationships you are making AND continue iterating and developing your product/business model. And two people isn't enough to do that. Love to hear your thoughts.

<comment><AUTHOR> I see what he's saying. In terms of long term consideration though, would that early burst of ability and speed be worth some of the issues that might crop up later?

<comment><USER3> Just don't think you should optimize your team for that 3 month process

</comment></comment></comment></comment></comment><comment><USER12> Quora Discussion:

[http://www.quora.com/Startups/What-would-the-ideal-web- techn...](http://www.quora.com/Startups/What-would-the-ideal-web-technology- start-up-team-be-composed-of)

The truth of the matter is there's no "one size fits all". Ask 100 founders and you'll get 100 different personal experiences and storied of how one structure worked for them, while other structures destroyed them.

The Hacker, Hustler, Designer model seems to hold strong with incubators, investors etc. as it seems, at the very least, to convey the atmosphere of being well rounded, fully capable and fast to deliver. Obviously this is not always the case.

The nature of past relationship between the founders, plays a large role in how well they can be expected to perform together and survive long term stress. There's no wonder YC dedicated a question to learning the nature of this relationship in their application form.

Some relationships make it, and others won't - the best you can do is try to truly and honestly asses how your relationships might hold up through hard times. Examine all aspects of it in as objective way as you can and make the decision on a case by case basis.

</comment><comment><USER13> I would have to say this all depends on the overall objectives of the company. If you've got a life style start up then one person is enough. If you've got lofty goals and you're looking to grow the company, and even raise money for that startup, then you will want more than one founder.

Finding one other person is hard enough -- trying to find three seems really challenging. There's ways to make decisions and break tie-breakers without having a third co-founder.

I believe that it comes down to expertise. Its very likely that you're not going to have domain expertise in everything, so you'll have to find some other co-founder that does. I'd think that you'd want to add more co-founders to ensure you have the domain expertise covered.

There's a blog post on our website that discusses "Why Three Founders in Better than Two". Might want to check that out for ideas on why it is better to have more than two.

<http://thinkspace.com/why-three-founders-is-better-than-two/>

</comment><comment><USER14> I wrote all the way back in November, 2009 that three co-founders was better than two. <http://spencerfry.com/threes-company> I've since changed my thinking that two co-founders is a lot better and that both of those two people should be technical or design.

</comment><comment><USER15> Noam Wasserman from HBR studies this extensively and has real data on Startup survival rates under various conditions (including founder size). This book <http://www.noamwasserman.com/book/> has his results -- I don't have it, and I don't know the results. I saw him give a talk at Business of Software 2-3 years ago -- where he presented a lot of his findings.

</comment><comment><USER16> Just to let the owner of the website know, there is a typo on your front page. Ironically, it is the word "Taltented" under "1.You Apply".

</comment><comment><USER17> As has been said, the quality of the relationship between the founders is just as important as their individual abilities. With two founders you have one relationship, and it's hard to find good lasting relationships between two quality people.

Increase the team size by one and you go from one relationship to three.

</comment><comment><USER18> Yes. First hand experience, around year nine our 3rd member was beyond contempt and we asked him to leave. Things run much smoother now.

<comment><USER19> "Year nine"?

</comment></comment><comment><USER20> If you have a hard time picking clear titles for founders because there is a lot of overlap there could be a problem.

</comment><comment><USER21> simple answer, it's two to many ;)

<comment><USER22> I am actualy a single founder and I dont regret my decision. Although I can see why it is not considered a good idea but I really like to keep the decision making to myself. It results in self fulfilment such that even if I fail, I would know I did it myself and wont have someone else to blame. I guess it's a personal preference thing. I simply can't see myself working with a cofounder.

</comment></comment><comment><USER23> Three founders is three too many. Businesses don't need founders. They need owners and they need managing directors. Too many people think that becoming the former magically makes them into the latter.

Here is a test for the next time you are founding something. If you weren't a founder, you were just hired labor, and someone tried to give you 93% of this company and total autonomy in exchange for running it full-time, but NO other support of any kind and you would be completely on your own in every aspect of running this company - would you accept this?

For most ideas, the answer is, "Hell no. I have a lot better things to be doing with your time than running your worthless company without any support from you, full time in exchange for 93% of it."

People somehow fail to apply the same standard to their own ideas. They accept this bad deal just because the person who "gives" them 93% (or 100%) of the company is one and the same person, themselves.

Let me illustrate with an example. Think of an idea for a web site that you have.

If someoe approached you with that idea and asked you to code it, but they would not help in any way, would you do so in exchange for nearly 100% of it? Probably not.

But when you make YOURSELF the same proposition, you often end up saying, "Yes. I will code this since the result is mine."

You forget that the result is not worth the work and you would not accept it under more neutral terms.

This is simply illogical. Stop thinking like a founder, and start thinking like a managing director.

<comment><USER24> This is so counter-intuitive that I'm having trouble understanding if this is a logical fallacy.</comment></comment>


The Ruby Web Benchmark Report - <AUTHOR> http://www.madebymarket.com/blog/dev/ruby-web-benchmark-report.html <comment><USER2> However, the combination of Standard Ruby + Thin/Unicorn + Rails is about the slowest possible combination. That on Ruby 2.1 gives you 1,455 req/sec. The fastest possible combination (JRuby + Torqbox + Rack) gets you 10,159 req/sec.

That is giving up 85.67% performance before you write a single useful line of code. That means at best possible performance, the standard rails app is 6.98 times slower than the fastest Ruby code could be. That also means your standard rails app is at least 7 times slower than the comparable Go or Scala app, simply because of your server, runtime, and framework.

Part 2 : measure development time without frameworks? ;)

awesome work! I enjoyed this as I was making comparisons between puma and unicorn.

A co-worker of mine has been battling a rails 3 -> 4 and ruby 1.9 -> 2.1 transition. I'm hoping this helps drive the needle in the right direction.

</comment><comment><USER3> As a satisfied JRuby user for over 3 years in production environments, I can say this has translated into real life for me, as far as the variants I've used (Ruby 2.1, JRuby / Torquebox, Torqbox, Puma, Trinidad / Rails, Sinatra, Cuba, Straight Rack)

<comment><AUTHOR> Well that's awesome to hear.

I am curious how much JRuby performance advantages impact the rest of the code beyond just routing. There will be more benchmarks.

</comment></comment><comment><USER4> Very thorough work and some interesting points along the way.

The title is a bit misleading though - This is not so much benchmarking Ruby as it is benchmarking the infrastructure around it. People may be switching to other languages because the actual application code is faster.

<comment><AUTHOR> Well that could be true. The intent was for it to be a web benchmark, so benchmarking all the basic ruby web variants.

It's certainly not a pure ruby hello world test, but I think there is a lot of value in testing the infrastructure around Ruby. That has a huge impact on performance.

I don't doubt that other languages have faster application code, but figuring out how much faster vs what the best possible option for the existing code is worth exploring I think.

</comment></comment><comment><USER2> Are there similarly up to date post for node, python, and php?

<comment><AUTHOR> I haven't seen anything out there that goes this deep on PHP or Python or Node, but there are also fewer runtime and server choices out there for those languages.

You can certainly test frameworks, but that's where a lot of the fun begins and ends. Also, Techempower benchmarks pretty much did this outstandingly well.

Probably down the line I might look at PHP, Python, Clojure, .NET, and Java....

It's funny how these things spiral out of control.

</comment></comment><comment><USER5> Jruby 9000 and Ruby 2.2 will be out soon.

<comment><AUTHOR> Sounds like another round of benchmarks to me!

</comment></comment><comment><USER6> Great write up!

<comment><AUTHOR> Thanks!

</comment></comment><comment><USER7> Epic.

<comment><AUTHOR> Thanks. I was trying to be as comprehensive as possible. Sadly, that makes these a couple months old, but there will be updates.

<comment><USER8> If you present lots of tables, some colour coding (green for high performing, red for slow, and some ranges in-between) might make it easier to parse visually.

<comment><AUTHOR> Great Idea! I'll work on adding coloring to the tables.

I was working on even more charts, but they took forever to get on each thing, so hopefully for a later version...</comment></comment></comment></comment>


Ask HN: How to find the right job as new graduate? - <AUTHOR>

Obviously, the best way to find the right job is through your network. But what about when you're first starting out and your network is small, largely still in college and mostly ineffective?
Among the classmates that I've talked to – at least among the ones who view it as more than "just a job" – it's a frustrating experience. If you look at job boards, most of them are either asking for an entry level .NET developer with 3 years of experience with UML modeling, which sounds like a terrible fit, or they want a senior engineer.
One friend got hired at a megacorp in Seattle and is trying to lure me in that direction, but as someone who doesn't live in Seattle, NY or the Bay Area and likes where he lives, that reduces the number of attractive megacorps that I know of to zero. Don't get me wrong, I live in one of the major tech centers of the U.S., just not one of those three.
When I was looking for internships, I had very occasional luck just sending out random emails to attractive companies, but the hard part is finding those attractive companies. In the end, I ended up taking something that wasn't right for me because I had to support myself through college. (It's also a big part of the reason I'm a month from graduating and don't have any significant side projects to show.)
What if I want to hack JS/Ruby/Python instead of translate UML to Java and .NET? Is it unrealistic to find something along those lines if the vast majority of my experience is Java and C? Is a recruiter the right answer, or should I just suck it up for 6 months or so while I get some personal projects under my belt in the technologies I want to use? Do I need to be more open to relocation? <comment><USER2> I would try to send out cold emails to startups/small companies that you would like to work for and tell them what you WANT to work on. You are much more likely to get their attention and open yourself up to opportunities to work remotely than just applying to job boards/etc.

</comment><comment><USER3> The best way to find job is to make your profile on online site which gathers information about job vacancies. You should apply to a job relevant to your qualification and skills. Employer also searches for hiring employees on these sites online so, may be, they will found you right and suitable person for hiring to any job or task.

</comment><comment><USER4> This is a problem I am actually trying to solve. I would love to help you find a job but if I were you I think the best thing is to 1) work on your own startup/side project or 2) join some startup. Where are you located?

<comment><AUTHOR> Starting a startup probably isn't financially feasible at this time, but I otherwise agree that joining a startup, or relatively small company would be best for me. There's probably a megacorp out there that would be good for me, but the ones that I'm willing to work at are the Googles of the world, and those aren't in Austin, which is where I live.

<comment><USER5> This thread is interesting because I was in a similar (or worse of) situation as you. I was sort of clueless about what sort of company I wanted to join, I loved living in Austin but Austin has a distinct lack of interesting (to me anyway) C.S. jobs. I finally bit the bullet and decided to move to the bay.

The truth of the matter is that there is no easy way of finding an ideal job: Although we are in Hacker News, I am not going to tell you to join a start up because I feel that the nature of the way start ups operate requires hands on personnel. On the other hand, you might get lucky and get into a start up which lets you do remote. There are some big companies (e.g Mozilla) that have a culture of being OK with remote folks but Mozilla is a big company. On the other hand, I have a sneaking sympathy for the idea that investing 2-3 years in a Megacorp learning best practices for large systems is a useful tool before one goes out and wreaks havoc for some startup (This is an idea which I personally haven't implemented yet).

However, part of finding an ideal job is making yourself an attractive candidate. In that regard, having a bunch of open source projects on github, a social media profile etc can help. I know there were a bunch of tech meet ups happening at UT, try to go to as many as possible and meet people whom you might potentially want to work for or might know interesting people. Free coffee/beer will help :)</comment></comment></comment>


Show HN: Dots and Boxes P2P Online Mutiplayer Game - <AUTHOR> https://vett.space/#/ <comment><USER2> webrtc?

<comment><AUTHOR> Yes, uses WebTorrent trackers for signalling</comment></comment>


What Chinese corner-cutting reveals about modernity - <AUTHOR> https://aeon.co/essays/what-chinese-corner-cutting-reveals-about-modernity <comment><USER2> Corner cutting as a behavior can only persist because of high competition and information asymmetry: if buyers can't tell quality from crap, then honest sellers get out-competed and driven out of the market.

China is a very, very competitive market with relatively low barriers to entry. Any successful product instantly attracts legions of competitors and copycats.

Technological changes can make the information asymmetry much worse. If buyers have had a long time to familiarize themselves with a product, they're more likely to tell good from bad, in the process weeding out bad producers. If it's a new product, they never got that chance. I'll bet a lot of these apartment buildings are sold to first-time owners.

Classic paper, in the context of used cars:

[https://www.iei.liu.se/nek/730g83/artiklar/1.328833/AkerlofM...](https://www.iei.liu.se/nek/730g83/artiklar/1.328833/AkerlofMarketforLemons.pdf)

</comment><comment><USER3> you can replace Chinese related names and places with Indian names and places and it would read just the same. I've seen it through out my life and now I can see it even more clearly after being exposed to living in the US.

"Chalta Hai" would be the Indian "Cha buduo". And it has caused as many, if not more, casualties in property & life.

<comment><USER4> It is all about rich or poor.

If the author do some research on the relative rich people in China, the result should be different.

<comment><USER5> I would disagree that it is about being rich or poor. If you take a look at the state of public infrastructure (roads, water, electricity, transport) in India, the amount of funds being spent do not match the quality. The only place where perhaps you can see the 'chalta hai' attitude not evident is where there are strong and enforced regulations. All of the rest is a little bit of shit all the time because of the chalta hai attitude and corruption.

<comment><USER4> check the home of rich people and poor.

<comment><USER5> Ok, I don't think you get the point. The home of rich people will have a backup electric supply, water tank and other such conveniences to offset what should have been a basic good infrastructure provided by the government to begin with. The attitude of acceptance of crappy infrastructure is the chalta hai attitude that the article speaks about.

It's the same acceptance of crappy roads, crappy Internet, crappy service, crappy foo... that is consumed without expecting better. The rich also just accept it because they can afford to spend on backup options like a different phone line, multiple service providers etc. However the acceptance of good enough is independent of wealth in India.

</comment></comment></comment></comment></comment><comment><USER6> That's going to get fixed.[1] Li Keqiang doesn't like China's quality problems.

Japan had that problem around 1970. It got fixed.

[1] [https://www.marketplace.org/2015/12/10/world/why-cant- china-...](https://www.marketplace.org/2015/12/10/world/why-cant-china-make- good-ballpoint-pen)

<comment><USER2> From the article:

'"We click the pens that'll be sold in China only once, because Chinese consumers are more price-conscious," explains Huang. "The pens that'll be exported to Japan? We click them twice. They'll pay twenty cents more for a better pen."'

As Chinese consumers get richer, their tastes will get more discriminating, and you should expect quality to improve.</comment></comment>


Ask HN: Learning what math for algorithms? - <AUTHOR>

I've recently come across an excellent book, introduction of algorithms. I implemented the first section of the book, insertion sort, in python and was very happy to do so. However, I am still confused as to how insertion sort's complexity is determined. I've never taken calculus before, but I have a feeling learning algorithms may take more math than that. If I were to read books such as introduction to algorithms and Donald Knuth's books, what math should I study on? And are these available online somewhere (maybe khan academy, or perhaps some college with free courses)? <comment><USER2> Learning some basic calculus is quite handy, but everything usually just boils down to algebra and mathematical induction.

</comment><comment><USER3> Discrete math.

From calculus, you will want to learn summations (the big sigma; it's basically a for loop).</comment>


Is there a market for contract interviewers? - <AUTHOR>

This is from a friend.  He's very interested in disrupting the interviewing process --
I believe there are fundamentally 2 big things to solve when it comes to companies hiring staff:
1) Finding the right people. This is a problem often at the "top of the funnel" where finding enough of good talent is hard.
2) Selecting the right people. This is a problem in the middle of the funnel where it can be really tough to determine whether or not someone can do everything they say they can, can learn quickly and strongly enough on the job to effective, and fit with the culture of the organization they're entering into.
I have heard of companies like InterviewStreet/HackerRank, Hire Vue, HireArt, and Talentex. I also know that a lot of companies do written tests (e.g. McKinsey), writing/portfolio samples, or recorded video interviews to filter people out without having to be in a room with a candidate or his/her teleconned presence. Nonetheless, I see most of these companies attempting to save more time on problem 1 rather than problem 2. I see problem 2 being especially difficult outside of engineering where assessing intangibles is often so difficult, and it can take 10+ hours of time per candidate.
To save companies time and effort, would there be a market for professional, contracted interviewers at least for first or second rounds? <comment><USER2> I've worked in law enforcement for 8 years and the hiring/promotion process is kind of interesting. In a way my agency used "contract interviewers."

The normal process includes some sort of written test to make sure the candidate meets some general baseline of intelligence. After that there is an oral board interview. It is usually a set list of questions on which the candidate's score is graded by 3 - 5 interviewers. For my agency the board usually consisted of the supervisor over the position applied for, someone doing the position applied for, a command staff member and 1 - 3 of the board were from a different agency.

I always thought it was odd that we used outside interviewers during our process. I believe the goal was to get an unbiased view of the candidates.

So, I could see a contract interviewer as a useful tool. Especially if the goal was to bring in someone who was unbiased. The obvious difficulty you would have to overcome would be the lack of knowledge concerning the specific business - what is their culture? How well would a candidate fit in?

</comment><comment><USER3> I've specialised in this field (sourcing & hiring) for years and issue #1 above is categorically the hardest part of the whole problem. Finding good talent is incredibly difficult, everything that follows is very straightforward. This is why the billion dollar industry of third-party recruitment exists, purely to solve problem #1 (even a terrible solution can make billions). If problem #2 was even marginally as difficult to solve as problem #1 then I'd say go for it but it's not.

</comment><comment><USER4> You are asking the wrong people. He should be asking his potential customers. He should have a landing page on which to offer the upcoming service. An email sign-up form for people to get notified when it launches. People tell you through their actions.

</comment><comment><USER5> no. in this tight job market most of the resumes are crap anyway -- even bozos can detect this.

</comment><comment><USER6> maybe something like that would be big in asia but big companies could use it too...</comment>


Implementing Malloc: Students and Systems Programming [pdf] - <AUTHOR> https://www.cs.cmu.edu/~bryant/pubdir/sigcse18.pdf <comment><USER2> Doing this lab was one of my more memorable experiences at CMU. It was tons of fun, but barely getting any sleep for 3 days because I put the assignment off was less fun.

I put in some horrible last minute hacks to optimize for the autograder and raise my grade, like doing a pseudo-bubble sort. Every time I coalesced two adjacent free blocks, I would compare the adjacent nodes in the linked list and swap them if they weren't sorted. That raised my allocation efficiency a tiny bit for certain test vectors- just high enough to bump my grade up a couple points. :)

<comment><USER3> I also put it off to the last minute. I had a pernicious bug in my coalescing code that was hard to debug. After one failed rewrite and only a few hours left, I resorted to taking the book's array version and optimizing it for utilization. My throughput was shit but I was able squeeze past their minimum score and squeak a C. My semester, the grading was pretty tough, only 6 or so people over 90. In other semesters, I know at least that many get 100.

</comment></comment><comment><USER4> Can someone post a PDF (or something similar) of CMU's redesigned malloc lab?

Purdue's malloc lab [0] was much simpler: you get the algorithm, the data structures you're supposed to use, and the method signatures. It has to be thread safe. But there were no performance requirements. Consequently, it's something like a 10-20 hour lab.

[0]: [https://www.cs.purdue.edu/homes/grr/cs252/lab1-malloc-new- he...](https://www.cs.purdue.edu/homes/grr/cs252/lab1-malloc-new- header/index.html)

<comment><USER5> Here's an old link: [https://www.cs.cmu.edu/afs/cs/academic/class/15213-f10/www/l...](https://www.cs.cmu.edu/afs/cs/academic/class/15213-f10/www/labs/malloclab- writeup.pdf)

In 2000 at least (when I took it) you could see a real-time leaderboard with the performance scores of classmates, so even after you earned an A, you could compete for the fastest implementation.

<comment><USER6> >Because we are running on 64-bit machines, your allocator must be coded accordingly, with one exception: the size of the heap will never be greater than or equal to 232 bytes. This does not imply anything about the location of the heap, but there is a neat optimization that can be done using this information. However, be very, very careful if you decide to take advantage of this fact. There are certain invalid optimizations that will pass all the driver checks because of the limited range of functionality we can check in a reasonable amount of time, so we will be manually looking over your code for these violations.

I'm curious about these optimizations and the issues that arise, any pointers on more reading?

<comment><USER7> I might be wrong but the heap size being at most 232 bytes means that heap blocks can be represented by two bytes: one byte for the start offset, and one byte for its length.

<comment><USER8> It's 2 to the 32nd power, not 232 :-)

<comment><USER7> Oh well, that makes more sense than 232.

But then again, it lets you fit the bookkeping data into a single 64bit word (32bit pointer + 32bit size).

</comment></comment></comment></comment></comment></comment><comment><USER9> Every CS student at Georgia Tech does this as their final Computer Organization assignment. One of the most memorable and instructive experiences of my undergrad, thus far.

<comment><USER10> 2110 is such a good course. I've mentioned it in this sub before, since people always bring up gba programming.

And pfft, "upper level my ass", some people take 2110 their second semester.

<comment><USER11> Sounds fun, are course materials available anywhere?

<comment><USER10> Unfortunately, beyond the syllabus, I don't think so, no.

</comment></comment></comment></comment><comment><USER12> This is one of the best assignments I worked on at CMU. Putting in 20 hours of coding to actually get the passing malloc was not the most fun part. It was spending additional 40 hours to beat others at the leaderboard :) Gamification at it's best.

Bomb lab was my other favourite, where else do you get to read and make sense of assembly language programming.

</comment><comment><USER13> The textbook for that course is excellent:

Computer Systems: A Programmer's Perspective

<comment><USER14> The course itself is great too - CMU actually posts the video lectures on their website, and the labs are available as well:

[http://www.cs.cmu.edu/afs/cs/academic/class/15213-s16/www/sc...](http://www.cs.cmu.edu/afs/cs/academic/class/15213-s16/www/schedule.html)

[http://csapp.cs.cmu.edu/3e/labs.html](http://csapp.cs.cmu.edu/3e/labs.html)

</comment></comment><comment><USER15> Cool! On a related note, having recently cracked open my old k&r c programming language book, I was reminded they cover a fairly complete implementation of malloc as a case study.

</comment><comment><USER16> Well, as a CS student in a not so highly ranked university, it's not surprising that grads from top CS schools end up in Google, Microsoft Research, etc. They know how stuff work much deeper than others. Of course this is not a generalization. There are some crazy dudes in other universities or even not in university at all.

<comment><USER17> I don't doubt that this is true at times, but what do you think they teach in mid-tier schools? They use the same textbooks and curricula that other schools do. For example, most of the schools within driving distance of Austin use UT's courses at least as a guide for course design. They're not just handing CS students a box of crayons and hoping for the best.

<comment><USER18> I have a cs degree from a good private university but with a not so great cs program. I didn't learn anything more than the basics of c++ programming, as I felt that it would be best to do the bare minimum. Looking back, I truly wish I had taken courses that really challenged me, as I'm finding that I use my background more and more these days.

</comment></comment></comment><comment><USER19> Fun Fact: Writing a custom memory allocator is a somewhat common code exercise when applying for games jobs.

<comment><USER20> How many game studios roll out their own allocator?

<comment><USER21> I would be surprised if it isn't a number approaching 100%, at least from my experience in the industry.

Even in managed languages you see extensive use of pooling to achieve the same effect.

<comment> yjftsjthsd-h Is it just for fine-tuning to the exact usecase? Otherwise I'd expect to at least see common libraries pop up.

<comment><USER21> Yeah, they generally tend to be gameplay/engine specific. Much in the same way that you wouldn't want to use an open world(heavy emphasis on streaming, instancing) for a fighting game(no frame drops _ever_ , 60 fps) and vice- versa.

Usually they get broken down into a couple discreet subsystem:

1\. Particle systems - Pooled, fixed size.

2\. Per-level/region entity pooling - Tuned based on encounter.

3\. Strings, etc - Usually preallocated to avoid fragmentation.

4\. Ring/command buffers - Again, fixed size and mostly preallocated. Generally used for rendering and job systems.

There's a couple other case I'm missing and as always a lot of this is also biased not only towards avoiding allocation but also arranging data in memory in such a way that it's friendly to your L1/L2 cache(things accessed sequentially laid out in memory sequentially, SoA/AoS and all that good stuff).

There's a lot of really impressive engineering that goes into things like allocation, in-place loading, seek-free loading(less so now with caching to HDD) and the like.

</comment></comment></comment></comment></comment><comment><USER21> This also makes a fantastic interview question. I would never expect someone to finish but can lead to a great discussion on the types of problems they've seen in the wild with respect to allocation and how to they approach an ambiguous problem(purpose build allocators will always be better).

</comment><comment><USER22> Ah, the legendary and beloved malloc lab. I am really glad they are working to keep this one visible and modernized.

I know a lot of schools do this, but if you've never had to write your own allocator, I cannot recommend it enough as an exercise!

Implementing a general-purpose malloc from scratch and attempting to beat cstdlib's malloc goes down as one of the top 3 most invaluable programming projects in the CS curriculum at my school. (The others being an OS kernel and a register allocator.) I do not do low-level programming in real life--at all --but I think every computer scientist and software engineer should have an understanding of all that has to go on to support shinier layers.

</comment><comment><USER23> Former 213 TA here. This was by far the most enjoyable lab in the course - Bomb lab is a close second but this provides a more significant 'levelling up' experience.

The actual lab is currently offered split into 2 checkpoints with the 1st checkpoint having somewhat lower perf/efficiency thresholds. While dealing with non-small C code is one of the good parts of the lab, I felt the major takeaway for me was the improvement in my pointer bug fixing skills.

<comment><USER24> Hi there, I'm assuming TA means Teaching Assistant. I'm a CS teacher on a small polytechnic university and I'm looking for ways to transition some of my current courses from lecture-based with labs to project-based like this one seems to be.

Could you expand a little bit on your experience? Like, was all the course divided in 3-4 week-long projects, was there theoretical classes, how were the students graded (i.e., did they have exams as well, homework, etc.)? What were the other projects?

<comment><USER25> I TAed at Virginia Tech for a computer systems course (in 2010) that was based on the CMU course. It used the book, and the projects were also based off of the CMU projects. You can look at the past seven years of what they did here: [http://courses.cs.vt.edu/~cs3214/](http://courses.cs.vt.edu/~cs3214/)

</comment></comment></comment><comment><USER26> > (the heap never shrinks)

Given the rigour in the remainder of the exercise, this surprises me. Figuring out when to call munmap can be a significant part of what makes a heap implementation 'high performance'

Also, I wonder how common allocators like dl as well as hoard and its other concurrency aware counterparts would perform on this assignment.

</comment><comment><USER27> I wish I went to a real school that had interesting labs and projects like this and actually taught their students.

</comment><comment><USER28> Im a third year at a mid UK Uni and reading this I'm just baffled... I wouldn't have a chance...

<comment><USER29> The textbook is excellent and the course staff is almost always great at providing reasonable guidance. The earlier labs also do an excellent job of ramping up so that the increase in difficulty doesn't seem extreme. And being around dozens of other students in the same boat helps a lot, as well.

Several of the labs have a somewhat incremental process where you start out with an acceptable implementation and optimize in steps.

<comment><USER30> ^ can second this. I TA'd the version of this at my uni (exact copy of the cmu course). Before this, we had students implement linked-list hashmaps which exposed students to working with void __' s.

not quite as intimidating, but the tests on this assignment are pretty harsh compared to previous assignments.

</comment></comment></comment><comment><USER31> Can anyone who has tried doing this outside of university recommend some good benchmarks, or resources for setting up a personal lab testing environment for this? I want to give this a shot and didn't get to do it in university.

</comment><comment><USER32> Neat, I am an IT major, but I am a sucker for CS, programming and security. Been looking for a projects to help my understanding of how things work. (maybe improve marketability also)

Thank you for giving me a new project, -A random university student.

<comment><USER33> Project you can follow that link Unix comprehension, security and programming:

-implementing malloc (C)

-implementing nm and otools (C) (basics options only)

-implementing a ftp server (a fork for each new connection) or a basic IRC-like server (maybe using ring buffers, and only non-blocking I/O if you want to write in C)

-implementing ping then traceroute (in C obviously) (and nmap if you really want to push it).

In security, do small and easy challenges, like nebula (less than a day if you already know your stuff, i'd think maybe ~3 if you don't) and protonstar (i already knew some of the exploits and it still took me 4 days). Don't do those challenges alone, find a friend to help you: a second brain can think of new solutions and allow you to explain what you want to do (and just by explaining you'll get closer to find why it doesn't work, or why it does). The other challenges are not worth it if you just want to get how basic security work imo. At my school we then had to program some stuff like ptrace or strace (i don't remember which), it's pretty helpfull too, and it help a lot understanding gdb. Ah, and prior to the challenges, we rewrote a small part of the libc (strlen, strlcat and stuff like this) in assembly, and it was pretty helpfull (decompilers are fine, but its easier if you know a bit about assembly, at least with protonstar). If you want to do it, chose like 5 easy functions then 5 function which might use rep string operations, and implement them, it'll take you ~2 days (most of those will be research and reflexion, and you can do that during classes, like most of the security stuff actually).

I'll repeat myself, but if you're not crazy about security, i really advice you to work on this with a friend, security is boring when you're stuck (and really interesting when you're not)

<comment><USER32> Challenge accepted! Thank you for the ideas. :)

</comment></comment></comment><comment><USER34> We used this same project when I was GMU. I definitely enjoyed this project and some of the other projects we had in the same class such as implementing a TLB and page table and the "binary bomb" project.

</comment><comment><USER35> For assignments such as this which primitives are the student expected to use? mmap & munmap? Or are they given a flat chunk of memory? Or a chunk of memory that can grow on one end?

<comment><USER36> Generally sbrk [1] is used to extend heap memory. The heap is then modified directly using clever pointer arithmetic.

Source: I did this lab a month ago at CMU :)

[1] [https://linux.die.net/man/2/sbrk](https://linux.die.net/man/2/sbrk)

</comment></comment><comment><USER37> This class was half the reason why I had to withdraw from CMU :(

</comment><comment><USER38> Does anyone have the grading script? I'd be interested in giving it a shot and seeing how well I do.

</comment><comment><USER39> Which one's the more comprehensive ? CS50 from Harvard or this ?

<comment><USER40> CS50 is an intro level course that has a lot of people who've never programmed before in it. It seems like this course is for CS majors. But probably neither is that comprehensive. It's good to know this low-level stuff, but you need to know much more to be a productive programmer nowadays since there are few jobs where you're just going to be writing systems code.

</comment></comment><comment><USER41> It was because of this assignment that I witnessed a grown man cry.

</comment><comment><USER42> The server is down, could somebody reupload the pdf?</comment>


How Eye Tracking Will Change Gaming - <AUTHOR> https://medium.com/@TobiiEyeX/how-eye-tracking-will-totally-change-the-way-you-game-193126bbbba4 <comment><USER2> I have worked and work for competitors of Tobii. The article is kind of biased. The cheapest eyetracker in the world is The Eye Tribe tracker ( I have worked there). They've not been able to solve the battery drain problem yet (running IR LEDs costs you) and therefore mobile gaming is out. I would assume Tobii has had similar issues. Tobii's EyeX is the only Tobii device cheap enough to go into the consumer market but it cannot do a high resolution head pose estimation at a high frame rate. The other awesome company for eyetracking in Sweden is Smart Eye which is targeting a different industry still has issues with high precision at low frame rates. In short, eye tracking is important and progressing fast but we aren't where we want to be in terms of using less power and also kind of supplanting the hand controlled devices for typical use cases like aiming in FPS games or changing POV based on head pose. We've used Tobii as part of competition research and the EyeX API is a bit limited also. I would give this article a 7/10.

Edited for clarity.

<comment><USER3> Is the precision in the current techno good enough to replace the mouse for non-gaming activities, like web browsing or using a classical GUI with buttons and text fields and stuff ? I'd love being able to never ever get my hands off my keyboard.

<comment><USER4> A more important question is this actually what you want. I've done a bit of research on this myself.

First you need to find a way to tap/click things, and not do so with anything accidentally. Not easy. Blink will have many false positives, as will time- based solutions. Having things pop up new buttons (my original approach) becomes distracting as you gaze over many items that you don't intend to click, only to have new things happening that move so you look at them, but shouldn't.

Also eye fatigue comes in pretty quickly. There's something physiologically interesting when things that normally are automatic becomes purposeful, stress is induced. For example, dictation with speech recognition will quickly strain your voice and you can actually get RSI in your vocal chords! Eyes are similar when you use them as a primary interaction driver versus a support.

</comment></comment></comment><comment><USER5> So they talk about 4 ways to use eye tracking, 1) Use gaze to control the camera pivot -- That sounds incredibly annoying. Like I wouldn't be able to just look around a screen without it constantly moving. Though if a system is built with this use case in mind it could be cool. Imagine having a whole 360* view on screen but with it kind of squished around the edges, when you look out to an area on the edge it could immediately foveate the display to that area.

2) Eye contact - Could be really cool. Monsters that can only move when you look away (or blink). Or they disappear if you look directly at them. The NPC's stop talking or get upset if they think that you're not paying attention.

3) natural targeting - I'd like to try this but I'm skeptical. What If I want to look where I'm running for a moment? Then my gun careens across the screen.

4) Immersive Graphics and Sound - This is the most interesting one and it has the worst name. This application dynamically focuses and blurs the depth of field of an image as you look around. One of the big problems with 3D immersive tech right now (Real3D, oculus) is that you can't capture this element of natural vision. They usually default to rendering everything as extremely sharp.

I'm surprised they didn't take about typing with your eyes since it's something that eye-tracking is currently used for.

<comment><USER6> > Monsters that can only move when you look away (or blink)

This could be so cool, reminds me (probably you might have been inspired by it!) to this enemies from Dr. Who, the weeping angels. I'd recommend anyone curious to look at the episode "Blink" (it seems that it is on youtube: [https://www.youtube.com/watch?v=7vahAzc2l9w](https://www.youtube.com/watch?v=7vahAzc2l9w))

<comment><USER7> It also reminds me of the Boos from the Super Mario Bros series. Either way, such monsters would certainly be interesting in a game with this sort of eye tracking stuff included.

</comment></comment></comment><comment><USER8> I'm really looking forward to eye tracking in VR, because it will make for the scariest games ever. Games could notice that you're looking in one direction, then cause a creature to skitter by in your peripheral vision. By the time your eyes or head have moved, it's gone. Peripheral visual acuity is terrible, so you'd never get a good look at the thing until the game wanted you to.

</comment><comment><USER9> Wasn't there a Microsoft demo using eye tracking, where only the focused area of the screen was rendered at full resolution, and the rest at lower blurred resolution? It saved a lot of GPU power by just needing to draw a tiny fraction of the game, and it looked indistinguishable to the player. What happened to that?

<comment><USER8> You're thinking of _Foveated 3D Graphics_ [1]. Despite being a research project, they still got a 5-6x performance improvement.

VR will get foveated rendering eventually. The performance improvements are too good to ignore.

1\. [http://research.microsoft.com/pubs/176610/foveated_final15.p...](http://research.microsoft.com/pubs/176610/foveated_final15.pdf)

</comment></comment><comment><USER10> The top post in /r/programming this year is about a guy writing his own eye tracking software:

[https://www.reddit.com/r/programming/comments/3ke7ug/eye_tra...](https://www.reddit.com/r/programming/comments/3ke7ug/eye_tracking_software_for_sufferers_of_alsmnd_can/)

[https://www.reddit.com/r/software/comments/3kdghp/eye_tracki...](https://www.reddit.com/r/software/comments/3kdghp/eye_tracking_software_for_sufferers_of_alsmnd_can/?ref=share&ref_source=link)

</comment><comment><USER7> So, this article. Read it a few days ago, and while I do like some concepts (like the below mentioned monsters that move when you're looking away thing), a lot just seems like it'd be more annoying than anything else.

Camera controlled by where you look? Oh, that's good, except quite a lot of the time in games you don't want to have the camera follow your gaze your screen. For example, in a lot of platformers, you want to be able to see as much of the area as possible in order to judge where you're jumping too. If the camera tracks your eye movements... well, someone's probably falling into the abyss pretty soon.

I don't think anyone would want to be trying Grandmaster Galaxy or Champion Road with this sort of tech any time soon.

There's also the way a lot of games have 'lock on' mechanics for targeting enemies. Your attacks go one way (towards the enemy), but the camera focuses somewhere else to give you a better view of your surroundings. I can see that falling apart pretty quickly if eye tracking got brought into it.

But even assuming it'll mostly be used for games with a first person viewpoint (which in itself might be a limiting factor for things like virtual reality, since it's a smaller percentage of games than people like to think), it just seems like it'd be a bit too... precise for a lot of titles. People playing games look all over the screen for things that might be important in the future, and they probably don't want the camera bouncing around like a pinball as a result.

The focus and depth of field aspects seem the only plausible ones for most games.

</comment><comment><USER11> IMO the bigger change in the short term would be that Depth of Field and "HDR" effects in games could actually work correctly, rather than being unrealistic imitations of videocamera limitations.

Currently, the computer has to guess where you're attention is (e.g always on the crosshair for you weapon/hands) and any attempt to peer elsewhere is punished by unyielding blur and darkness/bloom.

</comment><comment><USER12> Hey, I am working with Tobii and I saw this thread so let me try to give some background info about the Tobii EyeX to answer some of the questions in this thread.

We really value the community and comments at Hacker News and we know there are equal amounts of excitement and doubts about eye tracking and I am gonna have a quick giveaway of 10 EyeX sets here in the next 48 hours as well so that some of you can experience it first hand! More on that below but here is some information:

First off, we are not in a position to comment on products from other eye tracking companies globally, nor would we want to speak for them. So I am picking a few key issues here to discuss.

1) _" Battery Drain issue"_ – The battery drain issue is probably more skewed towards mobile gaming and not for desktop/laptops and we are seeing little to no difference in battery drain when playing games with/without our eye tracker.

2) _" Supplanting the hand controlled devices for aiming or changing POV"_ \- We don't intend to replace mice, keyboards or even to compete with them, but enhance the gaming experience with as natural interactions as possible. We already play games looking at the screen, and we can make your eyes a useful component of gameplay.

3) _"Cannot do a high-res head pose estimation at high frame rate_ " - We are focused on eye tracking and have elements of head tracking but it is mainly on the point of gaze instead.

4) _"Is the precision in the current tech good enough to replace the mouse for non-gaming activities?, web browsing or using a classical GUI with buttons and text fields and stuff"_ \- Technically it is possible for similar levels of accuracy, but our intention was always to use it in combination with other modalities. We have plenty of people in the office who have become much less reliant on a mouse with the eye tracker but natural, learned interaction is not at a hands-free stage at the moment.

<comment><USER12> 5) _"Eye fatigue comes in pretty quickly"_ \- we don't want you to do anything differently, but play as naturally as possible since the eye tracker is monitoring your eye movements. So there is really NO NEED to stay perfectly still, blink or be unnaturally close to the screen.

6) _" Use gaze to control the camera pivot -- That sounds incredibly annoying."_ \- We understand the doubts but we are pretty confident that you might have a different opinion after trying it out! A gamespot reporter did the same:[http://l.gamespot.com/1Mm7rar](http://l.gamespot.com/1Mm7rar)

7) _"Making the foreground in sharper focus than background and peripheral objects. Why is this necessary?"_ \- We want allow your normal human vision to exist within the game based on your natural focus to allow for real depth instead of a flat screen. @teckromancr @blakecaldwell and @tdaltonc got it right!

8) _" Is it sad that all I see this turning into is REALLY annoying ads in streaming apps?"/"I do not look forward to advertisements using this technology."_ \- We have no intentions of making ads from eye tracking! We also have SDK agreements based on not allowing infringement of privacy. Its been 15 years in eye tracking for Tobii so personal integrity is something we take extremely seriously.

So if any of you want to try out the tracker, all you have to do is tweet "let me try @tobiieyex via #hackernews!" and we will DM you for your details. The first 10 individuals to tweet it within 48 hours will get our latest Tobii EyeX shipped right to you, free of charge. All we want is for you to really play/test it out for yourself. We have not done this with any other community before but hacker news is pretty special to us!

</comment></comment><comment><USER13> They discuss trying to mimic the focus of real human vision, making the foreground in sharper focus than background and peripheral objects. Why is this necessary? My human vision will do that itself.

For example, if I look at the room I'm in, foreground objects are in sharper focus. If I look at the screen of the computer I'm typing on, if I stare at this letter _X_ , maybe 1-4 letters to each side are in sharp enough focus to read.[1] Why would the computer need to blur the non-foreground images further?

The only guess I have is that objects on a screen are in a false perspective, based on the screen size and the typical user distance from it. Cramming the real world onto a screen that is tiny relative to the immersive real world requires some tricks. But that's just a guess - does anyone know?

\----

[1] It depends on the font size and probably on resolution too, of course.

<comment><USER14> I think you have the idea backwards a bit. The system isn't interested in making the background blurry, it wants to make your exact eye point the section of the image with the highest fidelity. Then the renderer can just sort of half ass the rest of the image. It's a way to make the apparent image better than what the hardware would allow.

</comment></comment><comment><USER15> As I said over here [https://news.ycombinator.com/item?id=10512349](https://news.ycombinator.com/item?id=10512349)

I will be dead before I allow an always on camera to be watching me at my computer.

</comment><comment><USER16> Is it sad that all I see this turning into is _REALLY_ annoying ads in streaming apps? I'm a little cynical, but I think that VR interaction might benefit from this a little bit, but most of the interactions in gaming are better served be a more immersive display option, with full head tracking.

</comment><comment><USER17> I do not look forward to advertisements using this technology.</comment>


FISA Court Argues To Senate That It's Not A Rubber Stamp - <AUTHOR> http://www.techdirt.com/articles/20131015/18154624888/fisa-court-argues-to-senate-that-its-not-rubber-stamp.shtml <comment><USER2> All of those judges should lose their jobs. How are the requests presented to the FISA court so baked that they deny so few? What makes them special as to have rejection rates so much lower than other courts?</comment>


Atomic vs. Non-Atomic Operations (2013) - <AUTHOR> http://preshing.com/20130618/atomic-vs-non-atomic-operations/

<comment><USER2> Another article from 2013? Am I in a HN timewarp?

<comment><USER2> Sure, this is improperly titled -- needs "(2013)" \-- but downvote me instead anyway.

It's pretty disappointing to get to the bottom of an article linked from HN only to find that the existing discussion is more than a year old and fairly stale. The HN community as a whole must have decided they agree because old posts get marked as such with their year in the title.

<comment><USER3> The years in titles are mostly added by moderators, though we greatly appreciate submitters who do it.

I doubt that your comment would have been downvoted if you had simply pointed out that the title needed "(2013)". People do that all the time.</comment></comment></comment>


A16Z struggles to earn passing grade in crypto fund II investor letter - <AUTHOR> https://standardcrypto.wordpress.com/2020/04/30/a16z-struggles-to-earn-passing-grade-in-crypto-fund-ii-learn-by-doing-classroom-project/ <comment><USER2> Amen to this part: "Yes but what PROBLEM are we trying to SOLVE?"

Every time a blockchain-based solution comes up, I try asking that question. There's only occasionally a real answer. Then my next question is, "How EXACTLY does this solve the problem BETTER?" The answers there are almost always tautological, some version of, "because blockchain!"

(For what it's worth, I give the original bitcoin paper [1] full marks on these points. It has a clear thesis: distributed e-cash will solve particular problems for particular people. It turns out it was wrong on every count, but at least the idea was clear.)

A while back a friend asked me to meet with a first-time entrepreneur pal. The entrepreneur had a business plan that was, like so many others, "existing business, but blockchain". After some explanation of how it would work, I asked, "Ok, how does this help your users?" The answer was, "It's more secure, because blockchain!" I said that wasn't sure it really was more secure. But either way, how could customers know it was better? Because the customer experience for the blockchain version and the non-blockchain version were the same. Either way, it came down to a company saying, "Trust us!" Would the new company's customers see a claim of blockchain usage as better? And better enough to compensate for the product limitations imposed?

They didn't really have an answer for that. And, unsurprisingly, I never heard back again. Nobody likes it when you tell them their baby is perhaps not the most beautiful child ever. ¯\\_(ツ)_/¯

[1] [https://bitcoin.org/bitcoin.pdf](https://bitcoin.org/bitcoin.pdf)

<comment><USER3> Blockchain is good for permission-less financial innovation including raising funds. It doesn't matter if the SEC considers a digital asset a security if everything is offshore and the purchasers are offshore or anonymous. It is a financial network without regulation.

Regulation can pierce areas of the network that interface with physical entities, just as regulators can regulate pieces of the internet they can control but lack capabilities around the darknet. This is what blockchain is - purely digital and open financial networks.

<comment><USER4> There is a group of people who assert that laws will not apply to them because technology obscures their identity. Those people are wrong.

Blockchain is an append-only database. It does not create sovereign citizens.

<comment><USER5> > Blockchain is an append-only database. It does not create sovereign > citizens.

Telecommunications push bits over a wire or the ether. They do not create "cyber spaces". My point is: There are some interesting applications of these funny distributed systems that do lots of work to maintain an increasingly- consistent cryptographically-secured append-only shared state. Your statement is a bit too reductionist.

Frankly I'm surprised to read this kind of thing on Hacker News. I suppose the days of zeal for revolutionary self-sovereignty are truly over:

> Governments of the Industrial World, you weary giants of flesh and steel, I > come from Cyberspace, the new home of Mind. On behalf of the future, I ask > you of the past to leave us alone. You are not welcome among us. You have no > sovereignty where we gather.

> This is our world now... the world of the electron and the switch, the > beauty of the baud.

<comment><USER2> When I first read that, I too was inspired by it. But I don't think it aged well. Cyberspace ultimately isn't a space, any more than there was a "telephone-space" or a "telegraph-space" before that. Blind techno-utopianism is an understandable but erroneous reaction that keeps happening, and it generally ends up being ridiculous: [https://www.amazon.com/Victorian- Internet-Remarkable-Ninetee...](https://www.amazon.com/Victorian-Internet- Remarkable-Nineteenth-line-ebook-dp-B07JW5WQSR/dp/B07JW5WQSR/ref=mt_kindle)

<comment><USER5> > Cyberspace ultimately isn't a space, any more than there was a "telephone- > space" or a "telegraph-space" before that.

Cyberspace is not a physical space, indeed, but that's missing the forest for the trees. The Internet has enabled a totally new social paradigm for which 'cyber space' is an apt term. Do you disagree that a person's experience and patterns of use on Facebook is fundamentally different from someone whose only electronic means of communication is the telegraph?

> Blind techno-utopianism is an understandable but erroneous reaction that > keeps happening [...]

Techno-utopianism is related to but distinct from to the traditional hacker rejection of the state as a valid authority over the Internet. I don't consider either _The Declaration of Independence of Cyberspace_ or _The Conscience of a Hacker_ "blind techno-utopianism". Idealistic, definitely. Heady with anticipation for the world-changing implications of the Internet and frustrated by political dinosaurs who don't get it, sure. Blind or techno- utopian, no, I don't think so.

Your comments are dripping with disdain for the idea that cyberspace might be something fundamentally new and that people might imagine a new paradigm for governance that may be better suited to it.

It is sad to see such cynical pessimism and lack of vision from someone who has the skills that might help to turn their vision into reality.

You _can_ use technology to make the world a better place. It's up to you to actually want to do it.

</comment></comment></comment></comment></comment></comment><comment><USER6> >Bitcoin lightning makes higher throughput blockchains irrelevant.

Lightning is a UX disaster that is not easily solvable as the headaches are part of the protocol itself (opening/closing channels with nodes etc.). I've used some of the various apps that have been released and I find it very difficult to see how "normal" people are going to understand and use it at all. Instead of trying to innovate with new blockchain designs, there is a significant amount of minds trying to hack together bandaids for Bitcoin, a protocol and blockchain that has already been crippled by Blockstream and the scaling debacle.

If one steps back and takes stock of the ecosystem, I find it very difficult to see what value proposition BTC has other than reputation and being a first mover. Store-of-value is something that Monero can do better as it guarantees privacy which I'm sure a lot of people would like. Instant transactions is something that NANO has solved on the protocol/blockchain layer (and without using clunky hacks like Lightning) whereby transactions are settled almost instantly and at zero cost.

Quite frankly, the only thing BTC has going for it is brand value - technically it has already been superseded by other protocols, but BTC maximalists (such as the author of the article) are ignoring this reality likely due to sunk-cost fallacy.

So no, I disagree strongly with the author. There is a lot that can be built within the cryptosphere, and I think trying to gatekeep innovation by limiting it to the BTC protocol is extremely disingenuous.

<comment><USER7> > Lightning is a UX disaster

Lightning absolutely was a UX disaster, but things are improving quickly. There are wallets now that manage your funds completely without the notion of channels, and thats how it should be for most users. You don't even care whats going on under the hood, because it's all automatically managed.

> Store-of-value is something that Monero can do better

Monero has worse scaling issues than Bitcoin and is even harder to use for most people.

> Instant transactions is something that NANO has solved

Every design decision is a trade off. Something free and instant is also infinitely spammable.

If every transaction requires a PoW, its not actually free, and if it's easy enough for a phone to do, its 1000x easier for an ASIC to do, and still doesn't prevent spam.

No one wants to actually store spam data forever, and a lot of blockchains have the issue no one one is actually incentivized to store the crap forever, and _someone_ has to.

I completely agree Bitcoin, at it's base layer could be a better protocol, but nearly every other protocol you'll encounter has made design trade offs that make it less decentralized in the long term

<comment><USER8> > nearly every other protocol you'll encounter has made design trade offs

MimbleWimble makes pretty good tradeoffs. It improves on both privacy and scalability, while sacrificing transparent supply auditability.

It also does away with all the bitcoin script complexity while still supporting most functionality with "scriptless scripts" including multisig outputs, atomic swaps, discreet log contracts, and even payment channels.

<comment><USER7> Agreed. I like MW a lot, it's just far from usable for normal people at this point.

On the downside, I don't see any path for such privacy centric projects getting any regulatory support whatsoever, and sadly I think this is needed to become a mainstream thing. I still think MW has immense value, it just may be relegated to niche usage.

</comment></comment></comment></comment><comment><USER9> "but Bitcoin is a digital alternative that is gaining acceptance and adoption around the world."

If by that they mean ' _losing_ adoption and acceptance around the world' then, sure.

BTC has obviously lost the game at being any kind of 'currency' and as a real store of value beyond the speculative type, it's not quite there.

Are there any serious funds putting BTC in their portfolio as a matter of regular discourse?

When Buffet pulled out of stocks and went 'cash' a few years ago, did he allocated 4% to BTC? No, why not?

The industry is in a death-march, the path forward for blockchain, and such things is not quite clear.

<comment><USER10> To be fair, Buffett doesn't invest in anything he doesn't fully understand, and his strong suit is corporate fundamental analysis.

</comment></comment><comment><USER11> It's funny watching two true believers argue about who's doing a better job chasing their shared vision.

The narcissism of small differences comes for all of us, it seems.

<comment><USER12> Thank you for posting this, it made me look up narcissism of small differences and it sums up this article well. Maybe it would be a better idea to start infighting once bitcoin and other crypto's make it mainstream.

[https://en.m.wikipedia.org/wiki/Narcissism_of_small_differen...](https://en.m.wikipedia.org/wiki/Narcissism_of_small_differences)

</comment></comment><comment><USER13> Tone is very tribalistic and low level. "If it's not Bitcoin it's not crypto". Irrational dismissiveness of innovation because their investment is at risk from competition.

Like the saying goes "It is difficult to get a man to understand something, when his salary depends on his not understanding it." Similar dynamic here.

<comment><USER14> If it's not bitcoin, it does not inherit the fix for inflation. If you have a useful innovation, it is possible to deploy it as a bitcoin sidechain, or colored coin on bitcoin, which retains the fix for inflation (no need to create new tokens), whilst enabling whatever developments you've created.

There's one, and only one reason why people prefer to do the print your own token strategy: to generate lots of low cost tokens early on with the expectation of exchanging them for real wealth later on when an exchange market with some liquidity arises and you can market your product to naive investors.

If it's not bitcoin, it's a money grab. It really is that simple.

<comment><USER8> > the fix for inflation.

Bitcoin is a fix for unpredictable and arbitrary emission. But its finite supply, said to be modeled after Gold's, is questionable.

Gold may have a finite supply, but it's been mined for millenia and has slowly increased its supply rate over time, and will likely continue to do so in our lifetime.

In contrast, Bitcoin's emission which ranges from 2009 through 2140 is heavily tilted to the first few years.

Its final century from 2040 through 2140 accounts for only about 0.5% of emission.

The only point of the halvings is to be able to claim "finite supply". A constant reward would still have the yearly supply inflation rate (stock to flow ratio) going to 0, albeit more slowly. So crucially, supply would still be scarce, would be more predictable (time independent), more fair to late adopters, and be much closer to Gold's emission over our lifetime.

It would also avoid the inherent instability [1] of mining rewards dominated by transaction fees.

If we further consider the fact that coins inevitably get lost, then even a constant reward will yield a softcap of supply, where yearly emission merely serves to balance the yearly losses.

Unfortunately, practically all cryptocurrencies subscribe to the notion that early miners must receive greater rewards, even when they often already enjoy lower difficulty.

[1] [https://www.cs.princeton.edu/~arvindn/publications/mining_CC...](https://www.cs.princeton.edu/~arvindn/publications/mining_CC..).

</comment></comment></comment><comment><USER3> > _Stable coins are just bank liabilities in the best case, and more commonly > fraudulent mafia money laundering ponzi schemes like tether.

Bitcoin lightning makes higher throughput blockchains irrelevant._

Bitcoin maximalist hit piece. All other coins are worthless to the bitcoin maximalist.

I love BTC but there is a lot of innovation in crypto, almost all of which is not on BTC.

<comment><USER15> The part about Lightning making "higher throughput blockchains irrelevant" is correct though. Blockchains inherently do not scale unless you sacrifice decentralization, and once you've done away with decentralization then you don't need a blockchain. You're better off for many reasons using a database instead.

<comment><USER3> Lightning is a complex piece of technology. It basically requires an ISP-like layer-2 solution where nodes peer with each other in order to route payments. This is not a silver-bullet solution to scaling. ZK rollups[0] are another solution and are live on Ethereum right now.[1]

[0] [https://docs.ethhub.io/ethereum- roadmap/layer-2-scaling/zk-r...](https://docs.ethhub.io/ethereum- roadmap/layer-2-scaling/zk-rollups/)

[1] [https://loopring.org/#/protocol](https://loopring.org/#/protocol)

<comment><USER15> Lightning is live right now too, and has been for two years. The "ISP"-like (???) layer-2 thing you're referring to is just the fact that Lightning is decentralized _and_ also scales, which is probably why the author accurately claimed that it makes many-TPS blockchains irrelevant.

ZK rollups are completely new and they do not scale nearly as well as Lightning, which performs at nearly 500 transactions per second /per payment channel/. So take the number of channels existing currently on the Lightning Network and multiply by 500 and you have a theoretical ceiling. It comes out to some multiple millions of transactions per second.

<comment><USER3> As a typical client, when using the Lightning network you open a channel with a peer, which requires an on-chain (slow) transaction and locks up funds. If you don't wish to do this with every single person you want to transact with, then you select a peer who is a major node (exchange, payment processor, etc.) who already has channels with the other major nodes. This will allow you to quickly route payments to anyone affiliated with the large network.

This is why it is like an ISP layer-2 solution. IP packets route through the internet in a similar way.

</comment></comment></comment></comment></comment><comment><USER16> If future funds aren't investing in Coinbase, Etherscan, and CoinMarketCap because those companies already exist then the risk profile is much higher. All of these companies can make money in up and down markets. It's less obvious that other crypto startups can do the same.

</comment><comment><USER17> mostly accurate piece. I can't say I agree with the stablecoin analysis since many are being used as novel financials instruments, but I see where he is coming from.</comment>


Is there a concept of safety trademark in ML black box models? - <AUTHOR> How would someone trust a black box model that it is not biased or things like that specially when it comes to its deployment in mission-critical applications such as health care? How do we manage the tradeoff between accuracy and intelligibility? <comment><USER2> I think that the quest for interpretability is often a red herring. What people need is an ability to tell a model what to do when it is straightforward to do so.

For instance, at the convenience store near me there is a sign that says "To buy alcohol you must (A) be 21 years of age and (B) not visibly intoxicated"

The first of those is easily addressed as a rule, the latter is a statistical kind of thing -- different raters are going to disagree whether certain people are "visibly intoxicated" and (in real life) it is contextual. It is one thing to send somebody to drive home drunk, it is another if you are not.

An interpretable model might tell you that it learned it is OK to serve people that are 20.95 years of age, but that is for chumps. You should just punch in it is 21 from the beginning.

Similarly, a model that is biased against black people might not have a reference to "X is black" but rather might learn to discriminate based on geography or other characteristics. On the other hand, in health care, there are some cases you do want to take race into account. Blacks react differently to drugs for heart failure, while Naltrexone seems to be highly effective for alcoholism in Asians, moderately effective in Whites, and barely effective in Blacks.</comment>