How to get hired (or, 'The silly story of interviewing in the valley') - <AUTHOR> http://trapm.com/how-to-get-hired-or-the-silly-but-adorable-st <comment><USER2> _"Then, acting as though this was the first time I'd seen this problem, I would ask if it was ok if I thought aloud as I worked my way through the problem on the board. I'd mumble to myself about moving-this-piece-over-here and-now-we're-going-to-get-this, and lo-and-behold, I accidentally solved it in constant memory space, in C - a language I didn't even claim to be particularly good at! Only someone with amazing problem solving skills would be able to do that their first time thinking through this problem so earnestly!"_

All this tells me is that tech interviewing is horribly broken. What we have here is a story of a guy with a little bit of experience who has (if his story is true) successfully learned how to game the interview systems at dozens of startups. If you interview people, this article should terrify you. You can argue that it isn't "gaming" if the guy turns out to be a good employee, but that's wrong. If he can trivially game the system, so can anyone else with the ability to go to dozens of interviews and remember questions.

There's a fix for this problem: make the interview about more than the answer to the stupid question. If the candidate answers your question a little too quickly, ask something harder. Chase down a detail. Pick an experience on the resume (and not an obvious one), and dig as deeply as you can. Good candidates know the details. Bad candidates don't have details you can chase.

If you're interviewing correctly, no candidate should be able to come in and snow you with some regurgitated C code from previous interview experience, because you'll be able to out-flank them at every attempt to cough up a line. Unfortunately, there's a corollary: you need to know the subject better than the person that you're interviewing. If you don't, you have no hope of screening for good people.

<comment><USER3> It's not really gaming the system. He solved the problems, himself. He asked questions, learned and then came up with more and more effective solutions. Aren't these exactly the traits an employer should be looking for? Didn't he put a lot of effort and time?

Here's my own example. I've been recording some of the problems I have to deal with at work, and some of the things I come across in my spare time in the form of a blog, for the last 3 years (with some gaps here and there). I recently started looking for a better place to work. I included the link to my blog in my resume. I got an offer recently, it will be a substantial increase in salary. I only interviewed with ~5 companies to get an offer, that's my easiest offer and shortest job search ever.

Now, would you say that I 'gamed the system' because I had a blog, and most don't? I guess you can say so, because when I started my blog, I had that in mind - it may be useful next time I look for a job. But I did not mindlessly type stuff in - I made sure I understood it as much as I can, and quite often writing the solution down helped my understanding. Same with this guy - he did not just memorize how to do it.

 _I had one YC company ask me to create a linked-list structure in ruby, and then reverse it. I did it recursively, mentioned that it would blow the call stack, and then re-implemented it iteratively. I also remember there was some problem where I used symbols rather than strings and that would cause some bad memory leaks over time in a long-running process._ \- From this passage, he might not be the "top 1 percent" everyone tries to hire, but at least top 5%, that I'm sure of. Or maybe he gamed my impression too.

<comment><USER4> The definition of gaming the system is different here. These days unless you are implementing a library yourself. You are probably never ever going to even reverse a linked list ever in your life. Or deal sit down with a math text book when you code. Those days are probably gone in the 80's.

That means asking these questions is akin to you taking an approach to judge an candidate on things which have nothing to do his job. That's why so many programmers don't about all this. The reason is for 99% of the work they are likely to do _they don't need to know it_.

Under such circumstances when you ask these sort of questions the only way candidate can deal with them is not by actually learning how to solve them. But learn them just for the interview sake.

So you end up hiring some one on a criteria doesn't matter. And the candidate manages to beat you by system of work which defeated your original means of judging him.

I think this is what gaming the system means.

<comment><USER5> As I read the article and the comments I thought "how would I reverse a linked list?"

Turns out it is pretty straight-forward in Erlang: lists:reverse(List).

Reading their contributions on github is a much better way to get a sense of someones capabilities.

<comment><USER6> You could just ask: How is lists:reverse(List) implemented in Erlang, or if you don't know it, how could it be implemented? What are the trade-off and limitations for different implementations?

Since most abstractions are leaky, you can make a good argument, that learning how libraries tick, even if you are never going to rewrite them, is a useful skill.

<comment><USER5> But I want to find developers who will help me deliver the business objectives. Rewriting list reversal code doesn't do that.

<comment><USER6> Understanding the limitations of libraries might help you use those libraries better. Using libraries can be a part of delivering business objectives.

I don't think that list reversal is a good interview question. At least not as a positive discriminator. Though it might help you weed out people: I'd probably not want to hire people who can't figure out how to reverse a list. If they'll stumble upon such a simple problem, they might also stumble over the more complicated problems we have to solve to deliver business objectives.

