Ask HN: YC rejection - <AUTHOR> Just got rejected with http://www.appodeal.com/, mobile ad revenue optimizer.
I applied with the following video: https://www.youtube.com/watch?v=DdR_2AODciE&feature=youtu.be
Even though we are very close to break even and have a verified business model and growing fast, it did not work out.
I guess single founder is one of the reasons.
"adtech" I imagine, could be another reason.
May be I just did not do well on the video.
Anyway, would love to hear feedback from the community and will continue to grow the company. <comment><USER2> The only feedback you need is from your customers--everything else is just bullshit and navel-gazing. Unless pg or sama is going to cut your company a check (and your rejection suggests that they won't), their approval or acceptance shouldn't matter to you one iota. That you didn't get into YC doesn't matter, and doesn't reflect poorly on you or your business.

Get back to work. :)

<comment><AUTHOR> Well, I believe it is worth it to stop talking to customers and coding for a moment and try to analyze, why the heck you did not get approved to YC.

I'm not upset, actually it's a good thing that I don't have to give out 7% of my company for $15k. But nevertheless, worth it to analyze.

<comment><USER3> it's no longer 15k for 7%, isn't it? it's 120k

no sane developer would trade his idea he spent several months working on for just 15k, even if it's YC. That's not how investor's market is right now.

<comment><AUTHOR> I was not aware of that :)

<comment><USER3> sorry, I don't think it makes you feel any better :)

but hey, make a first million, have a successful exit - next time apply with a billion dollars idea - they'll take you seriously!!

</comment></comment></comment></comment></comment><comment><AUTHOR> Frankly speaking, this is my second rejection to YC. In 2013 we applied as a team of 4 with a secure mobile instant messenger.

We did get an invitation to the interview, however did not pass it. I guess last time we did not convince them, the our team could execute. Official response from Paul, however, stated, that we lacked a well-done marketing plan.

<comment><USER4> You lacked a marketing plan or you lacked a road to market? Do you remember how it was phrased? (Just curious)

</comment></comment><comment><USER3> Yes single founder is definitely an issue for them, However I am surprised they didn't even invite you to the interview. Are you currently in US? Could be a reason.

Anyway looks like you are doing great, if you ever want to do something together - let me know, I'd love to know more about how many people you guys have and for how long have you been operating etc.

I am getting a sense that you either should have a strong founders team or a lot of traction\revenue with an opportunity to become very big. In your case maybe having a team of people also "too late for YC", and you can become successful on your own.

I also heard that they don't like video made of pieces, who knows what some alumni might not like when he sees your application.

Regards,Alexandr firstname.lastname@example.com

<comment><AUTHOR> Thanks for the feedback. I would love to learn more about your product. Lmk if you want to meet for a coffee in SF downtown.

Yeah, I live & work in San Francisco at Rackspace co-working space on Folsom. It's a great place to be. Definitely recommend to everyone.

Always glad to share about myself & Appodeal.

I've been working on it for almost a year now.

There is a team of 12 super strong developers in Russia & Ukraine, that have been working with me for 4 years already. Very loyal. I myself have a strong technical background and remote teams management experience.

Business & sales team consists of me, my operating director and a first sales guy we are going to hire next week and we are all here in SF. So we have a pretty strong tech team (because we don't compete for developers with Google/Facebook). And we have business presence in SF as well.

Traction is pretty good too. We've launched in January and already have $200K monthly revenues and some net revenues as well. Each day we receive 15-25 new sign ups and retention is close to 100%. We are about to launch aggressive marketing this month.

</comment></comment><comment><USER5> How did you get the revenue you have today?

I'm just curious how you started this thing and developed it.

</comment><comment><USER6> I like your idea. But sadly I am in no position to help you. I wish you good luck!!!

</comment><comment><USER3> Also even if you have a cofounder - it really matters for YC what your guys accomplished, strong technical experience doesn't matter much, i believe they are looking for stanford\mit grads or somebody with a strong\successful business experience so that they can make a safe bet.

<comment><USER7> YC is not in the business of 'safe bets'. You need only look at the backgrounds of many of YC's most successful companies to see how wrongheaded that perspective is.

Full disclosure: Several friends have done YC, none are Stanford/MIT, all first time founders.</comment></comment>


Clojure for Java Developers [slides] - <AUTHOR> https://slides.com/jochenbedersdorfer/clojure-for-java-developers#/ <comment><USER2> Excellent concise presentation. Anyone know of similar for Scala?</comment>


Show HN: I made a subscription service for AI trading robots - <AUTHOR> https://lp.tickeron.com/aibotstickeroncom <comment><AUTHOR> I made an ai-powered analytical platform for DIY traders and investors. The platform includes: ai trading robots, smart screener, paper trades simulator, trend prediction engine, pattern search engine, and community.</comment>


Eat for Free in NYC Using Python, Automation, Artificial Intelligence - <AUTHOR> https://school.geekwall.in/p/H1h0o0kVB/eat-for-free-in-nyc-using-python-automation-artificial-intelligence <comment><USER2> Seems to be a copy of a medium post from 5 months ago [https://news.ycombinator.com/item?id=19554425](https://news.ycombinator.com/item?id=19554425)

No attribution to the original author. I see other articles are also 1:1 copies from various medium.com posts making geekwall.in a low quality source.

<comment><AUTHOR> Copying content like this is _ugly_. :-(</comment></comment>


Jupyter Notebook 4.2 Released - <AUTHOR> https://blog.jupyter.org/2016/04/15/notebook-4-2/ <comment><USER2> Jupyter/Python has been game changing for me.

I'm not a commercial software developer, but a scientist working on technology development. I've been programming for 30+ years.

Jupyter has become my lab notebook. In the past, I always had illegible, disorganized notebooks, files, and program code, all over the place. A Jupyter notebook lets me organize all of that stuff in one place, in a narrative fashion, allowing me to reconstruct what I did, long after I've forgotten the details. The reasons for open communication of methods and results to the public, also apply to internal work.

My notebooks become my reports. I've abandoned PowerPoint, and my colleagues, including managers, don't seem to mind. Seeing the actual work might actually give them a feeling of involvement, like inviting them into the lab. They're also a good way of communicating a prototype of a process to the software development team, when an idea ends up in a product. Even if they don't like Python, the programmers can read and understand it.

I can actually run some of my data acquisition code directly within Jupyter. A code cell that spits out an inline graph is practically the default interface for a lot of this kind of work, so I don't have to build a unique GUI for every kind of test. This speeds up incremental refinement of an experimental technique, even if the routines that I write end up in a "straight" Python program when it's time to let an experiment run for a few hours or days.

Granted, Jupyter won't turn bad programmers into good. Learning good programming methods is still a gap in the education of scientists.

</comment><comment><USER3> Probably the longest time-to-knowing-what-the-hell-this-thing-actually-is I've ever seen on HN. Clicked on the link, clicked on a Github link, clicked to the Github root, clicked on the link to the project's site, clicked on the first item in the table of contents, got a vague idea what it was.

I feel grumpy and old. :(

<comment><USER4> I know. Open source folks, when you put a 'Home' button in the corner, make it go to the project home page, not the blog home page. If there's one thing I can't stand it's a blog post about an update for something that I don't know what it is, and my patience to click around trying to find out whether it is something I would be interested in or not is very limited.

I'm glad I did in this case because an open-source equivalent of Mathematica is a pretty sweet tool, but the site navigation sucks enough that it's likely limiting your audience a bit.

<comment><USER5> Just a heads up: Jupyter Notebook is _not_ an open source alternative to Mathematica. Originally, Jupyter was iPython notebook, an IDE of sorts for data science and analysis in Python, by writing code and markdown together in a more coherent and integrated way. Then they incorporated a host of other popular open source languages for computational science such as R, Julia, F#, ect., so that we could use the best tools for their task, all in one document.

<comment><USER6> >all in one document.

So it is possible to run both R and Python commands in the same notebook?

<comment><USER7> Yeah, there are bridges for converting Python data types to R and vice versa (Rpy2).

<comment><USER5> Feather is a recently released data frame file that both R and Python can interface with. We have Hadley Whickam and Wes McKinney to thank for it!

</comment></comment></comment></comment></comment></comment><comment><USER8> There's also a newer alternative called Zeppelin:

[https://zeppelin.incubator.apache.org](https://zeppelin.incubator.apache.org)

Comparison: [https://www.linkedin.com/pulse/comprehensive-comparison- jupy...](https://www.linkedin.com/pulse/comprehensive-comparison-jupyter-vs- zeppelin-hoc-q-phan-mba-)

<comment><USER9> Another competitor (with a strong focus on polyglot use): [http://beakernotebook.com/](http://beakernotebook.com/).

Made by the people at [https://www.twosigma.com/](https://www.twosigma.com/).

<comment><USER10> I love beaker. I spent a week or so trying to force myself to use Jupyter since others in my team use it, but I bailed out and went back to beaker eventually - it's got everything Jupyter has but is all round nicer to use. It's not without it's problems, but neither is Jupyter by a long shot.

edit: fixed a word

<comment><USER11> thanks! what problems do you mean? maybe they are fixable :) questions and feedback are very welcome.

btw, look for a big announcement from beaker next week! [https://twitter.com/beakernotebook](https://twitter.com/beakernotebook)

<comment><USER10> Hah! We have had the same conversation before - see my other answer here:

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

But I'll add that I've never been able to set it up satisfactorily for everyone in my team to use it on a shared server. Shared installs don't seem to work very easily (I'm sure it's possible and probably easy, but it's very unclear to me how). It would be awesome if it had a daemon similar to RStudio where people can just log in with a user id on a server and it forks off an instance for them.

<comment><USER11> sorry i didn't recognize the name. hello again :)

definitely look for the announcement next week for help on this front.

currently the std method would be users to ssh to the shared server and run their own beaker server with a shell, and then connect to the port/URL that it prints out. not exactly the easiest UI, but that's something we are working on...

</comment></comment></comment></comment></comment></comment><comment><USER12> I find Jupyter great for the single-user use case, but I'm often frustrated with how it "breaks" with version control, when collaborating.

<comment><USER13> I think the jupyter devs are aware of this and trying to find a fix. There is an enhancement proposal on how to get diff to work with notebooks : [https://github.com/jupyter/enhancement- proposals/blob/master...](https://github.com/jupyter/enhancement- proposals/blob/master/notebook-diff/notebook-diff.md)

And I think that's the project that should implement this : [https://github.com/jupyter/nbdime](https://github.com/jupyter/nbdime)

</comment></comment><comment><USER14> For some background on the direction of the Jupyter project, check out this recent talk at PyData Amsterdam ([http://pydata.org/amsterdam2016](http://pydata.org/amsterdam2016)) by Min Ragan-Kelley & Thomas Kluyver.

They talk about how Jupyter has "evolved from a Python-specific tool to a general data science tool that supports many different languages."

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

</comment><comment><USER15> If you use Atom, I would highly recommend looking at [https://atom.io/packages/hydrogen](https://atom.io/packages/hydrogen) It uses Jupyter under the hood to do some serious inline magic.

<comment><USER16> Is Hydrogen a notebook replacement? The demo makes it look like a fancy REPL. Does it have section headers, latex support, etc.?

<comment><USER17> No, Hydrogen is not a jupyter notebook replacement, it cannot open .ipynb files

</comment></comment></comment><comment><USER18> I had my first experience with Jupyter last weekend when I was trying to learn about document clustering with Python. It seems like a cool idea, but in practice ended up being kind of annoying: [https://github.com/brandomr/document_cluster/issues/7](https://github.com/brandomr/document_cluster/issues/7)

<comment><USER19> Jupyter is great for prototyping and playing with ideas, essentially its great it you want persistent data. But after you more or less know what you want and loading the initial dataset isn't a constant annoyance you're usually better off in an IDE or other real programming environment.

I use it to ask a whole bunch of exploratory questions about a dataset then productionize the result in PyCharm (my preference, other ways work great too :)

<comment><USER10> This is actually my main problem with the whole idea of these "notebooks". They explicitly encourage exactly the kind of ad hoc coding and practises that plague a lot of scientific work. It's nearly impossible to practise good software engineering while inside one of these things. I know the rationale will be that this is for ad-hoc exploration and the code should be rewritten / redesigned when it's moved into an app, but just like all prototype code that has ever been written, that is not what happens.

I would love something that combines this style with support for good software practices. For example, that let's you seamlessly move snippets of code into functions, classes, modules, and then create tests for them. RStudio is actually the closest I have found, which is ironic since as a language R is horrible for encouraging good software practices.

</comment></comment></comment><comment><USER20> Thanks for the feedback on the announcement blog post. I added a short description and link to the project home page at the top of the blog post after reading the feedback here. Thanks!

</comment><comment><USER21> Every time I try to do some data crunching in a python notebook, I find that I really miss the variable explorer from spyder.

<comment><USER22> You might like Yhat's rodeo: [https://github.com/yhat/rodeo](https://github.com/yhat/rodeo)

I haven't used it too much, but it looks interesting.

<comment><USER21> I don't care for their python implementation of ggplot, but that looks really shinny. I will definitely check that out.

</comment></comment></comment><comment><USER23> It's fun to play with code and try out new ideas in such a rich interactive environment. When you want to get the work done in production scenario, the shortcomings of unable to use version control and the overhead of interactive environment just kill it.

What works is that you get a subset of your data and try to develop some code to process it and generate a handful of graphs. You can then save the code in its true text form and edit with your favorite editor, and run it on your real data.

</comment><comment> vhost- While working on a data science team some months ago, these notebooks helped me build something that explained, in detail and at a high level, the implementation details of an algorithm to sales and others not familiar with data science techniques. It was awesome and so easy.

I also used them when we did a capture the flag contest to help explain visually how a multi time pad vulnerability works.

<comment> vhost- Here is a link to an html export of the jupyter notebook I made for the many- time-pad experiment: [https://kyleterry.com/natas11.html](https://kyleterry.com/natas11.html)

</comment></comment><comment><USER24> "The Jupyter Notebook is a web application that allows you to create and share documents that contain live code, equations, visualizations and explanatory text. Uses include: data cleaning and transformation, numerical simulation, statistical modeling, machine learning and much more."

[http://jupyter.org/](http://jupyter.org/)

<comment><USER25> Thanks for explaining what Jupyter is. This is certainly useful since it's hard to find this information from the original link.

</comment></comment><comment><USER26> One of our data analyst had fun drawing all the shots from Kobe during his whole career. He did everything on jupyter, which I discovered at that moment, and was mind blown on how well it worked and how powerful it is.

I don't think I would ever use this tool as a seasoned software engineer, but I can definitely see the power it has for newer people who want to learn, or simply people like him who know a little bit of code and just wanted to run it.

Congrats to the team building this tool!

<comment><USER27> Your comment implies that using a Jupyter notebook is a programming crutch for those who are not skilled. That's far from the case; Jupyter notebooks allow for logical separation of code and output, which is important for comprehension.

It also allows for reproducibility of results, which is arguably even more important, especially in the data science case.

<comment><USER26> sorry, maybe my comment is wrong because of my lack of knowledge about the tool (I've seen it used 10 minutes) but it's seems like it's a nice UI replacing what a terminal does, if I'm right. So all I'm saying is, since i'm confortable using a terminal, and I'm usually already there using vim, etc., then it's more convenient for me to test stuff in my terminal than going into my browser to test in jupyter

<comment><USER28> no, you miss the point of the notebooks. You use it to tell story.

<comment><USER29> As a seasoned software engineer, I use it as a persistent, better-organizable shell. Even when working on a remote host, I forward its port and work there rather than open a shell on the remote machine, and I'm someone whose IDE is vim.

It's just much better when you can see all your functions in one place, edit a function far back and have the changes propagate to the last command you ran.

<comment><USER26> makes total sense :)

</comment></comment></comment></comment></comment></comment><comment><USER25> Anyone knows why Debian/Ubuntu is still on version 2.3? Is it because the Jupyter devs are all Mac aficionados?

<comment><USER30> It's not. You're probably doing it wrong.

[http://jupyter.readthedocs.org/en/latest/install.html#new- to...](http://jupyter.readthedocs.org/en/latest/install.html#new-to-python- and-jupyter)

use something like:

>pip install jupyter -U</comment></comment>


U.S. State Department reports new instance of American diplomats harmed in Cuba - <AUTHOR> https://www.washingtonpost.com/world/national-security/american-diplomats-suffered-traumatic-brain-injuries-in-mystery-attack-in-cuba-union-says/2017/09/01/9e02d280-8f2f-11e7-91d5-ab4e4bb76a3a_story.html <comment><USER2> I am more interested in knowing why it is happening. I find it hard to believe the Cuban government itself would want this.

</comment><comment><USER3> All the initial reports seemed to focus on the diplomats, saying their spouses and family members were unharmed. If this was planted at the Cuban-supported housing as I've seen suggested, why weren't staff and family members affected?

<comment><USER4> Officials in Canada said in early August that they were "aware of unusual symptoms affecting Canadian and US diplomatic personnel and their families in Havana," a spokesperson for Global Affairs Canada told the AP. – [https://qz.com/1062456/a-sonic-weapon-that-caused- diplomats-...](https://qz.com/1062456/a-sonic-weapon-that-caused-diplomats-in- cuba-to-lose-their-hearing-last-year-also-caused-brain-injury/)

"CBS reported this week that the diplomats and their families had been diagnosed with nausea, headaches and balance disorders." – [http://www.telegraph.co.uk/news/2017/08/29/sixteen- american-...](http://www.telegraph.co.uk/news/2017/08/29/sixteen-american- diplomats-relatives-now-confirmed-have-suffered/)

</comment></comment><comment><USER5> A few questions I feel are pertinent:

1) Who has access to these technologies? Who manufactures them? How much are they?

2) Are they large devices or small?

3) When do symptoms onset after exposure?

4) Hearing loss is extremely traumatizing and debilitating. Why should we put civilian staff in harm's way?

<comment><USER6> > 4) Hearing loss is extremely traumatizing and debilitating. Why should we > put civilian staff in harm's way?

Why not ask the people who did this why they're targeting civilians?

<comment><USER5> I do agree that that is an extremely pertinent question.

I imagine that it probably has to do with a general hate towards America. Whether misguided or not, these people chose an opportune and vulnerable target to send a message about how they view American policies.

<comment><USER7> I don't think generic hate would help you get ahold of sonic equipment. A plausible sounding theory I've heard (and I stress that it's total speculation) is that someone was trying to spy on the diplomats but miscalibrated their ultrasonic eavesdropping device, turning the effects harmful.

<comment><USER8> I've heard that theory a number of times. I'm no expert in acoustics or eavesdropping, but I would assume that ultrasonic eavesdropping equipment would involve highly sensitive microphones, not powerful speakers.

Is there some sort of ultrasonic-carrier-signal microphone out there, akin to laser mics?

<comment><USER9> Think of a bat. It clicks and the reverb is what its ears interpret to understand surroundings. Output can be used to trigger/power passive listening devices. I always think of the Russian gift to the US embassy that was a wooden seal with a passive bug in it. Scans didn't catch it for years.

<comment><USER10> That was activated by and transmitted radiowaves though.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> Why in the world did the US not put monitoring equipment in place after discovering the first incident months ago? I can't imagine a broadband SPL meter or microwave detector to be THAT expensive to protect the health of the diplomats who remained, or at least rule those out as possible causes. Did they think the attacks - or perhaps accidents - would not reoccur?

<comment><USER12> Did they know it was actually an attack months ago?

<comment><USER11> The US expelled Cuban diplomats in May, after the initial attacks. Granted, the attacks weren't made public, and a reason for the expulsion assigned, until August, so that could just be the administration trying to look proactive.

</comment></comment></comment><comment><USER13> What is most disturbing about these incidents is that while they have been variously labeled "a sonic attack" or "potentially the by product of a surveillance system", nothing I have seen has proposed anything like a mechanism of injury let alone what type of device could surreptitiously visit this kind of insult on a human subject without any awareness on the subjects part that they are being exposed to some source of energy powerful enough to damage their ears and cause mild TBI.

An old surgeon friend used to talk about the kinematics of trauma, and how trauma was caused by excessive amounts of energy being taken on by a patient. Sometimes it's mechanical energy, it might be an exothermic reaction but in this instance the energy not detectable, as of yet by humans.

We'll be talking about this one for a while.

</comment><comment><USER14> It may not have been a weapon. I can imagine some adversarial government testing some "listening" device that ends up not being well tested and potentially dangerous.

<comment><USER15> The first time, maybe it was just innocent espionage. But now that they continue to use it despite knowledge of the effects, I would consider it a weapon.

Really, espionage is a weapon of sorts, but crossing the realm to knowingly cause physical harm to diplomats is a threshold. The quiet war is getting less quiet.

</comment></comment><comment><USER16> Why would Cuban military or government do that on purpose?

What's the motive? What do they win and what's their end game?</comment>


Only take a job where you'll learn something. - <AUTHOR> http://webworkerdaily.com/2008/08/22/learning-from-every-job/ <comment><USER2> That's one of the few things Robert Kiyosaki gets right: "Work to learn, not to earn".</comment>


Ask HN: What would I get out of attending the DC Startup Weekend? - <AUTHOR>

So, back when it was first announced someone suggested to me that I should check out the DC Startup Weekend to try and network. There wasn't much on the page about what it was all about when I signed up. My only real conference experience have been things like Shmoocon, where you go and network while listening to speakers.
Well, tonight I look at the agenda and I find out what DC Startup Weekend is all about. It sounds really great, except, I'm not sure I'll get much out of it. I've already got a product I'm working on, www.unscatter.com. I suppose I could go there and pitch it, but with a 7 week old infant I'm not in the position where I could just drop my job and dive 100% into it as a startup now.
This is why I've been slowly working on it in my very little spare time, basically trying to bootstrap it myself. I'd love to sit and talk to someone about the direction I'm headed, which is what I was hoping to get out of this weekend. However, that doesn't look like that's something I'd get.
So, I'm trying to figure out if there's any value in attending. My wife suggested I go Friday night and check it out, which since I've already purchased the ticket I probably will do. Just curious if anyone here had any feedback or ideas of what I could get out of attending? <comment><USER2> I think the greatest value in any type of meeting would be the connections built. You're going to a meeting with a group of individuals building startups... they will want to talk about theirs and you will want to talk about yours. Share your product, get them interested in it, and get some feedback on ways to expand/improve. You don't have to implement the ideas right away, but consider what kind of influence they might have on your product. If anything, print out a few cards and hand them out! You're already going anyways!</comment>


Code isn't poetry - <AUTHOR> http://jshak.es/code-isnt-poetry/

<comment><USER2> Pedantic is putting the braces in even where they're optional, simply because it avoids problems later on. Pedantic is using Yoda conditionals [1] in C because it enables lvalue checking in the compiler. Pedantic is checking return codes, using assertions, and validating inputs. Pedantic is not unnecessary code; it recognizing what is necessary, and doing it.

[1] E.g., "if (1 == n)" instead of "if (n == 1)" (or prefer a language that uses := for assignment).

</comment><comment><USER3> Any syntax is less readable if you're unfamiliar with it. If you see enough of them, it reads naturally.

</comment><comment><USER4> I don't agree that the second example is more readable than the first

</comment><comment><USER5> But it is!

<comment><USER6> Why do you think that?</comment></comment>


Ask HN: Should Bill Gates come back as the CEO of Microsoft? - <AUTHOR>

<comment><USER2> As crazy as it might sound, I think many tend to forget Gates was still quite involved with Microsoft. As chairman, and Ballmer as CEO, it was still effectively a Gates regime as far as vision goes.

He's a smart man doing great things, but he's not perfect. Microsoft needs a new direction. Their assets are still valuable and have a huge potential for a great upside.

It's easy to play armchair CEO, but overall I'd say some new blood is needed.

For example, Mayer at yahoo may have been controversial, but she's turning it around.

I don't think some new ideas would hurt the company overall.

<comment><USER3> _but she 's turning it around._

Source? She's trying to turn it around for sure but it is way too early to say that she's been successful. Her wins have largely been pr-wins which I wouldn't discount but there is only so many times you can cite your awesome weather app as evidence of a turnaround before people begin asking what more she's got besides the weather app.

<comment><USER2> Fair enough. I won't get in to a long drawn out battle about it. I should say she's getting people talking about Yahoo again.

Relevance is at least a start. You also can't say she's run it in to the ground as of yet either.

<comment><USER3> Agreed!

</comment></comment></comment></comment><comment><USER4> It seems like there is very little upside for him and frankly the rest of the world.

He is doing great work now and taking over the reigns of Microsoft would be like the president of the United States running for congress after he completed his term.

<comment><USER5> More like the president of the United States quitting and running for congress _during_ his term.

(An even better analogy would be if before the person was president they were involved with a different group of people, such as a theoretical President Ross Perot leaving the presidency to help rebuild Perot Systems.)

</comment></comment><comment><USER6> Compared to what he's spending his time on now, I'd imagine the idea of seizing a few (or even a bunch of) percentage points of marketshare away from Google / Oracle / Sony / etc. seems rather trivial.

</comment><comment><USER7> No - Bill Gates is spending his time doing far more useful things

</comment><comment><USER8> "If I were him I would never-ever take that position as a CEO ever again."

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

</comment><comment><USER9> No Bill Gates is done, he is enjoying retirement and giving out vaccinations to people in the third world.

Microsoft should just buy out Valve Software to get Gabe Newell back, and then make him the new CEO. Gabe knows how to get stuff done, and he knows how to fix Windows and make great software.

Either that or buy out the old Atari in Europe to get Noland Bushnell as CEO of Microsoft.

Steve Wozniak is available for CEO as well, he seemed to like the Windows Mobile 8 phones.

Marc Andreessen formerly of Netscape has become a Microsoft fan and would make a good CEO.

</comment><comment><USER10> No. He has been done with that for years. He is happy where he is. The leader of the board.</comment>


Lending Club IPO: Nice Guys Don't Finish Last, and Other Lessons - <AUTHOR> http://mattturck.com/2014/12/12/lending-club-ipo-nice-guys-dont-finish-last-and-other-lessons/

<comment><USER2> It could be that all loans on the platform are a money losing proposition.

Sub-prime consumer lending might not be a good long term asset class :(</comment>


Microsoft Gets on the Dane Bandwagon - <AUTHOR> https://www.theregister.co.uk/2020/04/07/microsoft_dane_office/ <comment><AUTHOR> This is truly momentous. This should be on the HN front page.

This will help get Google and others to follow suit.

With all the big players using DNSSEC and DANE, you can expect close to universal deployment, and that will be a game changer for Internet security.

None of this would have happened without Viktor Dukhovni's incredible effort these past several years. He built a survey of DANE usage so as to find brokenness and get it fixed -- long-term brokenness would have caused the protocol to get abandoned. Once the big players have DANE support, them and everyone else will have huge incentive to monitor their own domains for breakage, which will make breakage a rarity.

</comment><comment> ietf-dane [https://news.ycombinator.com/item?id=22817214](https://news.ycombinator.com/item?id=22817214)</comment>


What's New in Scala 2.8: The Architecture of Scala Collections - <AUTHOR> http://www.artima.com/scalazine/articles/scala_collections_architecture.html

<comment><USER2> I suppose it isn't surprising that Odersky glosses over the fact that the new collections library in Scala isn't type-safe. They apparently just couldn't get the variances on type parameters to work out, so they cheated and added an annotation to ignore them: @uncheckedVariance.

"Scala is a general purpose programming language designed to express common programming patterns in a concise, elegant, and type-safe way."

Really? But not expressive enough to write the standard collections library I guess?

[UPDATE]: It gets even more amusing -- I just learned they have a paper on the collections library called "Fighting Bit Rot with Types" where they again make no mention of @uncheckedVariance. I guess mentioning that they had to cheat the type system would have undermined their goal of "focussing on the role that type systems play in keeping software architectures coherent over time."

<comment><USER3> Not that I disagree that it's a bad example in general if you cannot express the internals in your language using the same language... but I see why they'd do that really. "But not expressive enough to write the standard collections library I guess?" - standard, truly extensive and universal collections library is far from a "common programming patterns" really. If sticking to the type-safety which can be provided right now means weaker or less flexible collections - maybe it's the right tradeoff they made?

For more explanation on why it's needed, here's a good link: <http://stackoverflow.com/questions/2454281> ("Since we can't abstract over the variance annotation (yet ;-)) in GenericTraversableTemplate, so that we could have instantiated it to either one depending on the subclass, we have to resort to casting (@uncheckVariance is essentially a kind-cast). ")

<comment><USER2> If it is truly the correct tradeoff, then why are they trying so hard to sweep it under the rug? It smacks of intellectual dishonesty.

<comment><USER3> Is it really sweeping under the rug? Not only the author of the bitrot paper himself answered the question on stackoverflow by pointing out the problems, he also gave the impression that they're working on eliminating the limitation: "can't abstract over the variance annotation (yet ;-))"

Scala mailing lists are open to everyone ;)</comment></comment></comment></comment>


The fanciest shopping center in America is expanding - <AUTHOR> https://www.bloomberg.com/news/features/2018-02-08/this-mall-is-only-for-the-rich-and-it-s-doing-fine <comment><USER3> I'm not surprised that high-end retail is still doing fine. People want the luxury purchasing experience to be luxurious -- they'd rather buy their luxury goods in boutiques than get them delivered in a cardboard box from Amazon.

Part of that may simply be wariness about spending a lot of money on stuff that's going to be shipped and could be lost, but that's not all. Owning the luxury goods themselves is only part of the experience -- being treated well during the purchase and during future customer service interactions is a big part of the draw of luxury items. You don't get that from most online retailers.

<comment><USER4> I think the bigger part is that a lot of luxury goods are very hard to select without seeing them in person. Clothes are an obvious one, since you wouldn't want to buy them without trying them on (and, at the higher end, getting them tailored). But the same goes for all sorts of fashion products - leather, handbags, jewelry... you don't know whether it's what you want until you can try it on, feel the material, and see the true color.

<comment><USER5> And the fear of counterfeit. Buy a $100 handbag and maybe it's counterfeit, oh well. Buy a $2,000 handbag and maybe it's counterfeit, unacceptable.

Except for dedicated online outlets delivered by the luxury brand itself, which luxury brands are no doubt loathe to do (e.g. why cannibalize my own stores, when no other company distributes my brand anyway), I doubt people would ever buy specific high-end brands they covet online without some serious guarantees of authenticity. But again as a high end exclusive brand, why do I want to make it easier to buy my exclusive goods online?

</comment></comment></comment><comment><USER6> I saw the title and I thought, "Bal Harbor Shops is expanding?" Yep.

This article leaves out one of the more bizarre parts of Bal Harbor to me. As you drive around, you mainly notice three things: really expensive shops, super-expensive cars, and families of Orthodox Jews.

When I lived in South Florida, somebody once explained to me that the orthodox Jews lived in a different area nearby until they were pushed into North Miami Beach. Around the mid-1980s, they successfully sued the local government to remove racist laws preventing black and Jewish people from moving into the neighborhood (though it would appear something prevented any black people from moving in). The Sephardic Jewish population in this absolutely tiny, super- rich "village" between Miami Bay and the Atlantic Ocean is growing so much, they just spent $20 Million to expand their one shul. The power of the local orthodox Jewish population is such that they recently passed a local ordinance to include "criticism of Israel" as a potential hate crime.

It's hard for me to not sound really racist while describing this, but it really is strange to go through the entirety of Miami/Dade and nearby counties and cities, which is basically mostly full of caribbean and latino people, and then hit this super-rich exclusive pocket of real estate, which just happens to be super Orthodox and European. It's just weird. (The only other area nearby that I know of that has a similar population is Hollywood, Florida, though I have no idea why)

</comment><comment><USER7> If nothing else, don't miss the mini management game:

[https://www.bloomberg.com/features/american-mall- game/](https://www.bloomberg.com/features/american-mall-game/)

I'm always happy to see these kinds of games accompany articles as a different way of communicating the message (like the one for driving a rideshare).

<comment><USER8> This was really fascinating. This game just confirmed the patterns that I have seen in declining Malls

</comment></comment><comment><USER9> I grew up five minutes from Bal Harbour Shops and thought it was a pretty terrible mall all throughout my childhood since it had no arcade, KB Toys, or Electronics Boutique.

It's pretty amazing how it and Aventura Mall continue to grow. I guess Latin America hasn't gotten the message that retail is dead (in reality, a flight to Miami and an empty suitcase is a bargain compared to the prices folks see at home).

<comment><USER10> I used to live in Surfside, which is right next door to the Bal Harbour Shops. Hard to tell from photos, but the mall is TINY.

Also, the foot traffic is really light. Most people seem to hang out at the few cafés or restaurants. But I suppose with prices like that, they need a lot less traffic to pay rent.

<comment><USER11> You mentioned them hanging out at restaurants. I think malls are reinventing themselves into destinations for high end cuisine more than retail. This is a place where people go to see and be seen, no better place for that than a bar/restaurant.

<comment><USER12> I agree with you. I've been to Bal Harbour Shops multiple times to eat and hangout at Carpaccio. I've never purchased anything from the stores. I see other malls in Miami bulding new restaurants.

</comment></comment></comment></comment><comment><USER13> Since the title doesn't tell you, it's about Bal Harbour Shops in Miami Beach, though others are name-checked too.

</comment><comment><USER14> I think malls in FL in general are doing ok because of the tourists from Latin America. This is just an anecdotal observation, but The Florida Mall in Orlando is always filled with Brazilian and other Latin American tourists looking to find a deal in the US

<comment><USER12> Yes, spanish and portuguese is all you hear when walking through the malls in South Florida.

</comment></comment><comment><USER15> Check out the Stanford mall. Sign at food store: "Champagne and caviar - <USER2> them tonight". Or, as I once overheard from a female freshman, "Did you know this place has a totally awesome mall?"

</comment><comment><USER16> Bal Harbour is chic no question. With excellent people (and autos) watching ;)

But the "vias" in Palm Beach off of Worth Avenue are much more charming. And the conversation much more stimulating!

</comment><comment><USER17> High end malls in the GTA are the only ones expanding currently as well. Yorkdale and Square One are pretty much complete with their massive new buildouts.

</comment><comment><USER18> The Bal Harbour shops are honestly done.

Miami Design District has __literally __transformed Miami into the __Mecca __of fashion shopping.

Anyone who has their things in a twist about Bal Harbour after __all these years __has some kind of old beef or something going on. S@BH are already over. Miami Design District has put a total end to Bal Harbour. It has no hope.

Take a trip to Miami, go to NE 40th and NE 1st and then let me know about how great Bal Harbour is. It's over.

<comment><USER19> Your writing is confusing. Your first sentence should have been structured as such:

The Bal Harbour shops are honestly done for.

or,

Honestly, the Bal Harbour shops are done.

<comment><USER18> Honestly, you're right.

</comment></comment></comment><comment><USER20> The money the 5% have is expanding.

<comment><USER21> Not as fast a the money of the 0.5%.</comment></comment>


Show HN: Idly-Gl When OpenStreetMap Met Mapbox-GL - <AUTHOR> https://github.com/kepta/idly/tree/master/packages/idly-gl <comment><USER2> As much as I like the output, it uses a free production API not meant for such projects. Please make the API URL configurable.

> src/helpers/helpers.ts: return > fetch(`[https://www.openstreetmap.org/api/0.6/map?bbox=${bboxStr}`](https://www.openstreetmap.org/api/0.6/map?bbox=${bboxStr}`))

[https://operations.osmfoundation.org/policies/api/](https://operations.osmfoundation.org/policies/api/)

> The editing API is provided in order to edit the map data, not for read-only > purposes or projects.</comment>


The Alternative Facts of Cable Companies - <AUTHOR> https://backchannel.com/the-alternate-facts-of-cable-companies-f0cd1e10e66#.fwht3dxix <comment><USER2> We have all seen this pattern in the past few years:

 _Although the FCC in 2015 relabeled high-speed internet access as a regulated product, neither it nor state commissions have actually required particular levels of consumer service or reasonable prices._

 _But in order to avoid anyone getting the idea that oversight might be a good idea, Charter and Comcast have to uphold the fiction that their service is getting better and better in response to trumpeted "competition"—even if there isn't any actual rival anywhere around. If everyone believes that services are improving, then there's no need for government intervention._

 _That's why Spectrum's marketing and management teams let loose with ads claiming that consumers would get new X internet data speeds — "fast, reliable internet speeds." The branding people went nuts, using adjectives like Turbo, Extreme, and Ultimate for the company's highest-speed 200 or 300 Mbps download offerings._

 _But no one, or very few people, could actually experience those speeds._

The NY AG is calling Charter/TWC/Spectrum out on their fraudulent BS:

 _As the New York attorney general's office puts it, "Spectrum relentlessly touted consistently fast internet speeds and reliable access to online content to solicit and retain subscribers. However, in reality, Spectrum-TWC knowingly failed to deliver on such promises."_

Hold their feet to the fire, Eric Schneiderman!

And all you other state AG's out there, take note and follow suit.</comment>


Crystal in Production: Diploid - <AUTHOR> https://crystal-lang.org/2017/10/27/diploid-and-crystal.html <comment><AUTHOR> Crystal is a Ruby inspired compiled language, allowing it to run blazingly fast with a very low memory footprint. It uses LLVM for emitting native code, thus making use of all the optimisations built into the toolchain.

I've been using Crystal for more than 2 years have some projects in production. Can't wait for 1.0 :)

<comment><USER3> Everytime I read a HN comment claiming a language to be "blazingly" fast, i wish they posted a link to statistically sound benchmarks, including vm- warmup, GC collection times, etc.

Otherwise I just throw these adjectives away. I argue a new compiler/interpreter will always lose against the JVM, which has thousands of man hours of optimization built-in.

The JVM in turn will always lose against a clever memory-conscious lowlevel- implementation in Rust or C or assembler.

Please don't advertise speed without any studies or comparison to back up that claim.

<comment><USER4> Everytime I read such comment in HN, I smile and remember the days C programms on 8 bit micros and later MS-DOS, were made of 80% inline Assembly statements, because the compilers were quite lousy.

Fran Allen is the opinion that the adoption of C delayed the field of compiler optimizations research back to pre-history (Coders at Work).

It took 40 years of optimization research and clever use of UB defined in the standard, for C compilers to achieve the code quality generation they have nowadys.

<comment><USER5> > Fran Allen is the opinion that the adoption of C delayed the field of > compiler optimizations research back to pre-history (Coders at Work).

Yes! The entire book is wonderful, but as a compiler writer myself, Fran's interview really stuck with me.

The relevant passage, for the curious:

———

Seibel: _When do you think was the last time that you programmed?_

Allen: _Oh, it was quite a while ago. I kind of stopped when C came out. That was a big blow. We were making so much good progress on optimizations and transformations. We were getting rid of just one nice problem after another. When C came out, at one of the SIGPLAN compiler conferences, there was a debate between Steve Johnson from Bell Labs, who was supporting C, and one of our people, Bill Harrison, who was working on a project that I had at that time supporting automatic optimization._

 _The nubbin of the debate was Steve 's defense of not having to build optimizers anymore because the programmer would take care of it. That it was really a programmer's issue. The motivation for the design of C was three problems they couldn't solve in the high-level languages: One of them was interrupt handling. Another was scheduling resources, taking over the machine and scheduling a process that was in the queue. And a third one was allocating memory. And you couldn't do that from a high-level language. So that was the excuse for C._

Seibel: _Do you think C is a reasonable language if they had restricted its use to operating-system kernels?_

Allen: _Oh, yeah. That would have been fine. And, in fact, you need to have something like that, something where experts can really fine-tune without big bottlenecks because those are key problems to solve._

 _By 1960, we had a long list of amazing languages: Lisp, APL, Fortran, COBOL, Algol 60. These are higher-level than C. We have seriously regressed, since C developed. C has destroyed our ability to advance the state of the art in automatic optimization, automatic parallelization, automatic mapping of a high-level language to the machine. This is one of the reasons compilers are …_ [sic] _basically not taught much anymore in the colleges and universities._

Seibel: _Surely there are still courses on building a compiler?_

Allen: _Not in lots of schools. It 's shocking. There are still conferences going on, and people doing good algorithms, good work, but the payoff for that is, in my opinion, quite minimal. Because languages like C totally overspecify the solution of problems. Those kinds of languages are what is destroying computer science as a study._

———

(pp. 501-502)

I recommend that any programmer who hasn't read this book give it a read. In fact, I think I might give it another read this week :)

</comment></comment></comment></comment><comment><USER6> I have dedicated this very weekend to digging into Crystal. Uncanny coincidence seeing it popping up here, today of all days.

It is a tremendously nice looking language - and I say this as a pythonesque guy who never wrote one line of Ruby. The feeling I get from community and projects is that it's a very up-and-coming thing, about to take off in a major way. There is just too much enthusiasm and too many things done right for Crystal not to earn some solid share within a very foreseeable future.

<comment><USER7> Crystal really does feel like Ruby without the annoying parts, plus the macro system feels like a _better_ meta programming facility.

On the other hand I've read reports that sufficiently large codebases begin to hit machine memory limits for the compiler because they have to scan and construct every possible union type in the codebase. Not sure what there is to do about that other than bisecting the codebase into shared libraries over time.

<comment><USER8> The actual memory usage is coming from the number of instantiated methods. If you write a method, it gets an entirely new implementation of it copied and compiled for every different list of argument types. For example,

        def foo(bar)
          bar + bar
        end

        bar1 : Int32
        foo(bar1)

        bar2 : String
        foo(bar1)

        bar2 : Int32 | String
        foo(bar1)

The above code gives you three methods to generate code for: foo(Int32), foo(String), foo(Int32 | String).

This isn't really a problem for small projects, but with large projects (60k+ loc), you end up with some methods such as puts, Array(T)#<<, etc with thousands of instantiations.

We have some edge-case semantics (we don't cast arguments to their restriction types, which we plan to remove before 1.0) which also prevent us from allowing only instantiating foo(Int32 | String) when we change the definition to `def foo(bar : Int32 | String)`. Hopefully in the future, we can allow the compiler to take advantage of method argument type restrictions to reduce the number of instantiated methods and speed up the compiler.

That doesn't mean the compiler will be super slow if you don't annotate your methods, it just means that the stdlib and shards' public API will start annotating it's method arguments more (which gives you better docs and error messages _anyway_ ).

For more info: [https://github.com/crystal- lang/crystal/issues/4864](https://github.com/crystal-lang/crystal/issues/4864)

<comment><USER9> They also have a very detailed blog post about how their compiler works: [https://crystal-lang.org/2015/03/04/internals.html](https://crystal- lang.org/2015/03/04/internals.html)

</comment></comment></comment></comment><comment><USER10> Crystal reminded me of Mirah [1], a Ruby-like programming language which is statically typed but relies heavily on type inference in order to compile efficiently to JVM bytecode, while retaining the appearance of being a dynamically typed language.

(I've got no real point here other than to say I had a strong feeling of deja vu while reading about Crystal.)

[1] [https://en.wikipedia.org/wiki/Mirah_(programming_language)](https://en.wikipedia.org/wiki/Mirah_\(programming_language\))

<comment><USER9> Why are people so interested in running things on the JVM? I'd much rather compile and ship binaries than force someone to install Java (or Ruby or Python).

<comment><USER11> For one, the JVM is available on multiple platforms. Rather than requiring a project to target each of these platforms individually, they can target a single platform—the JVM.

There are plenty of people who dislike the JVM for any number of reasons (performance often being cited as one) and prefer to target specific platforms individually. Like many other things, it's a tradeoff, and people may arrive at different decisions depending on their priorities.

<comment><USER12> Modern languages like Crystal target LLVM IR, which if, I'm not mistaken, supports even more platforms than the JVM.

<comment><USER13> But it would need to be recompiled right?

<comment><USER14> Correct. But due to the separation of the front-end and back-end, the language developer doesn't have to do extra work to support different architectures.

</comment></comment></comment></comment></comment></comment><comment><USER15> Crystal is one of the most exciting new languages out there. I have been using it for my one off tasks at Ola and it works pretty well. It is huge plus point that you have safety harness of statically typed languages and speed comparable to java and scala(unscientific benchmark here [https://github.com/kostya/benchmarks](https://github.com/kostya/benchmarks))

</comment><comment><USER16> > Features that we take for granted in Ruby or other languages, are not > available in Go. Examples include operator overloading or keyword > extensibility, as well as true OOP.

These are literally the top reasons why I love Go. To each their own?

</comment><comment><USER17> Crystal is a super cool project and doing websockets with Kemal (Crystals Sinatra equivalent) was one of the easiest ways of hosting websockets I've encountered so far.

That said, I'm eagerly waiting for true paralellism support since the use case we have in mind would greatly benefit from that. Some of the testing tools are also not quite as polished as Rspec (yet).

<comment><AUTHOR> Kemal: Fast, Effective, Simple web framework for Crystal Website: [http://kemalcr.com/](http://kemalcr.com/)

P.S: I'm the author of Kemal :)

<comment><USER17> So cool! I really enjoy working with Kemal. :)

The State of Crystal at v0.21 article ([https://crystal- lang.org/2017/02/24/state-of-crystal-at-0.21...](https://crystal- lang.org/2017/02/24/state-of-crystal-at-0.21.html)) stated that multithreading with work stealing was coming "soon" and that you already managed to run kemal in parallel. Can you share anything about the current state of that project?

<comment><AUTHOR> Even though it's experimental I've successfully compiled Kemal with multi- thread support. The throughput was OK. It's promising and will definitely help CPU bound apps :)

You can check the wiki for more info [https://github.com/crystal- lang/crystal/wiki/Threads-support](https://github.com/crystal- lang/crystal/wiki/Threads-support)

</comment></comment></comment></comment><comment><USER18> I've been using Crystal for only a few months, but impressed with its speed and low memory footprint. Starting to build some small services with it now, but using Kemal or the Amber framework, I can see some medium sized projects coming out of it soon.

Was a cinch to swap over to it from Ruby. It is a little fussier with type definitions, but I guess that is to be understandable with a compiled system.

The third party ecosystem is still a little thin on the ground, or immature, and I hope it will grow. The Crystal community has also been really friendly and responsive. The couple of questions I have asked on Reddit or SO have been answered quickly and with lots of useful info.

</comment><comment><USER18> Here is another (sort of) real world app I wrote using Crystal and Kemal - <USER2> real time race telemetry display app for an F1 racing game [Blog post link] - [http://devan.blaze.com.au/blog/2017/10/28/racing-along- build...](http://devan.blaze.com.au/blog/2017/10/28/racing-along-building-a- telemetry-system-using-crystal-rethinkdb)

</comment><comment><USER19> > With Crystal, data scientists could have the ease-of-use of Python/Ruby > combined with the performance of C.

Big if true.

Are there any benchmarks to back up this claim? There is some mention of experiments, but I'm not seeing any numbers or code.

<comment><USER20> [https://manas.tech/blog/2015/10/30/linear-algebra-in- crystal...](https://manas.tech/blog/2015/10/30/linear-algebra-in-crystal-from- lapack.html)

</comment></comment><comment><USER21> Still waiting for v1; Ruby being my fav in terms of syntax, Crystal is really going to lift my experience in terms of syntax. This interview describes low traffic usage, what I am looking for is high traffic usage scenario and how crystal's GC behaves running for longer periods of time.

<comment><USER22> Check latest benchmark (not the best but shows good performance) [https://www.techempower.com/benchmarks/previews/round15](https://www.techempower.com/benchmarks/previews/round15)

<comment><USER23> These benchmarks show raw throughput though, and not latency distribution. A well functioning GC should not be too bad in either, and the current solution in the GC area is very much stop the world, so I expect the latency tail to be pretty bad even if raw throughput is damned good.

</comment></comment></comment><comment><USER24> "...OOP. Moving from Ruby to Go sometimes feels like ignoring 20 years of progress made in language design."

If OOP is so important to them, why did they bother including Elixir in their list of possibilities?

Also, given their problem domain, I'm doubtful of the fit of OOP (vs functional). But regarding Crystal, it is nice to see a potential performant Ruby replacement.

<comment><USER25> > _Also, given their problem domain, I 'm doubtful of the fit of OOP (vs > functional). But regarding Crystal, it is nice to see a potential performant > Ruby replacement._

Part of their problem domain was to easily port their code from Ruby, which would presumably be OOP.

</comment></comment><comment><USER26> As mentioned in the article, library support in Crystal is growing but still far from complete. This GitHub repo might be a good place to start searching for useful shards: [https://github.com/veelenga/awesome- crystal/blob/master/READ...](https://github.com/veelenga/awesome- crystal/blob/master/README.md)

<comment><USER27> also [http://crystalshards.xyz/](http://crystalshards.xyz/)

</comment></comment><comment><USER28> Is there an easy way to get interop working between crystal and ruby? It would be nice to be able to simply require a crystal module that calls out to a compiled binary in the middle of my Ruby code.

<comment><USER22> See [https://es.slideshare.net/AnnaKazakova/how-to-write-ruby- ext...](https://es.slideshare.net/AnnaKazakova/how-to-write-ruby-extensions- with-crystal)

<comment><USER28> This is the full talk, I assume: [https://archive.fosdem.org/2016/schedule/event/ruby_extensio...](https://archive.fosdem.org/2016/schedule/event/ruby_extensions_crystal/)

</comment></comment></comment><comment><USER29> Crystal looks interesting based on the comments in this thread by those using it. Anyone know why it seems to not be available for Windows (without WSL)? Does it have some POSIX dependencies?

<comment><USER30> Yep, proper Windows support is a must for easy to use dev setup - Go is OK'ish in this sense but Crystal is currently really difficult to get running (either vm or Win10 Linux sub-system or Cygwin hack needed!)

<comment><USER29> Thanks. Still wondering what the reason is though - but based on what you said, it seems like POSIX-like APIs being needed may be the reason. Maybe for the concurrency features or other language / library features of Crystal. But then again, Go has concurrency features but works on Windows, and of course Windows has threads anyway, which are usable from C/C++ and other languages.

<comment><USER22> Here is an installer waiting for Crystal support on Windows [https://github.com/faustinoaq/crystal-windows- installer](https://github.com/faustinoaq/crystal-windows-installer) :)

<comment><USER29> Thanks.

</comment></comment></comment></comment></comment><comment><USER31> I love crystal yet it puzzles me how the heroic developers can make rapid progress when each compilation of the compiler takes half a minute.

</comment><comment><USER32> How is the compile time on larger projects?

<comment><USER22> See [https://groups.google.com/forum/#!topic/crystal- lang/xG5MQXT...](https://groups.google.com/forum/#!topic/crystal- lang/xG5MQXTOyj8) and [https://github.com/crystal- lang/crystal/issues/4864](https://github.com/crystal-lang/crystal/issues/4864) Crystal is improving everyday :)

</comment></comment><comment><USER22> Crystal is very good language, seems very promising

Waiting for parallelism & Windows support +1

</comment><comment><USER33> I've always wondered why Crystal doesn't get more attention.

<comment><USER34> Because it's not production ready yet. It's getting there.

</comment></comment><comment><USER35> That's a nice looking language. The inferred type system on an procedual / OO language with protection against nulls is something I had wished existed. I didn't know it had been done.

<comment><USER36> Heard of Swift?

<comment><USER35> I've heard of it but not investigated. So many programming languages. Is it general or tied to Apple?

<comment><USER22> general

</comment></comment></comment></comment><comment><USER37> I'd be curious to know what the compile times are like? Does ever compile run recompile the entire code base or is there some kind of incremental compilation?

</comment><comment><USER38> Is there a place with the distribution of the number of developers per programming language? I have the feeling it has a very long tail.

</comment><comment><USER39> I'm surprised Swift was outperformed by Ruby in their testing. I wonder what their benchmarking methodology was.

</comment><comment><USER40> On a related note, how well Crystal is suited for number-crunching?

</comment><comment><USER41> Crystal is currently no faster than Ruby when parsing a 19Mb Apache log file on OS X Sierra:

      fh = File.open("logs1.txt")
      fh.each_line {|x| puts x if (/\b\w{15}\b/.match x) }
      fh.close

<comment><USER42> I guess it depends, for one-off tasks you'll have to compile and run the Crystal code. I assume you ran the code above with `crystal run`. If you first compile the code with `crystal build --release` and run it, you should see a dramatic improvement over Ruby.

On my machine, parsing a 374MB file took:

        - 25.63 using Ruby
        - 19.97 using Crystal (run w/o optimizations)
        - 19.01 using Crystal (compiled w/o optimizations)
        - 18.68 using Crystal (run w/ `--release` flag)
        - 11.54 using Crystal (compiled w/ `--release` flag)

<comment><USER41> No, it was compiled but without --release as I couldn't get it working on OS X Sierra.

</comment></comment></comment><comment><USER43> Having no idea what Crystal is, my mind replaced it with crystal meth and it made the introduction text a lot more entertaining.

</comment><comment><USER44> I thought this is a new type of drug</comment>


With Little Fanfare, FBI Ramps Up Biometrics Programs (Yet Again)–Part 2 - <AUTHOR> https://www.eff.org/deeplinks/2015/09/little-fanfare-fbi-ramps-biometrics-programs-yet-again-part-2 <comment><USER2> > Given the FBI's broad goals for face recognition data, the time is right for > laws that limit face recognition data collection.

Limit data collection? But..

> Only criminal mug shot photos are used to populate the national repository.

So we should limit the criminal mug shot datasets? Or should we limit the query images?

> Query photos and photos obtained from social networking sites, surveillance > cameras, and similar sources are not used to populate the national > repository.

Oh yea. So what kind of limits again?

> Facial recognition takes the risks inherent in other biometrics to a new > level...[it] allows for covert, remote, and mass capture and identification > of images, and the photos that may end up in a database include not just a > person's face but also what she is wearing, what she might be carrying, and > who she is associated with.

So like your facebook profile?</comment>


Day one /build//2013 Keynote live stream - <AUTHOR> http://live.arstechnica.com/microsoft-build-2013-day-1-keynote/

<comment><AUTHOR> Here's a link to live video: [http://channel9.msdn.com/](http://channel9.msdn.com/)</comment>


Ragel State Machine Compiler - <AUTHOR> https://www.colm.net/open-source/ragel/ <comment><USER2> Are you aware of anyone working to add Python as a target language? Will Ragel 7's intermediate codegen language make that easier?

<comment><USER3> Not at this time. But yes Ragel 7 will make it much easier. The first round of new languages I added helped me polish the technique. Once 7 is out and vetted it will make sense to add more.

</comment></comment><comment><USER4> I've used Ragel extensively with both C and Go; I can't recommend it more highly enough!

Thanks Adrian for your efforts.

<comment><USER3> My pleasure, thank you for the note!

</comment></comment><comment><USER5> Seems like Lua would be a perfect target for Ragel. Do you know if anyone is working in this direction ?

How does it compare with LPeg[1] ? This is what I currently use for all my parsing needs.

[1] [http://www.inf.puc-rio.br/~roberto/lpeg/](http://www.inf.puc- rio.br/~roberto/lpeg/)

<comment><USER6> Ragel doesn't support recursion (last I checked), so it's not suitable for many parsing jobs. I considered it for MoonScript's parser at one point but it didn't seem like it could do it. I've been experimenting with this project as a replacement for LPEG for the MoonScript parser: [http://piumarta.com/software/peg/](http://piumarta.com/software/peg/)

I've made an LPEG style syntax that compiles to the peg syntax for that tool, which is then compiled to c and linked into a Lua module, you can see how the parser is written here: [https://github.com/leafo/moonparse/blob/master/parse.peg.moo...](https://github.com/leafo/moonparse/blob/master/parse.peg.moon#L115)

</comment></comment><comment><USER7> How is this different from Lex, written in 1975? Even the syntax looks fairly similar.

[https://en.wikipedia.org/wiki/Lex_(software)](https://en.wikipedia.org/wiki/Lex_\(software\))

<comment><USER3> Ragel allows embedding actions into the subexpressions of a regular expression. This allows one to compose a parser using a single regular expression.

<comment><USER8> Why would you want to do that?

<comment><USER9> There are a lot of advantages to a declarative approach, and a lot of risks and problems with hand written parsers and state machines.

A good example is the http code Zed wrote with ragel. From what I remember it was contracted by verisign because they wanted an implementation that actually followed the spec in detail, unlike all other code available at the time. That ragel code has been reused by a lot of embedded http servers in many languages now.

<comment><USER10> The thing I keep finding problematic about declarative approaches is that nobody knows them. That means if you're not a lone wolf on a project, the people editing your declarative state machine are going to be unfamiliar with it. Aside from the complaints that gives (and the "look I rewrote it" issues), that means they make mistakes and don't understand what happens.

So they don't last. They're not all that maintainable in real teams. My experiences are mostly with ANTLR code (which has a debugger and lots of tooling and isn't that hard at all).

I'm at a loss for how to overcome this.

<comment><USER3> Keep using them is how you overcome this ;)

</comment></comment></comment></comment></comment></comment><comment><USER11> I've been using Ragel on Android since Froyo (Java target); amazing software!

<comment><USER3> Thanks!</comment></comment>


Asteroids in under 600 lines of Common Lisp (uses SBCL and SDL) - <AUTHOR> https://github.com/andyhd/asteroids/blob/master/asteroids.lisp <comment><USER2> Here's an Asteroids clone I wrote in Clojure a few years back, which has less than 400 lines and some neat stuff like procedurally generated 3D asteroids: [https://github.com/ztellman/penumbra/blob/master/test/exampl...](https://github.com/ztellman/penumbra/blob/master/test/example/game/asteroids.clj)

Some of the design decisions are discussed in detail at <http://ideolalia.com/creating-a-simple-game-in-clojure>

<comment><USER3> The Lisp code used multiple dispatch to handle collisions between objects, whereas your Clojure code instead uses list comprehensions to generate pairs of colliding objects by type. I know Clojure also supports multiple dispatch, so I'm wondering if you could comment on this design decision.

<comment><USER2> The only collisions I care about in my implementation are asteroid/ship and bullet/asteroid, and they're easier to express directly. The OP's version appears to have many more types of collisions, which makes multiple dispatch a more obvious choice.

</comment></comment></comment><comment><USER4> Looks pretty good overall, but there are a few little oddities.

Not to turn this into a design review, but using EQ to test for 0 seems like it's asking for trouble, and it looks like that * has only one argument.

<comment><USER5> Thanks for the tip. I didn't realize numbers with the same value could be different to eq.

</comment></comment><comment><USER6> It would be incredible to me if someone could write some commentary about this for the non-lisper. Skimming it now, it seems very familiar to me (as in, I don't really see anything about it that expresses anything particularly beautifully), but I might be missing some of the finer points. Overall, I recognize a lot of familiar code that I've written for games in javascript. It's hard to appreciate the aesthetics of this, since I'm not familiar with the language.

<comment><USER7> My guess is that the author is new to common lisp. It's the only CL project in his github account, and he wrote it using vim. Most people who have been using SBCL for a while will use emacs with SLIME as it is the recommended IDE for using SBCL.

So I wouldn't expect it to contain any particularly awesome lisp-isms. My first read made me think it was using multiple-dispatch, but it isn't doing so in a way that wouldn't also be possible in a language with overloading, as no more than 1 parameter is ambiguously typed at function call time.

<comment><USER3> I think it's a little disingenuous to expect less of someone for using a different editor. Good catch on the multiple dispatch though.

<comment><USER8> I think it would be fair to say that the characteristics of the code you write could change depending on whether you use an editor or an IDE though.

If emacs + slime is to lisp what eclipse is to java, then I think that is what the GP was alluding to.

<comment><USER3> It makes just as much sense as racial profiling.

<comment><USER9> To avoid the politics: "it makes just as much sense as Bayesian inference".

<comment><USER3> I suppose that's better. Great Lispers are statistically unlikely to be using Vim, but the number of people using Vim is so large that merely using Vim isn't damning evidence that code is poorly written.

<comment><USER10> It's not 'great lispers' it's 'programmers reading lisp tutorials'

If you can find one Lisp tutorial that mentions only Vim or even shows Vim and Emacs as competing setups I would be genuinely surprised.

<comment><USER11> Here is one: <http://ycombinator.com/arc/tut.txt>

"There are 4 parentheses at the end of that call to cons. How do Lisp programmers deal with this? They don't. You could add or subtract a right paren from that expression and most wouldn't notice. Lisp programmers don't count parens. They read code by indentation, not parens, and when writing code they let the editor match parens (use :set sm in vi, M-x lisp-mode in Emacs)."

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> This was on /r/programming and now it's here - I'm sorry, but I don't really understand what this is all about. 600 lines doesn't seem ultra-small to me. And Lisp - well sure, not too common a language for games, but it's not as if this was written in a purely functional style or something. In fact, it looks like pretty standard imperative programming to me - it wouldn't look much different in C.

Am I missing something here?

<comment><USER5> I wasn't trying to write it in less than 600 lines, that's just what the OP used for an interesting title, I guess.

It's just a fun project I did to learn a bit of CL. I translated the code from a Python game, so it's not in pure functional style. Now that you mention it, though, I feel like I should try that.

</comment></comment><comment><USER13> Nice to see a project using <http://code.google.com/p/lispbuilder/wiki/LispbuilderSDL> which wraps the SDL library amongst others and works on Linux, Mac OS X and Windows.

</comment><comment><USER14> great!

it's a nice project, it's free, it's modern, it works, it's an interactive- graphic-non-boring thing, it's a game!

lisp needs more of this.

party's open: more functional, macro wiser and skinnier ones are welcome.

vim should be welcome too as I run ASTeroids fine under vim+slimv (just like the terminal) while under emacs+slime it doesn't display some white line segments here and there... (same sbcl for all)

last thing, I scored 3432 (level 11) with the first coin...;)

<comment><USER5> Thanks for your support! I totally agree with you - I put the code up on Github because I figured someone like me might want to improve it or take it in another direction.

</comment></comment><comment><USER15> no macros? I'm no expert and I'm asking to experts: macros are one of the key features of Lisp. Should macros have helped reducing LOC or improving maintainability?

<comment><USER16> Disclaimer: I'm not a lisper. But according to Paul Graham, _Macros are harder to write than ordinary Lisp functions, and it's considered to be bad style to use them when they're not necessary._ <http://www.paulgraham.com/avg.html>

</comment></comment><comment><USER17> "If the browser ran bytecodes instead of javascript..."

</comment><comment><USER18> Not even using libasteroid...

</comment><comment><USER19> I didn't know what a beautiful code was, until I looked at this project.

<comment><USER5> Thanks!

</comment></comment><comment><USER20> I just observed , whenever there is a discussion about Common Lisp , some how somebody would inject something about Clojure. Did anybody noticed that ?

<comment><USER20> Its simple Logic,

Programmers Those who use C = C Programmers. Scheme = Scheme Programmers. Common Lisp = Common Lisp Programmers. Clojure = Clojure Programmers.

Programmers Who use Clojure != Common Lisp Programmers.

So Please, please stop posting about Clojure in Common Lisp Posts.

I don't want Clojure solution for Common Lisp problem.</comment></comment>


Ask HN: How does Mint and Lastpass stay so seemingly secure, quiet, and popular? - <AUTHOR>

<comment><USER2> Maybe the hackers themselves are using the services and don't want to rock the boat :)

<comment><USER3> No comment :P</comment></comment>


Real Life UX: Returning Items to Amazon Makes Me Smile - <AUTHOR> http://blog.jasonshah.org/post/24828452871/real-life-ux-returning-items-to-amazon-makes-me-smile <comment><USER2> Amazon is the most amazing company I've ever dealt with.

Once, I've had a package stolen from my doorstep, and they replaced it free of charge (fortunately it was just $5 guitar strings).

Last year, I bought a camera with a 18-35mm lens ($500) a week or so before leaving for vacation. It arrives 2 days later (thanks prime), but unfortunately Amazon Warehouse had shipped me the bundle with a 15mm lens. I contact their support right away— they propose that I return the camera and they send me the original 18-35mm bundle, but I tell the lady that I'm leaving in 3 days and would like to have the camera for my vacation. She talks with her supervisor, and 2 days later I get the 18-35mm lens in the mail (~$200 value) and they tell me I can keep the 15mm lens.

I spend a couple of hundred dollars at Amazon each month (research books are expensive), which is probably why I got such a great treatment— but I was pretty blown away.

<comment><USER3> I had a similar experience, except it was a MacBook Air stolen from my doorstep. They overnighted a replacement immediately with no questions asked (other than, "did you check with your neighbors?")

Your point about the service level relating to your customer history is a good one, though - I've spent upwards of $50,000 with Amazon in the last 3 or 4 years, so the real test would be how they'd react to a new customer in the same situation.

<comment><USER4> Packages are insured so, unless they suspect fraud, they will let insurance cover it.

Consumers usually pay FedEx for insurance when we need a package but I bet Amazon self insures, given their size. Either way, money is set aside to cover situations like this.

<comment><USER3> I know insurance covers it; I'm wondering how they determine what situations are likely to be fraudulent. Is customer history involved? My parents have never ordered from Amazon; if the same thing happens to them on their first purchase, what would the resolution be?

<comment><USER5> They probably give users the benefit of the doubt the first time, then flag them if they do it too much. At the scale of amazon, the cost of a product is less then the cost of the time to chase up every single report of theft.

</comment></comment></comment></comment></comment><comment><USER6> > So I bought both - confident that I would return whichever one was inferior > or the more expensive one if the cheaper one showed up on time.

And people wonder why there's global warming.

<comment><USER7> Global warming aside, what a pain in the ass customer. He was decided from the get-go that he would be a customer service issue for Amazon.

@jason_shah There are worse things to be than a pain in the ass customer, so please don't think of this as an insult to your character.

<comment><USER8> To be fair, you could easily see this as one of Amazon's "features", much like Zappos. Everyone orders from Zappos knowing that they can not only return shoes for free, but that it is usually encouraged to buy several and return the ones you don't want.

While Amazon isn't quite so blatant about that "feature", their incredibly awesome customer support, zero-hassle returns encourage this kind of behavior...effectively making it a feature.

And to be honest, it's an awesome feature.

<comment><USER9> I often wonder if Amazon's acquisitions of Zappos and Quidsi (Diapers.com, Soap.com, etc.) are simply to experiment with different "features" without risking changes to Amazon.com.

</comment></comment></comment></comment><comment><USER10> Amazon has amazing customer service.

However browsing items for a particular category on their site is not so easy.

When you go to a specific item, you should be able to see what categories it's stored in, and then browse those categories directly (like breadcrumbs). But that's impossible on Amazon.

They seem to have the ability though - if you pick a part that is not for your particular car, it will show you what categories it's in. They should make that option for all items.

<comment><USER11> Scroll down the page. All the classification hierarchies are there. And they're even linked breadcrumbs exactly as you wish.

<comment><USER10> omg, I cannot believe I've missed that for so many years

"Look for Similar Items by Category"

right near the bottom - I guess I never make it that far down the page!

</comment></comment></comment><comment><USER12> This guy is ripping off Amazon. You are supposed to pay a cost when your return is not due to Amazon's fault or item's defect.

If a significant amount of people keep doing this, Amazon will have to raise the price for all of us.

<comment><USER9> This isn't really true.

All the retailers I've worked with (both brick & mortar and internet-only) see returns as a small cost of doing business. An easy returns process makes customers happy and keeps down credit card chargebacks. If you are selling on the internet, handling a small percentage of returns is considerably cheaper than having a retail presence.

You can look at Zappos (now owned by Amazon) for having an amazing liberal return policy. you have 365 days to return things and they pay for the return shipping. It's all to give you a safe feeling and buy multiple items.

In most cases large retailers force their vendors to cover the costs of returned merchandise that they can't resell (due to opened packaging etc).

One of the main reasons I'll buy from Amazon is that the transaction carries zero risk for me. If there is any problem whatsoever I know it's going to be resolved to my benefit.

<comment><USER13> > In most cases large retailers force their vendors to cover the costs of > returned merchandise that they can't resell (due to opened packaging etc).

Yes, and this can increase costs to the consumer. Cost is cost. It has to be born by someone in the chain and it's pushed on to the consumer if possible (granted in the competitive retail space it's harder to make consumers absorb costs).

</comment></comment></comment><comment><AUTHOR> Amazon really blows me away with their end-to-end experience. The funny thing is that their site's UX leaves much to be desired, but it's highly functional and they still have a world-class brand even without a world-class frontend for Amazon.com. We obsess over our web app's front-end design, but often neglect the end-to-end experience.

<comment><USER14> Could you elaborate on how you think their site's experience leaves much to be desired _despite_ being highly functional? I'm having trouble thinking of any time when I thought to myself "boy, I hate the process Amazon makes me take to do this task" and isn't that really what it's all about?

<comment><USER15> The main area I have complaint with is the discovery process for finding digital videos to watch. Once you've used something like Netflix, the Amazon process is awful.

<comment><USER14> Oh, good point, this is definitely true. I have Prime, but Netflix is so much easier to find stuff on (or even remember that there's stuff there to find) that I've never used any of the included free Amazon video stuff.

</comment></comment></comment></comment><comment><USER16> I worked for Amazon, and focusing on the customer experience is something that permeates its culture (at least in fulfillment).

It's not even just having good customer service/returns, ensuring the best customer service even permeated through our code.

</comment><comment><USER17> Amazon is fabulous, but that sort of real-time return policy workflow is for relatively low-mass & low-expense items from high-volume retailers.

Try returning custom car parts or, really, anything close to $1k USD which essentially mandates shipping insurance.

That said, I love-love the instant UPS-label "pick-up at your office or home" return workflow for the majority of stuff I buy from them.

The item is here in two days (Primed) and if I need the rare return, it's, at most, about 5 minutes worth of my time & attention. It's such a total win over the typical retail process for non-bespoke items.

</comment><comment><USER18> Amazon has a great returns policy, and good, fast customer service.

Amazon lacks in the following areas (covered in another post):

1\. The price filter doesn't really work.

2\. Sorting doesn't work unless you choose a category (many items are miscategorised or match multiple categories)

3\. Backwards shipping policy "What the heck, let's order it for tomorrow" on an ordered item often doesn't work because it's too late.

4\. The ratings system gives too much weight to lightly-reviewed items.

5\. Often the dispatch date for an order is shown on the checkout page, the expected delivery date would be better. Amazon AA batteries? 5 week delivery. Ouch.

</comment><comment><USER19> Once I bought the most expensive Vita bundle on Amazon and a day before shipping they included some free stuff with the cheaper bundle (I think it was a Sony decision because other stores did the same). I sent a email to them simply asking why this was the case and they sent me $50 credit with no questions asked.

</comment><comment><USER20> Not to derail all these comments about Amazon, but I think Jason's reminder that UX is just a subset of overall "CX" or customer experience is a good one. I spend a bunch of time reminding folks that they can't just look at one page, or one set of functionality in a vacuum, but instead need to see the cohesive whole, from the first ad a person sees to the quality of some autogenerated confirm message. It all counts. Functionality and design, btw, can be awesome, but if it's wrapped around a defective business process, you will still suffer. Making users jump through hoops, even hoops of diamonds and gold with ergonomic handles, can still suck.

</comment><comment><USER21> What is amazing in this?

Returning goods bought by mail order or online is the most basic service sellers have to implement. Refund if the product is not open and is returned at most seven days after purchase is guaranteed by law. If it is open a reason such as "does not fit" should be enough to be refunded.

Or is it the fact that the customer was refunded before amazon received the parcel? I am not impressed as my bank account is debited once a month, which means I usually still have my money when I send an item back to the seller!

It was already like that when I was buying things (especially clothing) through mail order twenty years ago. Or is it only in my country?

</comment><comment><USER22> It's amazing that actually nobody noticed, including the author, the real problem which are vague descriptions of delivery dates, especially for international shippments. This made him to order two different items at the same time as he had no option to either evaluate shippment time in a more precise way or make a conditional FIFO-driven order. And this is the actual flaw in Amazon UX.

<comment><USER23> And also that it wasn't possible to discern the practical differences between two products where one cost twice what the other did.

</comment></comment><comment><USER24> Or try think this way - your doorstep is part of Amazon's storefront. Even though you have to make a deposite and wait much longer than real retails before perusing the goods at hand, you think they have great customer service. Genuinely interesting, with no sarcasm.

</comment><comment><USER25> Sounded good at first but then started sounding like an advert written by a social media promotions company

<comment><USER26> It's Jason Shaw, a fairly avid blogger.

</comment></comment><comment><USER27> I wish Jeff Bezos quit being such a dictating dick when it came to the home page. I mean seriously, I fucking love amazon, why the hell is it so fucking unintuitive and feel like a time traveling 95 site.

</comment><comment><USER28> +1 for TLDR.</comment>