I wrote `can't figure out' deliberately. Not knowing how to reverse a linked list, but being able to come up with an algorithm after a few minutes thought is perfectly adequate.

<comment><USER5> I agree with you - it is a weeder-outer, but not an includer-inner - there are lots of people who can write code to reverse linked-lists that I don't want to hire.

In particular I don't want to hire the people who would rather write their own implementation than use a library (think Not-Invented-Here and Yak Shaving).

<comment><USER6> Indeed. By the way, in purely functional implementations of a list reversal there are non-trivial trade-offs to make. (See Janestreet's standard libraries for OCaml.)

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> Programmer interviews are famously terrible. Take a second to think about FizzBuzz, why anyone ever thought we'd need something like it, and how it actually continues to serve a purpose.

Everyone thinks they're better at interviewing than they are. They often have a survivorship bias. In clueful companies, it's not that dead weight doesn't get hired. It just gets washed out. Interviewers tend to remember the people they end up working alongside.

There are dev questions that are harder to study for. They tend to be open ended. A few of my favorites:

* Describe some code that tends to follow you from project to project (I mostly interview C devs, so I tend to ask this as, "what's in libyou.a?"). What's in your bag of utility functions?

* What's the worst library you've ever worked with and why did you hate it?

* Estimate the amount of time it will take you to complete system X. Drill down, both by forcing the candidate to specify components (do an informal design exercise) and then _cost each of those components_. Estimation is an extremely important skill regardless.

* What's a piece of functionality that tends to crop up on lots of projects that you'd never implement yourself if you had the option of using a library? (Usually, I'm trying to get C programmers to tell me that they would not in fact hand-hack doubly linked lists out of structs with nested struct pointers).

* Describe the last system you contributed significantly to; how did those contributions break down structurally (did you write libraries for X, Y, Z; did you write plugins for X, Y, Z; did you extend the engine in X, Y, Z ways). Now describe the trickiest bug you ran into on that project.

For C devs, I always used to ask, "You're testing a component you just wrote and finding that it crashes in malloc. Diagnose the problem." This is less relevant now, but there are probably surgical questions you can ask e.g. a Python dev that verify that they actually have the experience of working professionally in the language.

<comment><USER8> I'm not sure I understood you correctly about FizzBuzz, but if you're saying that it isn't necessary then I'd have to disagree. I wish the world was such that FizzBuzz wasn't an effective filter, but it is.

I really like the rest of your questions.

<comment><USER9> Thomas is saying that the hiring process for programmers is so _comprehensively_ fubared that asking the FizzBuzz question to someone who has worked as a senior developer for 8 years at a well-regarded firm _provides valuable signal_ and that if you fail to ask it you might _hire people who are completely incapable of programming_ even with your fancy-dancy recruiting process, which shows that the pipeline and standard interview process are both borked like crazy.

<comment><USER10> Essentially: It is not common for doctors to be asked to locate the interviewer's mouth, ears and thumbs. If an interviewer asked that kind of thing, you'd really have to suspect that he couldn't tell a good doctor from a bad one.

But programming interviewers do need to ask this kind of thing. So you really have to suspect…

<comment><USER11> The problem isn't that we're asking doctors to locate their mouth, ears, and thumbs.

The problem is that the resume and candidate pipeline is so crappy, that the interviewer _cannot be sure_ if the person sitting across the table is a doctor, or a plumber, or a carpenter, or an accountant, or maybe a bum off the street.

My interviewing life would be a lot easier if there was a firm guarantee that every candidate knows at least basic programming - and by basic I mean _basic_ \- i.e., can put together a for loop that compiles, in a language of their choice.

The second part of this problem is that the industry has so many jobs where the _absolutely clueless_ can survive that "X years experience" in-industry is not a trustworthy metric for competence. "5 years at County General" for a MD, with a clean record, is a pretty decent guarantee that your candidate is in the ballpark. "5 years at Accenture" for a programmer guarantees nothing, not even the ability to write FizzBuzz.

Elsewhere in the thread someone mentioned being incensed that, even with his years of experience, he was being asked elementary questions. That's why - years of working experience is _not_ a valid signal for competence.

<comment><USER12> "5 years at County General" for a MD, with a clean record, is a pretty decent guarantee that your candidate is in the ballpark."

Scary but true: There are plenty of experienced doctors who couldn't pass a medical Fizzbuzz. My supervisor at my last teaching hospital, who has been treating patients for at least five years, failed the Fizzbuzz question I asked him. ("What's that other class of antibiotics you can't give patients with penicillin allergies?", if you're wondering.)

(There's also a few stories of people faking medical licenses and working as doctors for years before anyone noticed [1], but those are probably too rare to worry about.)

1: [http://www.sueddeutsche.de/panorama/hamburg-falsche- kinderae...](http://www.sueddeutsche.de/panorama/hamburg-falsche- kinderaerztin-verurteilt-1.499146), couldn't find an English language link, sorry.

</comment></comment></comment></comment></comment></comment><comment><USER13> People talking about how he "hacked the interview process" are missing the point: as a hiring manager I'd gladly hire this guy even knowing that so much of what he did was not entire genuine. He took a problem (I need a job), implemented a solution (applied and interviewed at a TON of places in that short of a timeframe), and successfully iterated on that solution until he had completely _mastered_ it! In a very short time period he went from being unable to solve a variety of programming problems (or doing so poorly) to internalizing the how & why of the optimal solutions - this is what good software development is about!

I care a lot more about initiative and problem-solving skills than I do reversing linked-lists - this guy has the former two in spades.

<comment><USER14> Sure, if you're looking for someone who is hard working and willing to learn, then this type of candidate is perfect for you.

But if you're screening for candidates with development experience who you can rely on for technical knowledge, the idea that someone can game your interview process in less than two weeks without previous knowledge is horrifying. But I'm guessing that people looking to hire experienced candidates aren't basing hiring decisions on questions about reversing linked-lists.

<comment><USER4> I think the point he was trying to make was. If you are productive enough and serious with a little skills you are can be hired.

The reason being you work hard your way towards success. This is far better than the person who knows merely facts.

Knowing doesn't always doing. But in most cases if you are doing something you are likely to know what it is.

</comment></comment></comment><comment><USER15> "....this process, starting from ~50+ raw leads whittled down into ~40 initial phone interviews/coding challenges, which went to ~25 next stage interviews, eventually down to ~6 really good offers, all in about ~1.5 weeks."

Does this timeframe seem a little dubious to anyone else? I count 65 technical interviews plus interviews with hiring managers, etc., followed by receiving offers. And all of this happening in about 8 days. This story would be a lot more believable if it had a realistic timeframe.

<comment><AUTHOR> Nope, it's true. I woke up early in the morning (easy to do sleeping on the kitchen floor in mountain view without a heater), went through craigslist every morning, had an email template I'd individualize for each posting, and send it out. I'd work through the code challenges as they came in, set phone interviews into the late night, in-person interviews in the city during lunch, etc.

It happened, I took it pretty seriously because of the impending cliff of being homeless.

</comment></comment><comment><USER16> I call complete and utter bullshit.

Each "technical interview" I've been to is about 3-6 hrs. I've yet to see a Silicon Valley technical interview where it's not at least 3 hrs, meeting with 3 people. So right there, fitting 25 "next stage" interviews in 1.5 weeks is bullshit.

Where is he going to find the time for 40 initial phone interviews? That requires talking with the recruiter, and then the recruiter scheduling time with a developer. Anyone who has realistically interviewed in Silicon Valley knows that recruiters are very slow, and things tend to get muddled up very easily.

In 1.5 weeks, assuming they don't interview on weekends, that's 6 1-hr phone screens, plus 3 on-site interviews per day. The logistics simply don't work. It's a complete lie. If he had said 1 month, then it still would have been impossible with 1.5 phone screens and 1 on-sites per day, but it would have been slightly more believable than 1.5 weeks.

<comment><AUTHOR> Rough. But you're free not believe, I don't have a problem with that.

<comment><USER16> Sorry buddy, but please explain the complete discrepancy in what you reported.

How do you fit 3 on-sites and 6 interviews per day? Even if your onsites were 1 hr long and they offered you a job after a single interview, you still have to drive back and forth to each location. How did you have time for the 6 phone screens per day?

<comment><AUTHOR> I didn't have a car actually. I just scheduled all the interviews as close to possible every day, and walked around SOMA/FiDi from morning until evening going through different stages of different interviews - initial chat (morning coffee/lunch/dinner/drinks), whiteboarding session, meet with the team, build a mini-project, discuss final offer.

Each successive stage is more time intensive, but there were also fewer of them. There's a lot of noise, especially in the beginning, so a lot drop off very quickly. From there, it was just a matter of tightly packing the schedule and doing it from day to night.

Like I said, the "you'll be homeless again very soon" factor was a big one for me.

<comment><USER16> Even more interesting then, because you just lost 2 hrs every day commuting back and forth on Caltrain.

"Each successive stage is more time intensive, but there were also fewer of them."

You just said you had 25 onsites. Unless you knew beforehand that you were going to cut out of them early, there's no way you could have scheduled 3 per day. And at 6 phone screens per day, the last 2-3 days worth of phone screens occurring near the end of the 1.5 week period would not have been able to produce an onsite within 1 or 2 days, therefore, that means most of the 40 phone interviews must have been front loaded in those 1.5 weeks, with the onsites being back-end loaded. Which means that your density of onsites would have been higher than 3 per day.

It's a great story, but you should use more realistic numbers next time.

<comment><AUTHOR> All good points. This is just what I remember, and I don't dispute it could be wrong.

</comment></comment></comment></comment></comment></comment><comment><USER17> I was flabbergasted that someone was asked implement a linked list in Ruby. My initial reaction was 'That is an incredibly stupid thing to do.' My slightly more in depth reaction was "Isn't that what mutable arrays are for?" And my final reaction was, "Maybe I'm missing something." At which point I tried to figure out the benefits of a linked list over a ruby array. I wasn't able to come up with a good reason to use a linked list in Ruby, but maybe someone could enlighten me.

<comment> brown9-2 I think you are looking at this from the wrong angle. Just because it made a good interview question (for the interviewer) doesn't mean it's something you'd actually want to use in everyday practice.

<comment><USER4> Why would you ask questions to a candidate which have nothing to do with his job?

Will you ask a marathon runner to prove his worth by asking him how quickly he can sprint?

</comment></comment></comment><comment><USER18> Are these kinds of interview questions really that prevalent? From the hiring side of the table, I can understand wanting to quickly know whether somebody knows some of the "basics" like data structures and whatnot. But I can't help feeling that you're needlessly limiting your applicant pool to only those who got a CS degree (and paid attention during the process).

Why is so much emphasis placed on the theory of how linked lists work (for example) instead of the practical application of where they'd be used?

Edit: Big O notation is great and all, but shouldn't the emphasis be more on shipping than optimizing? You can optimize your MVP to death, but if you never finish it what good does that do?

<comment><USER19> Yes, interview questions like this are common.

The problem with "practical application" questions is that the answer almost always comes down to "it depends". The correct optimization or fix is specific to the actual thing you are doing; that's what makes it practical.

In order for an interview question to be useful, both the interviewer and the interviewee must be able to answer it. The applicant doesn't know the interviewer's product well enough to make accurate technical diagnoses. The person doing the interviewing doesn't know about the applicants' products either. Bogging the interview down in specifics to fill in the background is usually not helpful - plus, it gives lots of opportunities for the applicant to bullshit the interview by listing a bunch of technical details that might not actually have been accurate or important.

Theory questions are favored precisely because they are not dependent on nuts- and-bolts practical details. "Reverse a linked list, writing your code on this whiteboard" is general enough that most applicants can answer.

I understand that people who lack CS degrees might not know the answer. Interviewing means accepting that you don't get a 100% accurate result. I would only switch away from the "basic CS question" problems if I was convinced that some other question has a higher accuracy rating, and I'm not sure of that.

<comment><USER18> > The problem with "practical application" questions is that the answer almost > always comes down to "it depends."

Agreed. Talking about application of theory is way too vague and leaves way too much room for bs. But I think my original point was unclear. I'm not suggesting that interview questions be "When would you use a linked list?" but rather "Let's hack on something using a linked list (something beyond just simply reversing it)." Like the article mentions, once you've built a linked list before and have optimized (and reversed) it to death, there's little to be gained from doing it again for somebody else.

</comment></comment></comment><comment> brown9-2 _I started asking if I could assume TCO - usually knowing they would say no, but it would set them back a bit because that's an unusual question._

What does TCO here mean? Tail-call optimization?

<comment><USER20> Yes. For a moment I wondered why he wanted to use TopCoder Open in the middle of an interview.

<comment><USER21> or Total Cost of Ownership... I guess I'm hopelessly "enterprisey".

<comment><USER22> That's two of us.

</comment></comment></comment></comment><comment><USER23> I use a similar approach. I spent 20 years as a consultant, so I did a lot of interviews. I would send out lots of emails. I didnt do many tailored emails, but I did a carefully tailored cover letter designed to be amusing to the HR ladies. You have to get by them first.

I figured the first few interviews were throw-aways, just to get my interviewing skills back up to speed and to find what this years interview questions were. Yes, they go in fads. One year the programming task of choice was to reverse the words in a string. See it a couple of times and you get too be pretty proficient.

I keep a stock of questions to push back. I havent issued programming challenges, but I have asked, "What is your pain point? What technical issue is causing you problems?" Usually we get into a long discussion of the challenges theyare facing.

<comment><USER24> What did you do in your cover letter to amuse the HR ladies? Please share.

<comment><USER23> Do you remember the Johnny Cash song "I've Been Everywhere... Chicago, Reno, Fargo"? Sometimes I think my resume reads like that.

After I added those lines, I got a 25-30% increase in responses.

</comment></comment></comment><comment><USER25> So ... what exactly is the turing-machine dog question? A google search left me unenlightened.

<comment><USER26> I figured it was just humorous nonsense.

</comment></comment><comment><USER27> A lot of discussion here about memorizing the programming questions, but I think the most interesting part of this is when he turned the tables at the Do You Have Any Questions For Me stage and really interviewed them.

I haven't asked anyone a programming questions like he did, but I did ask some tough questions about the team, work environment, management style, company goals (looking for a quick exit? in for the long haul? etc.) at my last job interview (after some good friends gave me the advice) and it both gave me a lot of insight into the company and team that I was considering working for, and I think it impressed them that I was thinking about those things.

In short, know what you want from a team, manager, and company, and take time to interview the people interviewing you to make sure they have what you are looking for.

</comment><comment><USER28> I don't understand why is there such a strong emphasis on these kind of interview questions. I think showing a piece of nontrivial code which the candidate have created in the past tells a lot more about the candidate.

For example this tells more about me than the interview questions I usually got: <http://codeclamp.com/ccui.js> , because it tells about how I think long- term, how I solve relatively hard and relatively complex problems, not how I survive a quick interview (solving relatively easy algorithmical problems but under very high time pressure.). (By the way, if you have an interesting well paying job for me, I might be interested...)

</comment><comment><USER29> I think a much better indicator of how valuable a person will be in your company is not if he can solve puzzles on the fly but how munch time he puts into coding. If a person is coding in his free time and keeping up with technology and experimenting even though his current job doesn't require it, that person is more likely to have a breadth of knowledge that will pay dividends over time. Something like that cannot be gauged by him/her solving a "reverse-linked-list" problem.

Furthermore, a person involved in the community is more likely have in-roads with other strong developers, which again might pay dividends in the future in terms of hiring.

<comment><USER30> In my experience interviewing candidates, the two are very strongly correlated. A person coding in a lot, including in his free time is more likely to have implemented a wide variety of things, and will be much more hands-on to solve these kind of riddles/exercises, than a person with only book knowledge who coded the same kind of stuff for years on an end.

</comment></comment><comment><USER31> I had a similar experience interviewing after being off the job market for a quiet a few years: You will be rusty initially, but then you will pick up steam.

Just like in your "real life", solving interview problems is not about reinventing the wheel with 100% custom solution, its about pattern recognition where the pattern is a problem you know a solution for. The more problems you solve(and possibly fail) the more data your internal pattern recognition algorithm(your brain) has to help you with the solution.

I dont see it as gaming the system, I see it as being able to prove that you are capable of problem solving.

<comment><AUTHOR> Yeah, it's a positive signal that someone was able to pick up from past failed interviews. It's a weak filter, but it's fine to have. From there, it's best to work with the person on short projects, and then hire them as a contractor to find out if they're a culture match and can solve the problems you're facing at an acceptable rate and in a maintainable way before hiring them on as an employee.

</comment></comment><comment><USER32> It's worth mentioning this as a counterpoint to 'startups don't reply': <http://news.ycombinator.com/item?id=3351699>

</comment><comment><USER6> I can't post to the site, could somebody who can (or can contact the author in some other way), leave a note to the author, notifying him of a typo in "For people hiring, remember that anyway can pass yours tests with enough experience interviewing, even someone as bad at coding as myself." (It should be `anyone' not `anyway'.) Thanks!

<comment><AUTHOR> Got it, thank you eru!

</comment></comment><comment><USER33> This article really indicates to me the fatuousness of this sorts of problem/solution interview approach.

I agree with timr in that a more more intelligent approach is to throw a problem at the candidate, then drill down into their thinking about the problem.

It's a bit silly if you're hiring based on regurgitation of algorithms in my opinion.

<comment><USER34> I certainly agree. However, I haven't actually seen any pure problem/solution interviews--and this is just for internships where you wouldn't expect the companies to be as thorough. I had questions ranging from "find and fix the problems in this code" to "how would you design a library to do..." to "propose a solution to this problem and prove it works". This might be because I mostly talked to smaller companies.

</comment></comment><comment><USER35> Isn't there a book dedicated to coding interviews?

[http://www.amazon.com/Cracking-Coding-Interview- Programming-...](http://www.amazon.com/Cracking-Coding-Interview-Programming- Questions/dp/098478280X)

</comment><comment><USER36> I had a similar experience. This past Fall, I was interviewing with multiple companies, and I received questions that were very similar.... some being the same exact thing. I was nice, however, and told them out front that I had seen the problem before and asked for another.

I don't regret doing that; some may have passed the interview by keeping quiet even though they had seen the problem, but those people won't go far in the world because they cheat. They will eventually get called out for it and lose their reputation.</comment>


Ask HN: Django, Rails or Node.js for a SaaS web application? - <AUTHOR> I'm a junior-level Java programmer (and CS student) with some SaaS ideas for the Danish market.
I have no experience in web development beyond some HTML/CSS (+ Bootstrap) and some JavaScript.
Which web framework is ideal for developing SaaS applications like Basecamp and Harvest? <comment><USER7> Basecamp and Harvest were both written in Rails. For standing up simple SaaS, Rails is a great choice.

However, for a complex SaaS (any SaaS can get here really), you will need to make some sane choices around modularity and building separate, loosely coupled services before things get out of hand. Node.js (or any of its lightweight frameworks on top) is probably a little stronger than Rails in this regard.

This service-based approach is more difficult with Rails as the community hasn't blessed any consistent conventions around doing it. Any custom convention you create to integrate multiple Rails applications will likely break compatibility with future Rails framework upgrades. There are many companies that are paralyzed and stuck on older versions of Rails because they ran into this problem.

All that being said, Java is still a great choice if you make some modern choices and will help you move forward without being slowed down by learning a new framework. Check out the Modern Java Series here: [http://blog.paralleluniverse.co/2014/05/01/modern- java/](http://blog.paralleluniverse.co/2014/05/01/modern-java/)

<comment><USER8> > _However, for a complex SaaS (any SaaS can get here really), you will need > to make some sane choices around modularity and building separate, loosely > coupled services before things get out of hand. Node.js (or any of its > lightweight frameworks on top) is probably a little stronger than Rails in > this regard._

Huh? This is a load of crap. Frameworks, and even languages, have nothing to do with modularity and building services. You can do this in any language and any framework. Modularity and loose coupling are decided by the developer(s) writing the code and if you think a particular tool will solve this for you then you have a grave future.

<comment><USER9> I don't think it's right for you to call what he said crap without backing it up with any evidence. Node.js is essentially the modern poster child of modularity. JavaScript doesn't have inherent modularity--but the devs of Node have made some choices that make it possible to have an extensive module ecosystem for Node. npm is probably one of the best package managers for development right now, as it comes with one of the most popular platforms and is inherently flexible.

<comment><USER8> Package managers have _nothing_ to do with modularity. You're confusing modules, a thing, with modularity, a property. How you write and design your systems is how you get (and don't get) modularity, not by having a service you upload and download packaged code to.

Again, modularity has nothing to do with the quality of your package manager.

</comment></comment></comment></comment><comment><USER10> Full disclosure: I have been around a while and have written in more languages than I care to even share at the moment. Right now my go to is Ruby with Rails. However, since you say you are a junior level engineer with Java experience, why not stick with Java? Recently there was a great article on HN about using Java for Everything and it made some very good and logical arguments for going with Java. [1][2]

We see questions like this on HN quite often. When starting a new project that you would like to support yourself on, you must ask "Would I like to make a successful SaaS product?" or "Would I like to learn a new language/framework/ecosystem?". I am sure some would argue that the language/framework/ecosystem can really make or break a web application. However, there are successful business built on just about all of them:

Stackoverflow - .Net

Facebook - <USER2>

Amazon - <USER3>

Bloomberg - Ruby (could have said Twitter until recently they are migrating to Java, interesting?)

Reddit - <USER4>

DuckDuckGo - <USER5>

Orbitz - <USER6>

OkCupid - C++

Of course many of these organizations use a number of languages and frameworks. The point is, when they started they used what they knew and went with it. My suggestion, start building! Then someday I can use your super successful application in a list like this!

[1] [https://news.ycombinator.com/item?id=8677556](https://news.ycombinator.com/item?id=8677556) [2] [http://www.teamten.com/lawrence/writings/java-for- everything...](http://www.teamten.com/lawrence/writings/java-for- everything.html)

</comment><comment><USER11> I'd like to cast a vote for Flask, another Python-based framework which aims to be more lightweight than Django. I'm sure Django has nice features, but as a newbie to MVC frameworks, I like using a minimalistic tool that lets me learn what's going on.

On the other hand, I recently learned that _Perl_ is making a comeback with a couple of popular web frameworks. I haven't programmed in Perl since the last century, but I remember it being a fun language!

</comment><comment><USER12> Ultimately it doesn't matter, but.

"Node" is not a web framework. There _are_ web frameworks _for_ it, with varying degrees of completeness. There are lots of moving parts.

Rails is a (more or less) complete ecosystem. There are lots of moving parts.

Django I don't know enough about to speak in any meaningful way. Python-the- language is fine.

Ruby and Python OO will be more familiar to you than JavaScript's version.

You may want to do a client-based app; this means JavaScript. Go ahead and learn that now--it will serve you well, regardless of what you use on the client side. On the server side you have essentially unlimited choices, including Java. Serving JSON is fairly easy in any language.

There are a bunch of other issues to consider as well, like data storage, deployment, etc.

</comment><comment><USER13> All three are viable candidates - however because it appears to me like you are trying to learn more about web development, I'm going to suggest node.js, because like it or not, when it comes to the browser, javascript is your only choice for the foreseeable future.

This way you don't have to expend any extra energy on the cognitive overhead of switching between languages when you switch from writing something in the client side app and then something on the server side. To be fair to the other languages, I don't think this is a huge issue in day-to-day development, but from my experience is was an enormous issue when I was trying to learn a new language and I actually had to think about the syntax I was writing.

My biggest suggestion though is not to do it in java and instead expand your horizons - if I plotted my strength of a developer against time on a graph there would be long flat sections interspersed with sharp upward inclines. Those inclines? For the most part, short periods of time when I started working on learning to program in a new language.

</comment><comment><USER14> This question is asked a lot. Basically choose the language first then worry about the framework.

There is no magic bullet so use the programming language which you can code the best, faster, easiest in. Framework is second.

Django, Rails, <insert php framework here> all do the same thing. 90% of the time you are going to be fighting fires, so develop in the language you like.

* You are a java developer why not use a java framework?

<comment><USER15> I would suggest the opposite. Learning a new language will do you good. I use Django, because the documentation was really good for my level of experience (I had tried couple of Perl frameworks before, but never got my head around them - Django was explained a lot better). Now I know Python - its not hard to learn, and once you know some idioms its way more expressive than Java. Scala might be a good option. Then you use the same ecosystem, but learn a more expressive language.

<comment><USER14> Yes learning is good but if her/him is looking to build something fast and get the job done learning a new language whilst doing this is not really very feasible.

There is the time for development and the time for learning.

<comment><USER15> I personally found that moving from Perl to Python, I gained a lot, despite taking on a new language. Django was way better documented (for relative newcomers to web programming) than the Perl options I tried, and the Admin application got me up and running with something usable pretty quickly.

</comment></comment></comment></comment><comment><USER16> I was a Senior level Java developer and I would suggest Rails. It has the object oriented-ness you are familiar with from Java and a rich set of libraries (gems) as well as a lot of documentation online (railscasts).

SaaS is essentially a CRUD application serving some specific need - Rails is good about letting you focus on what your are building (e.g. the house) and not spending enormous time on infrastructure (e.g. plumbing, wiring, etc.)

Edit: I agree with mattwritescode: it doesn't much matter which one you choose since they all will work. From my experience with Java though, you could spend a lot of time just getting infrastructure working - framework, JDBC, etc. Rails will have that out of the box (maybe Django too)

</comment><comment><USER17> JavaScript is most future-proof. Given that it runs in browsers, servers (Node.js) and mobiles (PhoneGap) I strongly suggest learning the Node ways, as you may find yourself using Backbone/Angular/etc on the client and in-depth knowledge of JS will help. In this day and age you're probably building a single page web app, in which case 99% of your code will run in the browser.

<comment><USER8> > _JavaScript is most future-proof._

What does "future-proof" even mean in this context?

> _In this day and age you 're probably building a single page web app_

Uh.. no. A tiny percentage of new web applications are single page applications and of those most of them don't need to be single page applications. The web would be a much better place if people thought in terms of "What functionality does this web application need?" instead of "Does this application need to be a single page application?"

</comment></comment><comment><USER18> I'd suggest mastering Java before moving on to another language. Every language has issue and none of them are 10x better than the others. Mastery will help you more than learning three languages to a novice level.

If you choose to do Java, I am a big fan of Google App Engine because it forces you to write scalable code from the beginning.

</comment><comment><USER19> I'd choose rails and pick up a copy of Ryan Bigg's book - [https://leanpub.com/multi-tenancy-rails](https://leanpub.com/multi-tenancy- rails)

Django is also a fine choice but Django lacks learning resources. I mean seriously, why aren't you Django guys writing books and recording screencasts?

</comment><comment><USER20> They're all ideal -- that's why they're all very popular frameworks. Every day a new company picks one of the three, and whether it succeeds is extremely unlikely to have anything to do with that choice. So just pick the one you feel most drawn to, seems to have the best documentation, etc.

</comment><comment><USER15> I use Django. It's admin application is excellent for getting a basic HTML CRUD app working quickly. There are probably equivalents for other frameworks, but if that's something you might need, its a seriously useful and productive feature.

</comment><comment><USER21> Well since you mention Basecamp, that is the original Ruby on Rails app. Rails was factored out from the Basecamp codebase for reuse on other projects. So if you want to make an app "like Basecamp" then you probably want to use Rails.

</comment><comment><USER22> since you are a java developer. I did suggest play framework. It is very well documented and pretty easy to use.

</comment><comment><USER23> Rails.

<comment><USER24> Rails (ruby) or Laravel (PHP)

Both are great frameworks for SaaS

[http://Railscasts.com](http://Railscasts.com)

[http://Laracasts.com](http://Laracasts.com)</comment></comment>


The Race to the Bottom - <AUTHOR> https://spectrum.ieee.org/semiconductors/memory/the-race-to-the-bottom <comment><USER2> Needs a (2005). I was really interested and ran headlong into a sentence like "expected to reach market in 2007".</comment>


StockX Is a Stock Market for Nikes and Rolexes - <AUTHOR> https://www.wsj.com/articles/this-website-is-the-stock-market-for-nikes-and-rolexes-1543251772 <comment><USER3> It's tough to avoid complaints when you're a bigger company, but when I hear StockX, I'm forced to think about the multiple complaints of fake selling through them.

[https://old.reddit.com/r/Sneakers/comments/9tqfv6/i_received...](https://old.reddit.com/r/Sneakers/comments/9tqfv6/i_received_fake_jordan_1_breds_from_stockx_today/)

[https://old.reddit.com/r/Sneakers/comments/9uqafs/stockx_sen...](https://old.reddit.com/r/Sneakers/comments/9uqafs/stockx_sent_me_a_fake_pair_of_unc_ow_aj1_and/)

[https://old.reddit.com/r/Sneakers/comments/9jaj4r/exposing_s...](https://old.reddit.com/r/Sneakers/comments/9jaj4r/exposing_stockx_selling_fake_sneakers/)

Can't be a good thing for people to think that about a company.

<comment><USER4> Apparently you're expected to authenticate 1 shoe a minute

[https://niketalk.com/threads/what%E2%80%99s-it-like-to- work-...](https://niketalk.com/threads/what%E2%80%99s-it-like-to-work-at- stockx-i-quit-after-1-day.677537/)

<comment><USER5>
      > The only decent song they
      > played was ruff ryders anthem.

      > My coworkers were arrogant and
      > unfriendly. Imagine a bunch of
      > clowns that only rock off whites
      > or yeezy's.

Goodness gracious! The horrors!

Then again...

      > They quickly examine the shoe,
      > check the bottoms and inside to
      > make sure its not worn, sniff it,
      > and put the green tag on it.

...

      > sniff it

I think I can understand the moodiness now.

</comment></comment></comment><comment><USER6> [https://stockx.com/adidas-yeezy-boost-350-v2-cream- white](https://stockx.com/adidas-yeezy-boost-350-v2-cream-white)

Lowest ask: $230, Highest bid: $425

At first glance this is backwards because "buy low sell high". Then I realized those prices includes all sizes. So if you look at each size it makes sense:

Size 12: $233 ask, $215 bid

Size 16: $572 ask, $425 bid

The ticket/graphs show sales at all sizes, which is useless as an indicator of trends at the sizes you want/have.

</comment><comment><USER7> The whole value add of this company vs Ebay is that they are supposed to have "experts" verifying the authenticity of the shoes. I recently read an account where they pretty much hired someone off the street and had him verifying a shoe per minute on his first day. I ordered a pair of Yeezys from them 2 weeks ago and was some what concerned with the fact they verified and shipped my pair out the same day they received it from the seller...

</comment><comment><USER8> I'm a decent sized reseller and stockx is amazing.

First off all my sneakers are legit and purchased straight from the company (adidas from adidas.com, nikes from nike.com, etc). I tried setting up a website to sell my sneakers and I didn't fare well as nobody really trusts some random site.

Stockx legitimized my selling, taking care of that entire issue. I get less money than I would through direct sales but I have zero legwork. I automated the process so as soon as I receive product, it's posted on stockx for sale. When sold, I simply print the shipping label and take it to the UPS store.

I know that there will always be issues with legitimacy but if they continue making it easier for legit sellers to move product, we'll crowd out the scammers who don't have nearly as much volume. Authenticating a pair of shoes shouldn't take that long. When releases happen, stockx gets a large number of the same exact shoe. They can compare one sellers to anothers and see if there are differences. If I send in 10 pairs of Yeezys that are legit, they'll be able to spot the 1 pair someone sent in that isn't the same.

Also in regards to Mr. Lubers statement about restocking. It's less common than you think and very rare sneakers are often never restocked at the level necessary to destroy demand. In fact, in some instances a company will put out a rare sneaker years later (Jordan Brand calls these "retros") and unfortunately the quality has slipped over the years. So retros that are worse quality remakes of older models can raise the valaue of originals. I usually sell unsold pairs before restocks happen as it brings the value of them back to really profitable levels.

</comment><comment><USER9> I had the unique and very dystopian experience of StockX irrevocably banning me (as a purchaser) from their platform because I hit some fraud flags. No requests for verification or alternate payment method, just an outright "no, we won't sell to you, period". I emailed their CEO, no reply.

No troubles with goat.com, so they get my business instead.

<comment> ryan-c Any idea what you hit?

</comment></comment><comment><USER10> > Mr. Luber, co-founder of StockX, an online trading platform for sneakers, > streetwear, handbags and watches, hates when companies disrupt his market > strategy. "The one thing that breaks the supply-and-demand model and the > purity of it in the secondary market is when brands artificially f--- with > it when they restock stuff," said Mr. Luber

What purity? You're running a resale market for shoes that are scarce in the same way rare Magic cards are scarce: entirely at the whim of the company. That's what supply-and-demand is like when there's a monopoly on supply!

<comment><USER11> Except WotC destroyed the printing plates for the rarest cards. So they would only ever be able to reissue but never reprint.

<comment><USER12> Regardless of whether you want to call it a reissue or a reprint, doing so for, e.g., the Power 9, would decimate the secondary market value of those cards, as a lot of that value comes from people who buy them to play the Legacy or Vintage formats. Obviously collectors would still place a premium on the originals (assuming you could actually tell them apart), but it would still have a devastating effect on the "investors".

<comment><USER13> Right, which is why you should never see such things as an "investment", but rather as a collectors item.

<comment><USER12> There's plenty of people that make full-time livings on buying, selling, and trading collectibles, Magic cards included. You just have to accept that if you live by the sword, you can die by the sword too.

The trichotomy I use is investment, speculation, and depreciating asset. Examples of the first would be stocks in a publicly traded company or an investment property with positive cashflow. Examples of the second would be cryptocurrencies, trading cards, or rare automobiles. Examples of the third would be consumer goods or commonplace automobiles.

It really grinds my gears when someone says something like "You need to invest in a good gaming PC." No, that's not an investment. It's not even speculation. It falls squarely into the depreciating asset (i.e. worst) category. You're guaranteed to lose more and more money on that over time, until it loses all value.

</comment></comment></comment></comment></comment><comment><USER14> TIL the Wall Street Journal thinks tracking prices longitudinally is a stock market. Where on StockX can I buy a share of ownership of a luxury watch?

<comment><USER15> It pretty literally says that it is a secondary market and not your interpretation of the headline.

Its more like the journalist and developer knows how to make a product relatable. Take notes.

<comment><USER16> The headline says "stock market" for Nikes. I interpreted it as sort of like a game where you could flip Nikes or bet on the price of them or something.

If it's a secondary market like Ebay, say so. That's _much_ more straightforward.

<comment><USER15> The subtitle says secondary market, after saying something relatable in the headline.

<comment><USER17> _The subtitle says_

Getting to this point would have required reading past the headline.

<comment><USER15> Which less people would have done if the headline said "Secondary Market"

</comment></comment></comment></comment></comment></comment><comment><USER18> StockX is an interesting company. I am a former employee there from the engineering side of things. While a lot of great people work there and they are a "hot" startup in Detroit, I would never recommend anyone take a position there. Their leadership is unfortunately not a very trustworthy set of individuals and their culture is very toxic. They attract a lot talent because they can pay for it.

In the early days their authenticators took great care to verify every item that came in and they were proud of the service they provided. It sounds like they have had a tough time scaling this part of the business.

</comment><comment><USER19> On a different note, StockX is a Detroit-based startup. It's awesome to see the area's tech scene begin to thrive.

<comment><USER20> Not that it's not bad UI but the high and low bids are for different sizes.

</comment></comment><comment><USER21> From what I can see there is no way as an end user to verify the quality of the goods being shipped.

The whole point of an exchange is the things being traded are fungible.

I see lots of rolxes being traded, but are they real? have they been used? are they grey imports? I don't see how you're supposed to trust anything thats on there.

<comment><USER22> The real value add that Stockx provides is verification of authenticity where they employ specialists to do the verification work. Their competitor GOAT also does the same thing but focuses on sneakers.

</comment></comment><comment><USER23> There's already a large and trusted market for reselling verified used Rolexes: HQ Milton, Bob's Watches, Crown and Caliber, the list goes on and on. This doesn't seem very new, at least for the watches.

</comment><comment><USER24> [https://outline.com/5LPxXv](https://outline.com/5LPxXv)

</comment><comment><USER25> Why does something like this work vs eBay?

Sorry if this was addressed in the article, but there was a paywall to read.

<comment><AUTHOR> Excerpts from the article:

Tracking sneaker values has long been Mr. Luber's obsession. In the late 2000s, he was a strategy analyst at IBM in New York who spent his nights trawling eBay for data on how much sought-after shoes were selling for on the secondary market. He compiled those figures into Campless, a sort of Kelly Blue Book for sneaker-resale value. But Mr. Luber wasn't satisfied with eBay. His beefs weren't limited to the bad photos that sellers posted or their habit of selling fakes. What really bugged him was the absence of price standardization. One dealer might peddle a pair of Nike Dunks for $100 and another might list the same shoes for $300. Mr. Luber envisioned a more orderly market, with a New York Stock Exchange-style ticker, that would make the value of a pair of sneakers transparent, in real time. When those Dunks sold for $100, everyone on the market would know about it, thus forcing other sellers to knock their prices down to the going rate.

Around that same time, Dan Gilbert, the founder of mortgage lending company Quicken Loans, noticed that his teenage son was flipping sneakers on eBay for profit. Intrigued, Mr. Gilbert founded a research team on sneaker reselling who discovered what Mr. Luber was working on. Mr. Gilbert bought Campless in 2015 and the pair joined forces (along with COO Greg Schwartz), launching StockX, "the stock market of things," based in Mr. Gilbert's hometown of Detroit in February 2016.

Further mitigating risk for the buyer, StockX acts as a middleman for payment and does not release proceeds of the sale to the seller until the shoes have been verified. Carlos Chavez, 34, an engineer and part-time sneaker seller in Los Angeles, prefers using StockX (or GOAT, a newer rival app) to eBay, after he experienced a "chargeback," in which PayPalfroze his proceeds of a sale for two weeks because the buyer used a counterfeit payment.

"I've sold on both eBay and Grailed but the big reason I prefer StockX for shoes is to not be scammed," said Mr. Chavez, who in September used his funds from flipping sneakers to finance a vacation to Oaxaca with his wife. In a statement, an eBay spokesperson noted that it offers a money-back guarantee if a buyer identifies a counterfeit and that since 1998 it has had the Verified Rights Owner Program (VeRO), which allows brands themselves to more easily report fake items on eBay. Further, in October 2017 eBay launched "eBay Authenticate" which inspects and validates luxury items such as Prada handbags and Rolex watches.

<comment><USER26> I would pay $5-10 a month for a service that summarized articles in brief bulleted lists, and placed 'highlights' \- like your block of excerpts - <USER2> the bottom.

<comment><USER27> There is a startup doing that for books: [https://readitfor.me/](https://readitfor.me/)

<comment><USER26> Thanks for the rec. Not sure the information density of books has yet reached its nadir like news articles, such that I would pay for this.</comment></comment></comment></comment></comment>


No Comments - <AUTHOR> https://alxdavids.xyz/2017/10/09/no-comments/ <comment><USER2> The author's expanded definition of "weak accept" is perfect.

I'm in a different area of CS. I've had reviews where the reviewer clearly skimmed over the math details. Still, the totally blank reviews in this article would not be accepted by program chairs in my area. They would find a new reviewer or ask the original reviewer to try again.

<comment><USER3> Peer reviewing is considered duty to the academy but isn't tracked, publicized, or taken into account in e.g. lateral transfers, summer grants, or other things professors might want, right?

Is it harder to get a paper published in a given journal if you've blown off requests from them to peer review or done a crap job?

<comment><USER2> Suppose postdoc X submits a terrible review to a conference. Conference committee member Y requested the review from X, and thus learns that X is a bad reviewer. Later on, Y's colleague Z is considering hiring X for a faculty position and asks Y about X. Y tells the story about the terrible review. X doesn't get the job.

<comment><USER4> In my experience, reviews are typically anonymous.

<comment><USER5> In my experience with CS conferences, reviewers are rarely anonymous to anyone involved except the authors.

</comment></comment></comment></comment></comment><comment><USER6> This is great: "This is no ordinary adversary that you would expect to face in an academic review. This person sits in the chaotic neutral section of the d&d morality compass."

<comment><USER7> Though it's expecting the audience to know what that means. I would expect that a greater number of them would understand it than in the general population but I would think there'd be plenty who don't.

FWIW, I'm quite aware of what d&d is but I don't know what "chaotic neutral" means.

<comment><USER8> It is a two word summary of the following two paragraphs:

 _They join program committees for conferences, but they have a maniacal distaste for the peer reviewing system. There have been too many missed opportunities at the hands of ill-justified criticisms. They care so little for the process that they will actively try to sabotage it. They roll a d6 for each review and assign it the corresponding score. I was lucky this time, but many others haven 't been.

Usually, they take great pleasure in writing an incomprehensible review with no relation to the text they've read. But today is different, they only have one review to write. They rolled an accept, now the dungeon master exposes their bidding._

You would not ordinarily expect a chaotic neutral in academia. Academia is very bureaucratic, which fits with a Lawful alignment. A chaotic neutral character isn't even going to pretend to care about the rules. It makes you wonder how the hell they have remained in the system this long when they are so obviously phoning it in with no effort and no pretense at making at effort. It is such an obvious _fuck you and your damn rules_ attitude, it is incomprehensible how they have failed to get fired.

</comment></comment></comment><comment><USER9> I don't work in academia, but at my current workplace, we've removed the "Neutral" rating in our interview feedback system. You're required to pick a side, and you need to back up your position. If you really can't form a recommendation, the candidate has to do another interview (I haven't personally seen this happen).

That said, we also are able to set a maximum # of interviews per week that we will accept, and our time is respected. Perhaps the same cannot be said for peer review in academia.

It's one of the worst feelings for me when I give a talk or present a paper, get to the Q&A portion, and I'm met with crickets.

<comment><USER10> > It's one of the worst feelings for me when I give a talk or present a paper, > get to the Q&A portion, and I'm met with crickets.

If you know anyone in the crowd, it's a good idea to 'seed' the crowd with prepared questions or ask friends to kick off the q&a portion with a question of their own. We do this when we have guest speakers and it greatly improves the moral of the speakers and everyone goes home happier.

<comment><USER11> I thought this was a standard. I have been seeing this in play since highschool guest speaker sessions

</comment></comment></comment><comment><USER12> Almost as bad as the responses one can expect from job applications.

<comment><USER13> One can expect responses from job applications?

<comment><USER14> I had a software company put me into their newsletter list once.

<comment><USER15> Classy.

</comment></comment></comment></comment><comment><USER16> I have to say, life in academia does not sound appealing...</comment>


Rhine – A Lisp on LLVM - <AUTHOR> https://github.com/artagnon/rhine <comment><USER2> Nice, but the author could join efforts with one of the few attempts to have a native Clojure compiler instead.

Another remark, is that it would have been nicer to have the language being made in itself instead of OCaml.

Other than that, very nice work.

<comment><AUTHOR> Actually, there's a hidden motive behind not targeting Clojure: the eventual plan is to allow Elisp-like mutability so it can be used to build an Emacs- like editor.

I chose OCaml because of the relatively mature OCaml-LLVM bindings. A self- hosting compiler is a lot of work: it'll require Rhine-LLVM bindings first.

<comment><USER3> So you're building an Emacs-like editor on an Elisp-like language. What are you hoping to do differently than Emacs?

(Not being snarky, languages and text editors are both interesting projects and worth experimenting with, and combining the two is especially interesting to me.)

<comment><USER4> A new editor that copied emacs' good Lisp support and insane customizability via hooks for _everything_ but had an interface that was approachable for regular desktop users (tabs instead of buffers, good CUA-style keybinds out of the box, no surprising weirdness like nonlinear undo, etc) is about the single most important thing anyone could do to increase the popularity of the Lisp family. Right now, if you want to write Lisp, your choices are:

emacs, which is utterly unapproachable for newcomers, and will always be uncomfortable to use for people that grew up with "modern" desktop GUIs, because it and most of its userbase predate established interface standards and they like it that way.

DrRacket, which is a step in the right direction but is Racket-specific, bloated, slow, and somewhat buggy.

LispWorks, which is proprietary and prohibitively expensive unless you _sign up_ for and are allowed to use the crippleware version.

Given those choices, it's not surprising that most people just give up on Lisp and use languages that you could comfortably program in Notepad if you had to.

</comment></comment></comment></comment><comment><USER5> Someone mentioned the JVM interop of Clojure is it's main selling point. While its definitly awesome to have that great integration (I'm a heavy interop user), for me, the main strength is having persistent data structures at its base for everything. I myself played with the thoughts of creating a native runtime based on Clojure's syntax and data structures. I cant see that this project uses persistent data structures. Am I wrong? please enlighten me.

<comment><USER6> > for me, the main strength is having persistent data structures at its base > for everything.

Agreed, but also:

\- The ISeq abstraction

\- Software Transactional Memory for state management

\- Structure-sharing of the persistent structures, for added efficiency/performance

And of course, all the nice reader macros that make things so much easier to read.

This project is cool, but what I'd rather see is Clojure becoming parasitic, living on all the host VMs it can. We've got the CLR version, and ClojureScript for V8/JS, but we could also have it properly on top of Python, Ruby[1], Lua, Erlang, and LLVM.

[1]: I know Rouge exists, but I'm not sure how well it's progressing.

<comment><USER7> > Structure-sharing of the persistent structures, for added > efficiency/performance

I think the structural sharing is the definition of persistent data structures, as distinct from immutable data structures in general.

<comment><USER6> > I think the structural sharing is the definition of persistent data > structures, as distinct from immutable data structures in general.

Oh, yes, you are very much correct. I just wanted to highlight that is itself a feature of Clojure's behavior.

</comment></comment></comment></comment><comment><USER8> also [https://github.com/eudoxia0/corvus](https://github.com/eudoxia0/corvus)

<comment><USER9> Which is very interesting because statically typed!

Unlike Rhine, it's not Clojure inspired though.

</comment></comment><comment><USER10> I think the holy grail may be the combination of working in a very expressive high level language, but knowing and seeing exactly what that generates at the low level. (And in those few cases where it matters, being able to control/influence/change what it generates at the low level).

So this sounds pretty interesting.

<comment><USER11> FWIW, SBCL does exactly that. You can defun a function and disassemble it right down to assembly. What this project does is slightly different which is to use LLVM to achieve the same thing.

<comment><USER10> Yeah I realize that, but good point. LLVM is very interesting to me, but you're right that it's not as utterly low level as native assembly. It is the most interesting assembly ("assembly-like"?) language to me at this time.

I didn't know SBCL did that. Cool.

<comment><USER12> All CL's have a #'disassemble, although the output of it is left undefined.

</comment></comment></comment></comment><comment><USER13> What is the reason for using product of all primitive types for boxing instead of tagged union?

<comment><AUTHOR> Because one type may use more than one field. Vectors and strings use the nr field additionally, and functions use the vector/fenv field additionally. Instead of creating a hierarchy, I figured a flat structure would be easier to understand.

<comment><USER14> I was going to ask about this as well. It seems like there's a lot of wasted space in how things are represented. The first field already tells you what type of object you're dealing with. Since you're using 64-bit integers, you could represent pointers, bools, ints and floats all in the same memory space. I guess there might be some types that use more than one field, but certainly a bool is not going to.

There's also the issue of alignment with the usage of 1-bit and 1-byte types...

</comment></comment></comment><comment><USER15> Lisp? So, it runs Maxima?</comment>


Apple silent on mysterious noises from Sunnyvale complex - <AUTHOR> http://www.mercurynews.com/business/ci_29558045/ <comment><USER4> Since EVs are very quiet, it could be a rolls machine, which is basically a treadmill for a car. They are used for running tests on vehicles and are outrageously loud. They can be used during prototyping. In a car factory it's at the very end of the assembly line and sometimes used for debugging vehicles that have come off the line with issues.

<comment><USER5> In the automotive industry, we call them dynamometers. Though you'll never hear anyone say that, we just call them dynos.

<comment><USER6> Not necessarily, it could be a rolling road, which is more similar to what the OP described.

<comment><USER7> A rolling road is another term for a chassis dynamometer.

<comment><USER8> I thought a dyno is a mechanism that a standalone engine can be rigged up to on the bench to test it under (typically computer-) controlled conditions, measure its output, simulate different driving conditions, etc.

<comment><USER9> In N.A. generally that is referred to as an "engine dyno", and what's known in the UK and other colonies as a "rolling road" is a "chassis dyno".

<comment><USER5> I've never heard any term except dyno (or dynamometer), but I much prefer those terms simply because it's more apparent to someone that doesn't have an understanding of engine & car testing.

I'm a fan of names that give insight into what the thing/product/service/company actually does.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> This was quite the sensationalist piece. Maybe something is going on, but maybe the explanation is more boring. Since everyone is taking wild guesses, allow me to partake:

The building is Apple's HR center. The people there mostly write reports on health insurance utilization.

The noise is office remodeling. They do it at night because people are working during the day.

I have it on good authority that there are several capacitors in the building. They're mostly used to filter the output of switching power supplies. Why right now, there are probably hundreds of capacitors _inside your house_!

Give me a break.

<comment><USER11> And a "repair garage"!? What could that possibly be used for besides a secret new Apple car?

</comment></comment><comment><USER12> Well went thru the links and not one sound clip I heard of this noise - <USER2> I find equally just as odd, lots reports of the noise and clips of people getting there slot of TV fame, but not one link to the actual noise - <USER3> what I gleaned thru.

So who knows, just equally as odd no recordings I could find of this noise, though there must be some out there somewhere I'd imagine if it is that much of an issue.

<comment><USER13> Given the ubiquity of sophisticated cell phones and other recording equipment, it's best to regard the lack of a recording as strong evidence that it does not exist. Just as if multiple people claimed the Loch Ness Monster had surfaced in San Francisco Bay but somehow there were no photographs of it.

<comment><USER14> Cell phones have shitty mics (because physics).

You would need a condenser microphone for low level noises. Around $100.

TV camera crews have them, not even one stood around waiting for the sounds?

<comment><USER15> Even better, hang it from a 20' cable below a drone and fly it over. Stream the audio back in case they somehow manage to disable the drone. I'm sure lots of people in the Bay Area have the equipment right now to do this, just a matter of if anyone cares.

<comment><USER16> You'd need a good wind blocker on the mic, and you'd get a lot of drag from the 20' cable, but this seems doable.

<comment><USER17> Pardon my ignorance, but is it really feasible for a drone to carry a 20 foot cable with a mic? Wouldn't it drag pretty far behind the drone, making it unwieldy? Wouldn't you need 20 additional feet of clearance to avoid obstacles? There aren't a lot of tall buildings in Sunnyvale, but there are birds and other drones in the sky.

<comment><USER16> I think this thread is a bit pie in the sky and a bit of "just for fun" impracticality, but I do think one of the bigger octo drones, carefully piloted, could pull it off.

<comment><USER15> Remote-activated cable reel. Roll it up and get into position, then lower the skyhook. Pack it back up and fly off into the sunset! Now I want to do this. Yes you'd need a big wind screen (they make those and they're not crazy expensive) and a fairly large drone to deal with the extra weight of a condenser mic + XLR cable + 48v phantom power circuit + any reel mechanism, but considering the payload capacities of current drones in the 1-2kg range for a DJI Phantom 2 ( [http://www.phantompilots.com/threads/flying-at-high- density-...](http://www.phantompilots.com/threads/flying-at-high-density- altitude.47132/#post-455124) ), it would require some engineering (and maybe removing the mic from the heavy casing or finding a really light mic), but definitely not impossible or even very challenging to do with off-the-shelf stuff and a bit of diddling.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER18> Looks like a small data center under construction by converting an existing building. Large amounts of HVAC equipment for the size of the building. Cooling towers. Big fuel tank. Cummins Diesel emergency generator, size around 1MW. Lots of electrical conduit on outside of building.[1] Picnic area and half basketball court. Several construction trailers on site, so some remodeling is going on. Beeping trucks and banging on sheet metal sounds like HVAC work.

It's annoying the neighbors because it's directly across a drainage ditch from suburban houses. Nobody likes nighttime industrial construction opposite their backyard.

[1] [https://goo.gl/maps/dcK3MjKdh822](https://goo.gl/maps/dcK3MjKdh822)

<comment><USER19> A residential area in Sunnyvale seems like an inopportune place to put a data center.

<comment><USER20> Why? Not an expert on DC location or construction. What makes it any better or worse than somewhere else?

<comment><USER21> \- land price

\- water/electricity price

\- local wages

\- internet bandwidth

<comment><USER22> I know of at least five large data centers in the Sunnyvale / Santa Clara area.

<comment><USER23> Mind sharing names? My company shut down its Santa Clara DCs around two years ago for reasons mentioned elsewhere in this thread

<comment><USER22> A quick Google search would easily answer this for you, but I'll oblige.

Equinix SV2, SV4, SV6 are all in Sunnyvale/Santa Clara, but Equinix also has 4 more very close by in Palo Alto, Mountain View, and/or San Jose.

CenturyLink has two DCs in Sunnyvale.

You can find a dozen more listed here:

[http://www.datacentermap.com/usa/california/santa- clara/](http://www.datacentermap.com/usa/california/santa-clara/)

And this doesn't include the many privately held by major internet brands in the Valley.

<comment><USER23> Thanks. Should've googled it myself. One of the first things I got to do when I joined my company(first job, just moving into the valley) was to tour our soon-to-be-dead DC. Was a really cool experience.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER24> Apple is just generating some buzz.

<comment><USER25> Not sure if how company who netted $18 billion in their last quarter needs to generate buzz.

Either way, bringing a car to market is a wise move for Apple never struck me as a great idea. I've always suspected there's just too much good will and little-guy championing for Tesla to make Apple's offering a thing we want to own. Tesla vehicles are also incredibly well designed, aesthetically pleasing, and have a tonne of respect for laying the groundwork for this emerging industry.

Could it have been better for the brand to partner with Tesla and restore some credibility? Not sure. But I do predict they'll call this thing the Apple Auto.

<comment><USER26> Now I'm just hearing a loud woosh.

</comment></comment></comment><comment><USER27> How about, oh I dunno, actually posting a recording of the noise?

</comment><comment><USER28> Another article from Mercury News.

[http://www.mercurynews.com/business/ci_29558045/apple- silent...](http://www.mercurynews.com/business/ci_29558045/apple-silent- mysterious-noises-from-sunnyvale-complex)

<comment><USER29> Thanks. We changed the URL to that from [http://www.sfgate.com/technology/businessinsider/article/Nei...](http://www.sfgate.com/technology/businessinsider/article/Neighbors- can-t-stop-talking-about-a-loud-hum-6858193.php), which sees less substantive.

</comment></comment><comment><USER30> I'm curious about the words "working-class neighborhood". Is this tongue-in- cheek? I've been trying to find housing in that area and it's on par with East Bay, if not worse.

<comment><USER28> I rented over there after college. I think working class is accurate. Lots of work trucks parked in the street, caltrain in the backyard and families with not a lot of income.

</comment></comment><comment><USER31> Perhaps they are working at night because it would make it very difficult for personal drones to get good imagery.

</comment><comment><USER32> I stay right besides sunnyvale apple office but have never heard of anything! :/

<comment><USER33> This isn't _at_ the Sunnyvale office; it's an unbranded black site. Perhaps they interrogate their Google captives there as well; it's just about halfway between Apple and Google HQs.

It's a theory.

</comment></comment><comment><USER34> "One reason why Apple could be working at night is that electricity is cheaper then" Is the author serious?

<comment><USER35> Are you?

[http://www.pge.com/en/mybusiness/rates/tvp/toupricing.page?W...](http://www.pge.com/en/mybusiness/rates/tvp/toupricing.page?WT.mc_id=Vanity_TOU)

Instead of a single flat rate for energy use, time-of-use rate plans are higher when electric demand is higher. This means when you use energy is just as important as how much you use. Winter has two rate periods: off-peak and partial-peak. Summer has three: off-peak, partial-peak and peak. During peak periods, defined as weekdays from noon to 6 p.m., May through October, your business's electric rates will be higher. In return, time-of-use rate plans at all other times will be lower than the peak rate. All business customers will transition to time-of-use rate plans over the next several years, as required by the California Public Utilities Commission.

<comment><USER36> Doesn't California also have some the most expensive electricity in the US?

<comment><USER37> We're talking about a company with $200 billion in cash lying around. They could build a few large nuclear plants without making a significant dent in that pile of money.

</comment></comment></comment></comment><comment><USER38> Question: Do you not have noise complain laws in the US? I mean if some company is producing that noise, waking people up, I would start calling the cops on them every time it happens. And regarding the security guards, maybe a daily pick-nick on the public property outside the buildinge would be a nice way to point the middle finger at them :) Just my two cents...

<comment><USER39> We have noise complaint laws, sure. They're different depending on the jurisdiction, of course, but they exist.

And as for the security guards, it doesn't sound like they're protecting public property. Depending on the laws in that area publicly accessible does not imply that people are allowed there, just that they can easily get there.

</comment></comment><comment><USER40> It's so real in fact, theres a new website for apple car fans called applecarfans.com

</comment><comment><USER41> Maybe Dr Dre setup a studio there for Beats Music.

</comment><comment><USER42> "Something is going on in there...I can't tell you what"

And people say investigative journalism is dead.

</comment><comment><USER43> My conspiracy theory:

"Guys, turn these loud speakers on tonight. Trust me the press will go nuts!"

Must be nice to be Apple :)

</comment><comment><USER44> Is there a recording of the noises?

</comment><comment><USER45> Someone go throw a drone up and get a live feed with audio. Problem solved.

</comment><comment><USER46> My God! Reversing trucks that make a beeping sound! Bangs! Thumps! This is quite extraordinary. Certainly not the kind of thing you would expect from almost any warehouse or industrial facility of any kind in the world.

</comment><comment><USER47> Induction furnace?

<comment><USER48> Heh. This reminds me of the mystery in the movie The Burbs.

</comment></comment><comment><USER49> Circumstances do not permit me to comment, but I would advise the neighbors to stock up on silver bullets and pray that the containment field holds.

<comment><USER50> Nah, probably it's the new iRaptor, considering how close they are with Genentech.

<comment><USER51> Judging from the product placement in the new Jurassic World movie they are much closer with Samsung.

</comment></comment></comment><comment><USER52> Getting a head start on their own pre-mined crypto-currency?

In reality probably just something mundane, Apple does secrecy well, and this would just be amateur

</comment><comment><USER53> Maybe Apple didn't hear the question?

</comment><comment><USER54> It's probably just Bubbles working away on his carts!

</comment><comment><USER55> I'm expecting overhead drone imagery on YouTube in 3...2...1...

</comment><comment><USER56> Probably just testing a new sleep app that triggers the Inception horn through giant Beats speakers when you reach REM stage.

</comment><comment><USER57> Quite obvious. The sound and the apple car is just them trying to get a DeLorean to travel back in time. That way they can get Steve Jobs back.

<comment><USER57> Wow - nobody thought this was funny?

</comment></comment><comment><USER58> What the hell is he building in there? We have a right to know.

[http://youtube.com/watch?v=JaLjwSpZ6Cs](http://youtube.com/watch?v=JaLjwSpZ6Cs)

<comment><USER59> He has no friends

but he gets a lot of mail</comment></comment>


The Ultimate Guide to Remote Work [Infographic] - <AUTHOR> https://blog.toggl.com/2017/06/remote-work-infographic/ <comment><USER2> What the article doesn't mention is remote workers are less often promoted. It's psychological - out of sight, out of mind. By default coworkers don't see you, only when you say something. In an office a manager will often pass by, and just by noticing someone will have a random thought about him. Like, "this guy has been doing really good recently, he deserves a promotion". I'm saying that you have to work harder to establish the same level of presence. You have to make an active effort you make yourself visible.

<comment><USER3> Great point about career progression. Haven't thought about that, but it just could be due to the mentality on the organsatons I've worked in.

I think that this kind of mentality could be fading away, in time, as more and more organisations require (or just accept the fact) that people prefer to work remotely 1-2-3 days per week. That boosts morale (for me) since commuting is a BIG productivity killer especially in cities with populations way over 5M.

I guess the biggest challenge is that for some people it is difficult to adjust to working from home because they may lack the to "train" themselves, or lack the space, of have the kids, etc.

But "we" (work-from-homers) are winning!!

</comment></comment><comment><USER4> Though the processes like agile promote co-location of teams. I tend to agree. Co-location makes a lot of discussions much more efficient. Everybody in one room still communicates faster than with remote communication tools which break up, break down, or are just harder to follow because you don't see the person(s) (even with cam). Also interruptions are much harder to follow remotely.

Next, you don't get the coffee table buzz. You don't get insight in your trouble by these random meet ups with people which you don't work with daily but you still share your work with. Quite often they happen to know someone who did the same already (especially in enterprises) or can help you out.

Yes, you can have too many meetings but working from home is not the only solution to fix that problem.

Also, why is the part on how a home office should look like in the picture. Everybody should make their own work environment but it must be tidy? What kind of freedom is that?

<comment><USER5> Maybe some want to have some work done instead of endless discussions and coffee table buzz? Remote tools work very well, and what's more: you have logs, even you were not present at the time. You get a nice async mode without falling out of the loop.

<comment><USER4> The time logs were an accurate capture of what was spoken of are virtually nonexistent. Sure, it captures whatever the writer thought important but it also didn't capture all the little side talks which will save you two weeks later when you remember a person mentioning it.

As I said, you can also simply decline the meetings you know. Just go to the ones that have an agenda that suits you. If there is no agenda, don't go. If you work from home to escape meetings it is definitely not worth it. I'm convinced remote meetings are a downside of the remote working, not one of its pros. It has pros, like no commute. But when the commute is only 15-20 minutes I'd say it pays off to have your workers in one spot.

Just don't set any expected hours. If a person wants to leave at 2pm don't ask questions. He obviously has something to do. Groceries, doctors appointment, exercise, having a beer in the garden; it shouldn't matter.

</comment></comment></comment><comment><USER6> Remote working is another buzzword loosely and sometimes cynically interpreted by corporations. Case from real life - the person in particular location (outsourcing center) is the only member of the team which is located entirely in a different location. The person has to be daily in the office and communicate with the remote team. A "remote work" but... from the office!

</comment><comment><USER7> That hourglass is really annoying.

It does have a hide button, but you have to click the hourglass first, something that years of annoying ads have trained me NOT to do.

</comment><comment><USER8> Ultimate guide, sure as hell. Only that it boils down to "use Trello and our own time management tool".

Not sure why this ended up on the frontpage.

</comment><comment><USER9> So, why is the one big thing I noticed about this info graphic is the mis- spelling of "wether"?</comment>


Isetta - <AUTHOR> https://en.wikipedia.org/wiki/Isetta <comment><USER2> In 1965 I took my driving test in a BMW 600, the two-cylinder big brother to the Isetta. Here's a photo of the car and the rest of my family's fleet of cars and motorcycles as of 1966: [https://imgur.com/a/ria9buN](https://imgur.com/a/ria9buN)

</comment><comment><USER3> If you are into this kind of machines, there is a nice auction sale in a few days: [https://www.classicdriver.com/en/auction/dorotheum- sammlung-...](https://www.classicdriver.com/en/auction/dorotheum-sammlung-rrr- roller-rollermobile-raritaten-10-july-2020) => most of those cars are really surprising, even though I've already seen some in real life at car events, it's engineering optimised and minimised!

<comment><USER4> Wow, those are cheap in Europe. In the USA they go for $30,000+ [https://bringatrailer.com/bmw/isetta/](https://bringatrailer.com/bmw/isetta/)

</comment></comment><comment><USER5> My maths school teacher had one of these. It did not seem that unusual at the time even though there were few on the roads. Nobody laughed at him for having such a 'car' and we were well versed as school kids at picking on people.

I wish cars could be more like the Isetta and less like tanks. With driver aids such as ABS and the like we could have electric cars like the Isetta with safe roads. However the horse has left the gate on that and we are doomed to a future of vehicles built like tanks.

<comment><USER6> Small vehicles have been killed by regulation. No chance to build a two-stroke engine anymore, at least for a car. Expensive crash test regs. Noise and pollution regs. And, if you do electric, heavy batteries.

<comment><USER7> You may be correct about crash and other safety regulations, but the BMW Isetta was powered by a 250cc single cylinder four stroke engine adapted from a motorcycle. That class of engines is quite alive and kicking, they have substantially increased in power output in the mean time.

</comment></comment></comment><comment><USER8> This immediately reminds me of the Top Gear feature on the smallest car in the world: the Peel P50 - the relatively behemoth-like Bubble Car (Isetta) makes a fleeting appearance in the introduction.

[https://www.youtube.com/watch?v=dJfSS0ZXYdo](https://www.youtube.com/watch?v=dJfSS0ZXYdo)

[https://en.wikipedia.org/wiki/Peel_P50](https://en.wikipedia.org/wiki/Peel_P50)

</comment><comment><USER9> Interestingly, there seems to be an obvious modern recreation, the Microlino:

[https://microlino-car.com/en/microlino](https://microlino- car.com/en/microlino)

<comment><USER10> And less obvious ones, like [https://www.ellenator- gmbh.de/](https://www.ellenator-gmbh.de/) which exists solely to exploit a legal loophole to get something that is arguably more dangerous than a car into the hands of people who are not licensed to drive a car.

<comment><USER11> Exploit loophole? L7e class seems very intentional, and the vehicles are pretty much explicitly designed for those?

<comment><USER12>
        > Der Ellenator ist der erste PKW, der mit 16 Jahren gefahren
        > werden darf, da er trotz 4 Räder als "Dreirädriges Fahrzeug"
        > Fahrzeugklasse L5e eingestuft ist.

        > The Ellenator is the first car that may be driven at the age
        > of 16, because it is classed as a "three-wheeled vehicle" in
        > vehicle class L5e despite having four wheels.

Registering a four-wheeled car according to regulations for three-wheeled cars sounds like exploiting a loophole to me.

</comment></comment></comment></comment><comment><USER13> If you want to see it in action, Jeremy Clarkson took one for a test drive.

[https://youtu.be/pwDZqAW8M4I](https://youtu.be/pwDZqAW8M4I)

<comment><USER14> also urkel [https://youtu.be/1hcvhXup2k8](https://youtu.be/1hcvhXup2k8)

</comment></comment><comment><USER15> Notable auto-youtuber-now-ecommerce-founder Doug DeMuro has an in-depth tour and drive with an isetta. It's one of his earlier videos.

[https://youtube.com/watch?v=k0dEzY-xld8](https://youtube.com/watch?v=k0dEzY- xld8)

<comment><USER16> I didn't know that Doug DeMuro had done an episode on the Isetta. I love his presentation. His geeky joy in driving any car, whether ultra luxury, or just plain odd, is infectious.

</comment></comment><comment><USER17> That's exactly what we need. It boggles my mind how most of the huge cars I see on the road are occupied just by one person.

<comment><USER18> Much of the extra weight in the modern car is due to safety and environmental mitigation equipment. All of those crash cages, crumple zones, airbags and the like add weight and size. So do things like complex fuel management systems and catalytic converters. Of course, these are well worth it in added safety and cleaner emissions, but they do limit the minimum size and weight. And that's before one gets to all the "extra options", that are often not optional any more.

<comment><USER19> Yeah, that was my first thought on seeing the picture - does it _have_ a crumple zone? Since the door is in the front and you're expected to climb out through the sunroof in case of a crash, I imagine it's not the sort of thing you want to ride anywhere you wouldn't ride a bicycle.

That said, city streets that only had dense electric vehicles that don't go past 20 mph (maybe a mix of things like this and buses/streetcars) would be delightful.

<comment><USER20> I wonder how much of vehicle usage is "I want to carry big things around that don't fit on an electric bicycle" and how much is "I want to get somewhere fast".

</comment></comment></comment></comment><comment><USER21> Reminds me of tango hybrid narrow car featured in silicon valley series.

<comment><USER22> The manufacturer's website is still up: [http://commutercars.com/](http://commutercars.com/)

The site hasn't been active in years, but if you've got $240k burning a hole in your pocket and need a quirky kit car, can't hurt to see if anyone's home.

</comment></comment><comment><USER23> There is one on display the BMW Zentrum museum in Spartanburg, SC: [https://www.bmwgroup-werke.com/spartanburg/en/plant-tours- ze...](https://www.bmwgroup-werke.com/spartanburg/en/plant-tours-zentrum- museum.html/)

</comment><comment><USER24> [https://en.wikipedia.org/wiki/Messerschmitt_Kabinenroller](https://en.wikipedia.org/wiki/Messerschmitt_Kabinenroller)

</comment><comment><USER25> I vaguely remember a BMW marketing ad - I think these were used to smuggle dissidents from East Berlin to West, at great personal risk to the owner of the vehicles...

</comment><comment><USER26> Paul Carmody has a speaker design that I guess was named after this car: [https://sites.google.com/site/undefinition/isetta](https://sites.google.com/site/undefinition/isetta)</comment>


Make HTTP requests over ZeroMQ with Zurl - <AUTHOR> http://blog.fanout.io/2012/09/26/make-http-requests-over-zeromq-with-zurl/

<comment><USER2> Nice. Does it use exactly the same protocol as Mongrel2? i.e. if I point Mongrel2 at Zurl is the result a transparent HTTP proxy? If so, that's really cool.

Having symmetric client and server APIs is awesome because you can reuse identical middleware. e.x. say you have "Cache" middleware:

        cachingClient = Cache(client)
        cachingServer = Server(Cache(yourApp))
        cachingProxy = Server(Cache(client))

EDIT: Also, why the heck does it depend on QT? :-/

<comment><AUTHOR> Sharing the protocol with Mongrel2 would be highly amusing. :) The reason it doesn't is because having to use Mongrel2's request format wouldn't be very intuitive from a user's perspective. Zurl accepts a verb and URL as input, which I think is the most straightforward. I wouldn't be opposed to Mongrel2 compatibility though, if it was done in some optional way, such as maybe detecting the input format. Dealing with uploaded temp files may also be a little awkward. While Zurl's protocol is inspired by Mongrel2, I did take some liberty in tweaking it for the better (e.g. streaming in both directions without needing files, and packet sequence numbers).

And Qt is great. :) Zurl only depends on the core and network libs.

<comment><USER3> Indeed, Qt is a great C++ API, although its design style is quite different from STL, boost and friends.

In particular, Qt is a very good example of a well-designed exception-free API. That is, it doesn't make any use of exceptions, and yet you don't have to check for error code after each low-level operation.

For almost every class, Qr provides sensible "null-like" objects, i.e. they don't simply return stuff like NULL pointers, or JavaScript-like "null" objects that crash a bit later (when you try to access properties). You just get an object that behaves sane to the most possible extent, so mostly it simply doesn't matter to your code that some operation returned a null-like object. And in those rare cases where it does, you usually have to check later, and only once, in your code. You don't have to check after every single step.

This is quite hard to describe, but I think that sensible null-like objects make it possible to combine all advantages you usually get from using exceptions, without the disadvantages that arise from disrupting your control flow (which would make it harder for you to reason about your code and to ensure proper cleanup after each operation).

All in all, the Qt API taught me a lot about design concepts you usually don't find in other APIs.

</comment></comment></comment><comment><USER4> This puts a process boundary between my HTTP stack and the rest of my app. I know some people want to do that, but I've never understood why.</comment>


Setup EC2 Instance Management with Ansible and 10 Commands - <AUTHOR> http://blog.apcelent.com/setup-aws-ec2-instance-management-ansible-10-commands.html?utm_source=hackernews&utm_medium=marketing&utm_campaign=blog <comment><USER2> Could you also talk a bit of detail as to how, once the setup has been done, one can go about provisioning the EC2 instance? In fact, provisioning instances, setting up softwares and packages are what are important.

Would like to hear the thoughts on those lines.

</comment><comment><USER3> A blog post is not a Show HN. Please read the rules:

[https://news.ycombinator.com/showhn.html](https://news.ycombinator.com/showhn.html)

<comment><AUTHOR> I had read the article, I assume the commands satisfy the criteria -

1\. People can play with.

2\. HN users can try it out, give you feedback, and ask questions in the thread.

I might be wrong, but awaiting your thoughts/clarifications.

Thanks!

<comment><USER3> I'm sorry but unless I'm missing something, I don't think that rises to the level of "something you've made that other people can play with".

</comment></comment></comment><comment><USER4> this seems to be a really clever way of implementing it.</comment>


Praising Kernel (The Axis of Eval) - <AUTHOR> http://axisofeval.blogspot.com/2011/08/praising-kernel.html

<comment><USER2> Kernel the language can be found here: <http://web.cs.wpi.edu/~jshutt/kernel.html>

Where the author mentions that it is related to his doctoral dissertation, _Fexprs as the basis of Lisp function application; or, $vau: the ultimate abstraction_ [1].

[1] <http://www.wpi.edu/Pubs/ETD/Available/etd-090110-124904/>

</comment><comment><USER3> I think I'll use this opportunity for a shameless plug: <https://bitbucket.org/AndresNavarro/klisp>

This is my ongoing project for a Kernel interpreter. It's already functional and it even has documentation. It is still, however, a work in progress!

</comment><comment><AUTHOR> Also: have a look at <https://github.com/manuel/schampignon> (an interpreter for a Kernel-like language)

</comment><comment><USER4> I generally agree with alot the autor said and I will surly check out kernel.

About JITs \</comment><comment></comment><comment>----

I agree that Scheme missed the JIT thing. Most Scheme compiler are AOT but Scheme would be nice to do research in JITs for dynamic languages. Now we have it in JS witch is more complicated. It would be nice if there would be a fast and small JIT for Scheme that is good for learning. is there something like that? I know Racket has something like that but Racket is much more then just a JIT for Scheme.

About Clojure \</comment><comment></comment><comment>----

I think the author missunderstands Clojure (not just in this article). The "see the need (... of eval)"-statment was not about eval in general. Clojure has eval. The statmand was about having eval in ClojureScript (Clojure that AOT Compiles to JS) and there is not a priorety because its need is much less then the usfullness.

Clojure wants to be practical now and not be revolutionary. It never said it want to be ideal it just makes the best of what we have.

</comment><comment><USER5> I've read about Kernel before, but this time I wondered if $vau is in any way related to 0 from Jot (the turing tarpit best apparently best used as a Goedel numbering).

Maybe I should just write jshutt...

<comment><USER6> there are certain similarities to other very-low-operator-count languages - the big difference is that with Kernel's fexprs, you can go from this handful of operators to a fully-featured language more expressive than Scheme, and do so with style. See the R-1RK - it builds up the whole language, sequentially, from the built-ins:

ftp://ftp.cs.wpi.edu/pub/techreports/pdf/05-07.pdf

</comment></comment><comment><USER7> Unrelated to the content of the article but by the UI - is it just me or does have pitch black background with white text is a bad design for the eye?

<comment><USER8> It's not just you. White text on a black background is HORRIBLE design. That's why my Readability bookmarklet sees a lot of use.

</comment></comment><comment><USER9> Not that it makes a difference, but I believe R6RS provide first-class environments, too: <http://www.r6rs.org/final/html/r6rs-lib/r6rs-lib- Z-H-17.html>

Edit: After looking through the Racket docs, I believe I was referring to were its namespaces.</comment>