How to hire a designer for your startup - <AUTHOR> http://blog.foundryhiring.com/post/31992180007/how-to-find-a-designer-for-your-startup

<comment><USER2> First off, great article/read. My only suggestion is that on your "TL;DR", you should add "(pay them)" to your "give a 2-hour challenge" part. You mention that in the article, which as a designer, I completely agree with. I would just make sure people don't read only the "TL;DR" and think you meant spec work! :)

<comment><AUTHOR> Edited! Thanks for the feedback.

I'd love your input on another thing. We're passionate about making the hiring process awesome for both employers and jobseekers.

I've spoken to a few designers who really dislike things like 99designs, or to a certain extent, what this article advocates because it seems to commoditize designers. On the other hand, the vast majority of designers we've worked with are really happy with the way we met and started working, because it ensures a good fit and doesn't waste anyone's time.

As a designer, how do you find work (either full-time or freelance)? And in the ideal world, what would that process look like for you?

<comment><USER2> Well, I actually just recently started (back in June) as the new Senior Ui Designer for Angie's List (<http://www.angieslist.com>), so I just went through that whole process.

Yes, I agree with the other designer opinions on sites like 99designs. Sites like that, to me, are the devil! (haha)

I would say my ideal process for full-time is either finding jobs posted online and applying or having someone contact me about a job opening. Then from there I would like to talk to the company, show them my past work, show them recommendations I have, and learn more about the job and their company. Then if the company and I were still happy, I would take the job.

My freelance process is about the same, however I may skip over how much I want to learn about the company, seeing as it wouldn't be as important if I wasn't a full-time employee.

I, personally, am a more special use case because I have a well rounded portfolio that I would refuse to do spec-work being as it would be a waste of my time. If they couldn't make a decision from my past work, then I don't think it would be a good fit anyways. However, I realize not all designers have the luxury of being able to show off work in all the ways they may be experienced in. In that case, if it were me, I wouldn't be opposed to doing spec-work if it was only going to take an hour or two. Anything over that time, I would like to get paid for that work (if I wasn't hired).

Does that help and/or answer the feedback you were looking for? ...Hopefully... :)

Feel free to comment back or contact me further via email (zreed [_at_] bluetideproductions [_dot_] com).

<comment><AUTHOR> Thanks for the thoughtful answer. That makes a lot of sense. One of the reasons that we started this company is that we know how much applying to jobs can suck. Our business is helping companies hire better, through better process management and analytics. The obvious tension here is that companies need to be efficient, but I personally think the best recruiting is done at the human level - that is, recruiting shouldn't be a cattle call or a stack of resumes.

So when we've hired in the past, we want to make sure there's a good fit on both sides, and this is one way we've found that really works.

If you have any other suggestions on how companies could do a better job hiring designers, I'd love to hear it.

And congrats on the new job :)</comment></comment></comment></comment>


Beware of renice - <AUTHOR> http://jlebar.com/2013/4/11/Beware_of_renice.html <comment><USER2> renice works exactly as I'd love expect, changes the priority of the thread with id $id or group of threads in a group why would there be confusion?</comment>


Top-Down operator precedence parsing - <AUTHOR> http://eli.thegreenplace.net/2010/01/02/top-down-operator-precedence-parsing/ <comment><USER2> The more I code, the more reasons I find to simply use parentheses everywhere. Why bother even thinking about 1 + 2 * 4 when you could write 1 + (2 * 4)

Ok, if you've got a lot of operators in one line, it can get difficult, but you're probably running into trouble reading it even without parenthesization. It seems like one of the huge wins of Lisp that you don't have to worry about this problem.

<comment><USER3> This brings up an interesting problem for me. I've written a number of compilers where operators were not defined at parse-time, but handled via macros that can be defined at any point. This makes the logic for transforming infix operators very difficult. If a change was made to make all operators operate left-to-right, this issue would go away. What do you guys think about this? Would it cause you serious problems while writing code?

<comment><USER4> In addition to Smalltalk, the APL family (including J and K) do this too. It doesn't cause serious problems while writing code; once you get used to it, it's a whole lot simpler. It does, however, create a barrier to mainstream acceptance. So it seems to me your decision depends on how badly you want the latter.

<comment><USER5> I've often seen the claim that not having operator precedence hurts a language's acceptance, but is there any concrete evidence of that? Could it just be a coincidence?

Were it not for the closed/licensed/expensive/commercial nature of Smalltalks, the language probably would not have fallen into to the relative obscurity it suffers today. I personally doubt that operators had anything to do with it. From what I've read of the history of the era, the language itself was much- loved and rising in popularity until the introduction of Java disrupted the traditional Smalltalk business models.

<comment><USER6> While it isn't exactly the same thing, OCaml requires you to use different operators (e.g. + vs. +.) for ints and floating point numbers, and it's a _very_ common complaint about the language. (It has conventional precedence.)

When conventional arithmetic doesn't "just work", languages will often give a first impression of being awkward, even though the rules of operator precedence are actually more complicated than just consistently using prefix or infix left-to-right.</comment></comment></comment></comment></comment>


Migrate your Java Application from Heroku to OpenShift - <AUTHOR> https://www.openshift.com/blogs/migrate-your-java-application-from-heroku-to-openshift

<comment><USER2> I haven't used a serious app in production on OpenShift, but I have been playing around with a Java project recently. Assuming I get it to production, I'm going to stick with OpenShift. I think the blogs, forums, and docs are great.

I started out with gradle and embedded jetty, and found no out-of-the-box support. They did do a nice blog post on how to use gradle for builds[1]. Unfortunately, the blog uses gradle version 1.6 and that's the last gradle version that doesn't throw an exception while building[2].

Wanting things to be easier, I switched over to maven[1] and tomcat:

        OpenShift has supported Apache Maven as default build system for Java based projects since the first release.

Since going with this setup, things just work.

I also really like that the environment configuration is stored in the codebase under the .openshift folder. This makes it very easy to, for example, develop locally against http but make all your traffic go through https on OpenShift. And the free piggyback ssl means https just works too.

[1]: [https://www.openshift.com/blogs/run-gradle-builds-on- openshi...](https://www.openshift.com/blogs/run-gradle-builds-on-openshift) [2]: [http://issues.gradle.org/browse/GRADLE-2871](http://issues.gradle.org/browse/GRADLE-2871)

</comment><comment><USER3> OpenShift's free tier provides 3 "gears" with 512MB RAM per gear and 1GB disk space. This seems to be much more than Heroku's free tier of 1 "dyno" with 512MB RAM and 10k rows DB space.

(I'm on Heroku for now though I wonder if it's worth switching.) [https://www.heroku.com/pricing](https://www.heroku.com/pricing) [https://www.openshift.com/products/pricing](https://www.openshift.com/products/pricing)

</comment><comment><USER4> Just don't. Opeshift has terrible performance, containers will stop to work at random times. It's just bad experince.

<comment><USER5> Did you use it during the free trial? I've found it give you just enough control. It's leagues ahead of what I saw from heroku as far as java goes.

They were great when I asked for more resources and the like as well during the trial. I've found a VPS better for my own purposes, but I'm kind of an outlier as far as the kinds of things I develop. Most people don't need that fine grained of control.

Openshift itself is a great model. That doesn't even count HN's love child Docker throwing their lot in with these guys.

I wouldn't mind evaluating their enterprise offering if it becomes relevant. I'm sure the paid product is much better than what was in the free developer preview a long time ago.

At least Red Hat is sticking by it, I haven't seen much in the way of cloud foundry in the while (keep in mind I haven't looked in to it in a while, so feel free to correct me here.)

I've also tried cloudbees and the like. I liked the fact that red hat is good on multiple fronts. It seems like they're nailing it overall.

That being said: heroku is usually the standard. I'm not really too much of a ruby person myself, I'm sure it's amazing for that though.</comment></comment>


Implementing Diversity in Startups - <AUTHOR> https://www.linkedin.com/pulse/implementing-diversity-question-design-karan-dehghani/ <comment><AUTHOR> I am a guy and hear and read about diversity all the time. But I get the feeling that not a lot of founders are taking the question of diversity serious enough to act. Here are my thoughts, which are imperfect for sure. Feedback by you guys is much appreciated.</comment>


The Man Who Defined Deviancy Up - <AUTHOR> http://online.wsj.com/article/SB10001424052748704823004576192673060882298.html

<comment><USER2> Timely article. I was reading a National Geographic about taming foxes through selective breeding, and reflecting on how humans select for good-natured creatures. Perhaps this is happening with the human race too? Do jails serve to exclude violent people from the gene pool?</comment>


O2 'to seek millions' in damages over data outage - <AUTHOR> https://www.bbc.co.uk/news/business-46499366 <comment><USER2> Ericsson said last week that "an initial root cause analysis" had indicated that the "main issue was an expired certificate in the software versions installed with these customers".

<comment><USER3> I suspect I'll never know, but I would be really interested to know what sort of certificate. Was this part of some larger public system or was it a purely internal PKI? If internal, did the certificates _do_ anything of value or did they purely make the system more fragile because somebody thought it ought to have certificates?

One of the arguments in favour of abusing the Web PKI to do other things is that tooling for the Web PKI is in a relatively good place. And a lot of other things that you might ideally hope exist actually DO exist for the Web PKI. There's independent oversight, somebody is actually reading those yawn-making audit reports, it isn't perfect but it's not just make believe either.

But on the other hand, the Web PKI is ours, and so if it suits us to change it we don't really care that this is annoying for your payment card systems, jet aeroplanes, nuclear submarines or whatever else you've duct-taped the Web PKI into. This was fun to watch with SHA-1 for example and is currently causing some fallout for names with underscores in (DNS can handle a name with an underscore in it but they're prohibited for hostnames. Lots of people ignored that, but that's their problem, not ours and they are not happy about that).

<comment><USER4> Ericsson have both their own PKI infrastructure[0], at least for software integrity checking (however that certificate is valid since March this year, and the CRL[1] it refers to is empty), in addition to using other certificate authorities for everything such as the hosting of websites to internal infrastructure[2]. I suspect it wasn't any of the above - rather it is the PKI that is used in running the IPSec networking done between carrier's RANs and other parts of core network[3], which is probably Ericsson's own internal CA.

[0] [https://www.ericsson.com/en/about-us/enterprise- security/pki](https://www.ericsson.com/en/about-us/enterprise-security/pki)

[1] [http://crl.ericsson.net/Ericsson_Software_Deliverable_Integr...](http://crl.ericsson.net/Ericsson_Software_Deliverable_Integrity_Protection_Root_CA_A1.crl)

[2] [https://crt.sh/?q=%.ericsson.net](https://crt.sh/?q=%.ericsson.net)

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

<comment><USER5> Further expanding. GPRS Tunneling Protocol (GTP)[1] is what gets used to connected to the provider's data/voice network. This could be over any medium (wifi, GSM, UMTS, or LTE). It's likely this was the cert protecting GTP-C's ipsec tunnel[2] as without the ability to signal, pretty much everything on the network goes down.

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

[2] [https://cyber- defense.sans.org/resources/papers/gsec/securin...](https://cyber- defense.sans.org/resources/papers/gsec/securing-gprs-network-infrastructure- network-operator-039s-perspective-107183#page=14)

<comment><USER6> As far as I know GTP is only used for data sessions (PDP) contexts. It should not affect handset registration and circuit-switched voice.

</comment></comment></comment></comment></comment><comment><USER7> At the same time Softbank's network was also down at the same time in Japan for the same Ericsson issue. The scale is quite surprising.

<comment><USER8> Softbank's press release [0] mentions that a total of 11 countries were affected by the outage. I can't seem to find any information on what other countries were affected though.

[0] [https://www.softbank.jp/en/corp/group/sbm/news/press/2018/20...](https://www.softbank.jp/en/corp/group/sbm/news/press/2018/20181206_02/)

<comment><USER9> Vietnam's second largest mobile network operator Mobifone was affected for 3 hours[1]. Now we know 3: UK, Japan and Vietnam. I'm sure it's possible track down the other 8.

[1] (link in Vietnamese) [https://congnghe.tuoitre.vn/ericsson-xin-loi-ve-su- co-sap-nh...](https://congnghe.tuoitre.vn/ericsson-xin-loi-ve-su-co-sap-nhieu- mang-di-dong-tren-toan-cau-20181207123405213.htm)

<comment><USER10> Wow, Hong Kong's Smartone uses Ericsson and wasn't effected. I am surprised at how wide spread the problem is. How could Ericsson messed this up when the it has the biggest chance to grab business from Huawei.

</comment></comment></comment></comment><comment><USER11> This seems like a publicity stunt more than anything else. There's no way they actually lost 100MM here, and doing this ensures the public sees Ericsson as the real villain, and paints O2 as the victim.

It's a very clever strategy, nonetheless.

<comment><USER12> Just some dirty back-of-the-napkin numbers, but theoretically, £100MM doesn't seem unreasonable.

O2 have 25MM direct customers, plus another 7MM through reseller networks — so that's 32MM people directly affected by the outage.

Presuming O2 receives an average of £30 per customer per month (which I think is a reasonable estimate), that's £940MM/month, working out to £32MM per day in a 30-day month.

O2 are refunding customers 2 days' worth of service for the outage, so that would be £64MM in lost revenue.

Add on top of that brand and reputation damage — and other factors I've no doubt forgotten to include — and £100MM doesn't seem unreasonable.

<comment><USER13> Presumably there is a considerable amount for reputational damage.

<comment><USER12> I hadn't considered it when I wrote my earlier comment, but I wouldn't be surprised to see O2 receive their own reputational damage invoices from their reseller networks (O2, Tesco, etc.) in relation to the problems.</comment></comment></comment></comment>


Ask HN: A free smartphone supported by ads? - <AUTHOR>

Why hasn't anyone built a smartphone (with free data and free voice) that is supported via popup ads on the device? Yeah, it'd be annoying but I have to assume that millions (billions?) of people would use it? <comment><USER2> You assume that because...? If rumour is to believed, Google and Facebook have both looked into this and couldn't make the model work.

The existing carriers and retailers are not interested because it threatens their existing revenue streams, creating huge barriers to entry. And perhaps demand is not as high as you think.

<comment><USER3> Also: People will find a way to work around this, cutting of your revenue stream.</comment></comment>


Google, users "doing it wrong" is a signal to get it right - <AUTHOR> http://michael.terretta.com/google-these-are-your-users

<comment><USER2> _Google's engineers were likely delighted when Buzz automagically preconfigured their Follow networks._

Blaming this on engineers makes no sense. Engineers include some of the most timid, paranoid, self-conscious, and socially self-protective people I know. The people who saw no problem with the auto-follow feature are the people who thrive on living public lives: the masters of social media whose natural belief in self-promotion as the most essential human attribute and the driver of all progress parallels the engineer's faith in human reason. Just as the engineer is so bemused by unreason as to feel justified in excluding irrational people from all consideration, classifying them as atavistic troglodytes, so the bloggers and twits find it natural to brush aside the shy and the retiring as relics of a benighted age in which human beings' natural inborn desire to expose a carefully groomed self to the gaze of hundreds, thousands, millions, _billions_ of people was tragically stunted by the primitive state of society.

The people who approved this auto-follow functionality knew it would piss some people off, and they knew exactly _what kind_ of people it would piss off. They just thought those people could safely be ignored. They thought "everybody" would embrace this new brave new world where all the accidental and unnecessary barriers to extroversion were being thankfully overthrown by technology. Boy, were they wrong :-D and I'm very glad they were; I'm glad I'm not a freak for wanting a little bit of privacy.

[EDIT, hopefully before somebody complains: I know I'm generalizing. I'm perfectly capable of inserting all the necessary disclaimers, but I left them out for readability. EDIT again: Apparently I wasn't fast enough.]

<comment><USER3> "I'm perfectly capable of inserting all the necessary disclaimers, but I left them out for readability."

If enough people are distracted by their annoyance at un-disclaimed overgeneralizations, you haven't actually increased readability.

<comment><USER2> Reading should be a process of getting as much out of something as you can, which usually means giving the writer a little bit of credit and preferring stronger readings over weaker ones. There are always readers who want nothing more than an excuse to take offense, but there's no point in writing for people like that. I only added the disclaimer to frustrate them a little bit.

</comment></comment></comment><comment><USER4> When most sites get something 99.99% right that's doing really good. Even your hosting company won't assure you 100% uptime. And how often has Twitter been down? Or how many times has Facebook turned on a feature that everyone hated? Remember Beacon? It's easy to call foul on Google's mistake (and it clearly was a mistake), but it's easy to forget that we rely on Google's super-stable infrastructure and that infrastructure has fewer bugs and higher uptime than almost any other service. Picking out the Facebook login bug is funny, sure -- Google-bombing is always kind of funny. But saying that you know better than hundreds of the world's best engineers who've studied these problems for many years... well, that feels like hubris.

<comment><AUTHOR> Google today admitted to the BBC that "hundreds of the world's best engineers" were indeed out of touch:

<http://news.bbc.co.uk/2/hi/technology/8517613.stm>

</comment></comment><comment><USER5> "The customer is always right" gets re-written for the digital age: "The user decides what the correct behavior should be."

<comment><USER6> The designers of programming languages should pay attention.

</comment></comment><comment><USER7> "If this were a standard traffic sign misdirecting this many people, it would have been pulled down long ago."

HA don't hold your breath.

</comment><comment><USER6> _making Google work for them and get them where they're trying to go, instead of trying to retrain them to adapt to Google._

In other words, make products for the way people actually do things. Apple often gets this right. When they don't, it's often because they are there too early. (The iPad may be another Edsel.)</comment>


Aaron Swartz: Idealist, Innovator—And Now Victim - <AUTHOR> http://www.thedailymuse.com/education/aaron-swartz-didnt-have-to-die/

<comment><USER2> The title of this article is that he "didn't have to die." That is correct, he didn't have to kill himself. Yes, he faced significant adversity, which he brought upon himself. It's said that character is how you deal with adversity. This person chose to end his own life instead of confront the challenge he sought. No, the federal prosecutor was not in the right, but neither are they in the wrong for the decision by Mr. Swartz to kill himself.

<comment><USER3> Oh, pish. We're more than happy to condemn young cyber-bullies who hound kids to suicide without blaming the person committing suicide. If the act of making someone's life unbearable is enough to blame bullies for a suicide, then surely it's the same for the prosecutor.

Note that this doesn't rely on the victim's age: regardless of whether a 26 year old can be blamed more for suicide than a 16 year old, that doesn't change the fact that we should give similar blame to the external factors in both cases. Indeed: most tormentors of teens are themselves teens, so they, if anything, deserve less blame than a sociopathic adult prosecutor hellbent on career advancement, damn the consequences.

Also: the implicit attack on Aaron's character is uncalled for. You know nothing at all about the quality of his character. You should keep in mind that many of us here did know him. If you feel the need to engage in "man up" rhetoric in some pointless display of how hard-nosed and pragmatic you are, you should keep in mind it's a reflection more on you, not the person-object you're leveraging to establish your own status.

<comment><USER4> While I agree with your sentiment.

I'd also say we are wrong to condemn young cyber-bullies. There are things in life that create adversity, then there are ways of dealing with adversity. I think conflating the two, makes it difficult to discuss.

That said, clearly the two are related, but it is correlative, not causative.

<comment><USER3> I agree: plenty of people here have been bullied and came out relatively unscathed. Often the bullying survived was worse than what drives others to suicide. It's messy, because you can't tell in advance the likelihood of your "being a dick" turning into "instigated a suicide," because something minor for some people--nasty rumors on Facebook or a felony charge--might be life- rending for others.

But just because something is uncertain doesn't mean you have to treat the worst case as equivalent to the typical or median case. We treat drunk driving much more leniently than vehicular manslaughter while drunk. That's the lens I view the government's role through.</comment></comment></comment></comment>


San Francisco is a 'train wreck' because of the 'tech sector,' says Marc Benioff - <AUTHOR> https://m.sfgate.com/bayarea/article/Marc-Benioff-Davos-San-Francisco-is-a-train-wreck-13551953.php <comment><AUTHOR> This got me thinking. It's at least 250 million a year for the (assuming) 7500-10k homeless people on the streets of San Francisco.

Would it be possible to build a new city with rehab for 1000 people for $250 million.

And then there is Proposition C for an additional 300 million dollars. The money isn't 100% spent on the homeless but also on 'other expenses' ...like with the non profits we donate to, it gets distributed to staff along the way.

[https://en.m.wikipedia.org/wiki/Homelessness_in_the_San_Fran...](https://en.m.wikipedia.org/wiki/Homelessness_in_the_San_Francisco_Bay_Area)

[..]The Coalition on Homelessness advocates for Proposition C on the November 2018 ballot.[83] Proposition C would collect up to $300 million per year to fund services for the city's homeless individuals through taxes on San Francisco's biggest businesses. In November 2018, Proposition C was approved by 61% of San Francisco's voters; however, this proposition has been put on hold while the state debates whether a simple-majority is enough to pass the proposition or whether a two-thirds supermajority should be required.[..]

I am interested in the creation of new cities and envisioning them.

"Would it be possible?" question: For 250-300 million, one could build a new green city with amenities and give them a universal basic income.</comment>


BuildAfrica.org - <AUTHOR> http://www.buildafrica.org/ <comment><USER2> I dislike such projects. It's kind of like having a showcase for the "special kids" where everyone can come and look at how "great" they are because they made some useless trinket.

Build by looking people in the eye, talking and trading with them, not by praising some impressive but ultimately useless thing some random people people from some village did.

That's why China is winning in Africa. The chinese do not build websites showcasing how great some african villagers are. They come and say: you have that, we have this, let's make a deal. You win, I win.

<comment><AUTHOR> I posted this for the "hacker interest" value - there's some cool hacks there. In the broader view, I definitely see your point.

</comment></comment><comment><USER3> Talk about Hacker News in it's truest sense. Makes me embarrassed to have ever said "we can't" or "I can't" on any project I have worked on.

</comment><comment><USER4> Another article on the site had a link to a job board there: <http://jobs.whiteafrican.com/> I'm thinking about seeing what kind of candidates I could get. Any suggestions on how payment works? I've never worked with an international candidate before

</comment><comment><USER5> Give it up. Africa is hopeless.

Whitey's great weakness is this weird urge to help other races. We need to help ourselves first. God knows everyone else does - by feeding on us.</comment>


Flutter: Futures, Isolates, Event Loop - <AUTHOR> https://www.didierboelens.com/2019/01/futures---isolates---event-loop/ <comment><USER3> This is a great writeup, wish I had it when I started with Flutter. BTW, I've written a couple Flutter apps now and this set of tools (Futures, async/await, Isolates) covers my multithreading use cases in a really nice and safe way.

By comparison, Grand central dispatch is pretty nice on iOS, but I really miss the first class async/await calls. Side note: How did they make an entirely new language for app development (Swift) and not build in async/await support?

Kotlin co-routines seem to be a pretty nice solution on Android, but before that it was a bit of a mess. There was 4 or 5 different ways to do things async, they all interact in super complicated ways with the activity life cycle, and basically nothing is quite what you need.

Side side note: Unity also does a really nice version of all of this with a single event loop and really powerful co-routines. Worth checking out sometime.

<comment><USER4> > _By comparison, Grand central dispatch is pretty nice on iOS, but I really > miss the first class async /await calls. Side note: How did they make an > entirely new language for app development (Swift) and not build in > async/await support?_

By building it gradually and not rushing everything from the first day.

That said:

[https://gist.github.com/lattner/429b9070918248274f25b714dcfc...](https://gist.github.com/lattner/429b9070918248274f25b714dcfc7619)

<comment><USER5> I think this is a question of priorities rather than rushing things. Swift is a post Moore's Law language after all.

</comment></comment></comment><comment><USER6> I've been getting into Flutter and Dart recently after being a long time React fan. I must say I like many things Flutter does differently. Especially around its Material UI package (built-in) which is miles above any other web material component library in any framework (React, Vue, Angular, etc.)

I must say wrapping my head around the addition of 'await' and the changes it made to the EventLoop processing was difficult but as I type this comment I realize I do fully grok it now. I must say that this is IMO probably the most important piece of info in the article.

Basically,

"`await` causes immediate execution of the Future (up to the first `await` in the Future) verses appending the Future to the end of the EventLoop queue"

If I have the above wrong someone please call me out.

Great article.

<comment><USER7> Await doesn't immediately execute the future; see the example code in the article.

It looks like the Dart concurrency model is basically the same as JS except with microtasks and replacing "worker" with "isolate."

<comment><USER6> I'm not sure I agree.

In the first example `await` is added before the Future creation and this causes immediate execution in the printed output (second version). In the first version both Futures are pushed onto the EventTask queue and are executed after main() has finished.

In the second example with method1 and method2, in method1 with async (which signals a Future) on the forEach, all three Futures are pushed to the EventLoop queue and execute after method1() has finished. In method2() there is no new Future being added and execution happens immediately with the end of method2 executing after all delayedPrints.

You also see the effect with all three Futures resolving at once in the method1 case due to all three being added to the queue at the same time each with the same delay. Whereas with method2 each print with a delay after due to this function being synchronous with nothing going on the EventLoop.

<comment><USER7> Await pushes your task onto the end of the event queue; this might seem like you're immediately executing a future in many cases but it's not true in all cases. Other futures created by your thread might take priority. Consider the case where you pushed a future onto the event loop which infinite loops before you used await. Then your code will freeze.

</comment></comment></comment></comment><comment><USER8> I'm no functional fanatic, but one thing that I enjoy about it is the idea that function calls- and futures- resolve to a value.

The code example where D doesn't get called last because of the missing await grinds my gears something fierce, especially because I missed it the first glance through. This type of bug is much harder to create when you don't constantly rely on side effects everywhere.

That said, the article did a really good job if you're not already familiar with the same concepts from JS land (with the event loop sans visible microtasks, Promise instead of Future, abd web worker instead of Isolate).

<comment><USER9> This is my main point of criticism about Dart (and Flutter SDK design). While Flutter is incredibly pleasant to work with compared to native Android or iOS SDKs, it still feels so terribly ill-conceived in so many areas coming from a functional background.

For the Dart part the Future-problems you already mentioned and the need for async/await language level keywords is disappointing. Also if/else not being an expression as well as syntactic complexity (e.g. defining constructors with factory/static/const keyword combinations). Why come up with a new language in 2011 that repeats the null mistake?

Flutter gives you a beautiful and comprehensive set of widgets and makes a great first impression. But when digging a bit deeper, things tend to get ugly. Massive side effects hidden deep inside OOP structures (e.g. routing), stuff like mixins, validation tied into view layer etc. I couldn't help but find so many mistakes being repeated.

After spending a couple months with Flutter, I decided to ditch mobile development all together. I wish they followed the direction react is steadily going: promoting simple, pure widgets and passing values around, avoiding side effects.

<comment><USER10> _> the need for async/await language level keywords is disappointing_

This is unfortunate [1], I agree. The challenge is that if you don't do that, it's _very_ hard to compile the resulting code to efficient JavaScript. Dart was initially only a web language and is now both a web and a mobile language.

You can think of function calls as having two different calling conventions: return the value normally, or return it by invoking a continuation with the result. Asynchronous functions require the latter. You could compile _all_ function calls to that style, but it's much slower and generates larger JS.

You could try to infer which functions should be called using an async style and which shouldn't. That works in simple cases, but breaks down in complex cases involving generics and higher-order functions. I don't know of any literature that investigates how feasible this is in practice, so making your language _rely_ on this optimization for tolerable performance is a very large gamble.

This may change over time now that JS has generators and may be adding async/await syntax, but Dart was designed before either of those existed.

 _> Also if/else not being an expression_

Yeah, everything being an expression is nice. I wish Dart had been designed that way. The original designers of the language believed they needed to be _very_ conservative in order to be successful and I think they overshot that mark.

 _> syntactic complexity (e.g. defining constructors with factory/static/const keyword combinations)_

Some of this is annoying, yes. It does have some practical value, though:

* The restriction around initializing final fields in the constructor initialization list, which is what forces you to use factory constructors in some cases, ensures a very nice property: it means in Dart you can _never_ observe a final field before it has been initialized. This is not true in C#, Java, or Kotlin. Now that we are working on non-nullable types for Dart [2], this will let us have sound non-nullable types, unlike those other languages.

* Personally, I find const to be more of a hassle than it's worth, but const constructors do let you define real compile-time constant objects of user-defined classes, which isn't something some other languages can express. That, in turn, lets you rely on very fast identity tests for checking equality between two objects. Flutter relies on this heavily when diffing the widget tree to determine which parts have changed efficiently.

 _> Why come up with a new language in 2011 that repeats the null mistake?_

Tell me about it [3]. (Note the date on that blog post.) We're working to fix it now.

[1]: [http://journal.stuffwithstuff.com/2015/02/01/what-color- is-y...](http://journal.stuffwithstuff.com/2015/02/01/what-color-is-your- function/)

[2]: [https://github.com/dart- lang/language/issues/110](https://github.com/dart-lang/language/issues/110)

[3]: [http://journal.stuffwithstuff.com/2011/10/29/a-proposal- for-...](http://journal.stuffwithstuff.com/2011/10/29/a-proposal-for-null- safety-in-dart/)

</comment></comment></comment><comment><USER11> If you're interested in the Dart VM, I also recommend taking a look at Vyacheslav Egorov's Introduction to Dart VM ([https://mrale.ph/dartvm/](https://mrale.ph/dartvm/)).

</comment><comment><USER12> What is the role of the `async` keyword in Dart? I couldn't understand it from the article.

> the outcome of the method is a Future

Isn't the function signature sufficient to express this?

> it runs synchronously the code of that method up to the very first await > keyword

How is this different from non-async methods?

> the next line of code will be run as soon as the Future, referenced by the > await keyword, will have completed

But the await keyword is in the caller which is not statically known.

What is the difference between an async method and a method that returns a Future?

<comment><USER13> It works like in every other language that supports async/await. Compiler will convert code inside async method into a state machine to prevent it from locking thread during await calls.

If you don't uses async you have to do compiler's job yourself.

<comment><USER12> But why do we need a new keyword to express this? Isn't the return type sufficient?

<comment><USER13> No, because you can write async functions without using async/await. Using callback for example:

      Future<int> foo() {
          return Future.delayed(Duration(seconds: 1)).then((x) => 1);
      }

In this case there is no compiler magic needed. If you ask why async keyword is needed if we can just infer it from await inside the method body - <USER2> only for readability.

<comment><USER12> async is part of the method signature, the public facing part of the method. But it controls an implementation detail, namely whether the function body may use await (as you say asynchronous functions are not required to use await).

I found a link [1] that described async as a compatibility affordance in C# 5: legacy code may use await as a variable name, so async opts into the contextual await keyword. But Dart doesn't have such legacy, so the keyword doesn't seem as well motivated.

[https://blogs.msdn.microsoft.com/ericlippert/2010/11/11/asyn...](https://blogs.msdn.microsoft.com/ericlippert/2010/11/11/asynchrony- in-c-5-part-six-whither-async/)

</comment></comment></comment></comment></comment><comment><USER14> A typo:

        while (microTaskQueue.isNotEmpty){
            ...
            return;
        }

It should be either "if { ... return }" or just "while { ... }".

</comment><comment><USER15> Wow, I have no idea how similar Dart is to JavaScript.

Isolate == Worker Future == Promise

<comment><USER16> They touch on the importance of compiling to efficient JavaScript in their FAQ [https://www.dartlang.org/faq#q-why-isnt-dart-more-like- haske...](https://www.dartlang.org/faq#q-why-isnt-dart-more-like-haskell-- smalltalk--python--scala--other-language)

But it probably also helps that one of dart's creators, Lars Bak also developed the V8 JavaScript engine.

</comment></comment><comment><USER17> For someone used to work with async/await only in C#, I was not expecting the execution model to be so fundamentally different in Dart.

Something to try to wrap my head around later!</comment>


An Implementation of 3D Ken Burns Effect from a Single Image Using PyTorch - <AUTHOR> https://github.com/sniklaus/3d-ken-burns <comment><USER2> Any example videos of the effect?</comment>


Show HN: AutoComplete.js v2.0 - <AUTHOR> https://tarekraafat.github.io/autoComplete.js/ <comment><USER2> Please add up/down arrow support, add a great deal to accessibility.

<comment><USER3> And just all round usability; you're typing to get the autocomplete suggestions anyway, keyboard navigation to the suggestions is just more convenient.

</comment></comment><comment><USER4> That's nice, but usually I need more features like multiselect, html-formatted option rows in the dropdown, etc.

Currently I use Selectize.js and Chosen.js:

[https://github.com/selectize/selectize.js](https://github.com/selectize/selectize.js)

[https://github.com/harvesthq/chosen](https://github.com/harvesthq/chosen)

<comment><USER4> Also [https://github.com/jshjohnson/Choices](https://github.com/jshjohnson/Choices)

</comment></comment><comment><USER5> Why should this be used over Fuse.js? [https://github.com/krisk/Fuse](https://github.com/krisk/Fuse)

<comment><USER6> Fuse appears to be search engine, and OP is sharing the autocompletion component for use in interface.

<comment><USER5> After a (slightly more than) cursory skimming through the code, AutoComplete appears to be an auto complete library __without __fuzzy searching (i.e. searching 'comptuer' would not match 'computer') that has a built in approach for showing why the library matched the results (i.e. searching 'comp' would show 'computer' as a result with the 'comp' part highlighted).

Fuse.js is purely just a fuzzy searching library. It's entirely up to the developer to do the front end (including the highlighting).

Based on AutoComplete.js's roadmap [0], it's pretty clear OP intends for this to become Fuse.js but with a front end component added on top.

[0] Primarily item 'Sort rendered results': [https://tarekraafat.github.io/autoComplete.js/#/?id=_6-roadm...](https://tarekraafat.github.io/autoComplete.js/#/?id=_6-roadmap)

<comment><USER6> I am aware of what Fuse.js does and what fuzzy matching is ;)

However if project is named "autocomplete 2.0" (which is an UI concept first) and your landing page focuses on search input with suggestions, it's safe to assume whats the focus of the library.

<comment><USER5> I was personally confused about what OP's library does. When I think "autocomplete", I personally think of fuzzy searching a la search engines. The library's docs [0] don't ever actually say what the library is for. In fact, all the docs's header says is:

> autoComplete.js is a simple pure vanilla Javascript library that's > progressively designed for speed, high versatility and seamless integration > with wide range of projects & systems.

In that sentence, the only thing that hints at the library's purpose is the word "autocomplete." All of the other words could be applied to any "pure vanilla Javascript library."

[0]: [https://tarekraafat.github.io/autoComplete.js](https://tarekraafat.github.io/autoComplete.js)

<comment><USER7> The term autocomplete is actually surprisingly well defined

</comment></comment></comment></comment></comment></comment><comment><USER8> React has made all these things unnecessary for me. These are cool libraries but when you learn React you can code something like this exactly how you want it, quickly and easily.

</comment><comment><USER9> Is there a way to set options /filters?</comment>


On the Moral Economy of Tech (2016) - <AUTHOR> http://idlewords.com/talks/sase_panel.htm <comment><USER2> I'm not a SV resident, but I've visited several times, over decades, and this rings true...

"Hop on BART after the conference and take a look at Oakland, or take a stroll through downtown San Francisco and try to persuade yourself you're in the heart of a boom that has lasted for forty years. You'll see a residential theme park for tech workers, surrounded by areas of poverty and misery that have seen no benefit and ample harm from our presence. We pretend that by maximizing our convenience and productivity, we're hastening the day when we finally make life better for all those other people."

<comment><USER3> I mean, I feel like tech people have this sense of moral exceptionalism and don't understand the value of moral consensus in a democracy, as opposed to moral obligation by noblesse oblige.

Something isn't only right or wrong in a democracy. You have to also _build_ consensus through boots on the ground, not by expecting everyone to have moral revelations by magic. So, is there consensus in America that inequity and poverty are issues that rise to the level of national discussion?

I would say no.

So how do you go about having an interesting and durable agenda of attacking American inequity and poverty in an extra-legal way when you don't have consensus in a democracy? By flexing tech money muscle? Do tech people, excluding elites, have that much money, that they can buy their way to morality without first doing consensus work?

<comment><USER4> Tech people in SV and the Bay live in a world where they experience consensus as a series of badly broken systems. The deep, durable pockets of poverty and misery? Built and maintained by democratic consensus. The needs-much- improvement public schools of SF and Oakland? Built and maintained by consensus. The state of BART? Built and maintained by consensus.

People on average don't _like_ poverty, misery, gentrification, unreliable public transit, and spiking rents. But on average, people around here _do_ seem to like all the things that contribute to those. Prop 13, "neighborhood character" concerns halting housing construction, and bus stops every block are all popular.

I can't claim to speak for everyone here. But personally? I see a lot of broken systems that I cannot fix. Where my attempts to help fix things for everyone are not only ineffectual, but actively unwelcome.

In light of that, I do what I can. I make myself comfortable. If I cannot address the suffering of others, I can at least limit my own suffering. No lives are improved if I join in the suffering of others to indulge some bizarre impulse to self-flagellate. My own suffering is not a moral imperative.

<comment><USER5> Well said. Rent control, prop 13, NIMBY all things that deepen the terrible consequences that are seen everyday.

And its crazy to me to visit Seattle right now and also find my way walking next to so many mentally ill homeless people.

I'm not big on most socialized solutions, but taking care of mentally ill people roaming the streets is one of those that are very easy to agree to. Yet the topic everyday is Trump this or that,while you had to walk past 10-20 people to get to the office.

There is some massive cognitive dissonance going on, that I think I can easily think and talk about because im a foreigner.

<comment><USER4> It's hard to take care of the mentally ill who live on the streets, especially in California. They cannot be legally confined for treatment until they are deemed a threat to themselves or others, and that's a pretty high bar. Until then, it's up to them to seek treatment. Many don't want it or can't handle the organization / discipline to stay treated.

As a result, it's not nearly as tractable a problem as it seems.

<comment><USER5> Yet cities like buenos aires with rampant poverty don't have this issue and it doesn't nearly as much to solve that particular problem.

It is a problem of policy and one that affects both the homeless and the non homeless people tremendously. I guess if the couple that had kept the presidio street and were to put up the homeless tents there , the problem would find a solution much faster.

As many others, its a problem of political will. What is unique, is that people everyday have to deal with homeless people in SF and yet its not a top agenda. Smoking pot is tho.

</comment></comment></comment></comment></comment></comment><comment><USER6> I think as technologists we have a natural preference for clean technological solutions that don't involve politics or messy interpersonal relationship issues. Failing to confront that whole human sphere of life leads to negative consequences everywhere, and the talk does a great job of pointing out some of the macro social effects.

On a similar note but a more localized scale I'm reminded of this talk on one of the downsides of moving to microservices being that people can avoid difficult conversations [https://youtu.be/kb-m2fasdDY?t=8m2s](https://youtu.be/kb-m2fasdDY?t=8m2s)

</comment><comment><USER7> One thing I dislike about articles like this is that they get you to agree on some basic point, such as, "Hey did you notice that there is a lot of wealth AND poverty in San Francisco?" Yes, I agree with that. "Well, actually, it's libertarians' and techies' fault!" Oh okay, you were correct about the first part so you're correct about the second too.

"Also, by the way, they're just like Hitler / Stalin / thinly veiled shout-out to something really bad!"

> Earlier attempts to create a rationalist Utopia failed for interesting > reasons, and since we bought those lessons at a great price, it would be a > shame not to learn them.

I do agree that San Francisco has this strange juxtaposition of impoverished hellscape versus obscene wealth. It's the main reason I plan to leave here within the next couple of years. But I'd do myself a disservice if I latched onto a thought that this is the fault of some political ideological minority in the area, or even the majority (bleeding hearts). This "poverty and misery" is the techies' fault in the same way that alcoholism is the fault of bartenders.

All that said, I agree with the conclusion about data. There _should be_ a moral obligation to limit or stop this storage. It creeps me the hell out, and it's why I don't use Facebook or Google any more, knowing that this doesn't fully solve the problem. I'll add that the metaphor he depicts is really great:

> As a technologist, this state of affairs gives me the feeling of living in a > forest that is filling up with dry, dead wood. The very personal, very > potent information we're gathering about people never goes away, only > accumulates. I don't want to see the fire come, but at the same time, I > can't figure out a way to persuade other people of the great danger.

I just wish the writer were mature enough to make that argument without the scapegoating of ideology, or the wrong ideology. This isn't about libertarianism or "trickle down" (from HN comments) or capitalism or a dislike for politics, it's about technological progress. Ideologies that are opposed to the writer's scapegoats will also act in service of technological progress when it is convenient for them.

<comment> old-gregg It's not hard to read his point. For startups, the bay area is nearly almost the first market to launch in. Uber, Lyft, Airbnb, numerous food delivery services, or anything aimed at the SMB market, all of this goes in production in bay area first and this place is closer to the ultimate digital utopia than anywhere else in the country. His point is that it doesn't make "the world a better place", presumably because all value is captured by the capital owners [his comparison to industrial revolution]

</comment></comment><comment><USER2> More article-quoting:

"As computer programmers, our formative intellectual experience is working with deterministic systems that have been designed by other human beings. These can be very complex, but the complexity is not the kind we find in the natural world. It is ultimately always tractable. Find the right abstractions, and the puzzle box opens before you.

The feeling of competence, control and delight in discovering a clever twist that solves a difficult problem is what makes being a computer programmer sometimes enjoyable."

I recently asked a friend whether he thought people were deterministic. He didn't think so (I don't either.) What do you think?

<comment><USER8> >I recently asked a friend whether he thought people were deterministic. He didn't think so (I don't either.) What do you think?

It's the wrong question. People are _deterministic_ , but that doesn't mean they're always _predictable_ _.

In some sense, it's trivially true: we're physical systems, so of _course* we're deterministic. The underlying physics that govern how the subatomic particles that make up the atoms that make up the molecules that make up the brain, is pretty well established at this point -- so if someone wants to assert some kind of special exemption for human brains: "everything _else_ in the observable universe obeys physical law, but _this_ is different!" the burden of proof is going to be pretty damn high. And nobody has ever put forth anything like real _evidence_ for such an exemption -- the fact that "we don't understand how the brain works" doesn't mean it doesn't work in _some_ fundamentally knowable way.

However, that doesn't mean that brains are (at least with current or reasonably-foreseeable-future technology) "ultimately tractable" even in principle, much less that we have any way of getting inside brains to see what people are going to do in real time.

And the reason people care about whether people are "deterministic" or not is because we want to know how to influence them, and for what we should assign praise/blame etc., and there's a common hidden assumption that determinism removes our ability to do that in some way. But I think that assumption's false (you don't see determinists just throwing up their hands and declaring ethics don't matter). There's a massive amount of physical evidence for determinism and no evidence at all against -- I'm not sure how anyone with a science background could believe otherwise at this point.

* "Predictable" here means something like "predictable by other humans, including via reasonably foreseeable technology". If we're in a simulation, the simulator can, by construct, "predict" the whole thing.

<comment><USER9> I'm not sure why you think the underlying physics is deterministic. That idea was the state of the art understanding in say the 19th century (billiard balls and Newtonian physics), but quantum mechanics, at the beginning of the 20th century, fundamentally changed the understanding of reality at the lowest level.

For a good layman's introduction I would suggest, "QED The Strange Theory of Light and Matter", (1986) by Feynman. Hard ideas but clear prose. I like to read it every few years to remind myself of the fundamentals.

<comment><USER10> > _I 'm not sure why you think the underlying physics is deterministic._

If conclusive evidence were found that human consciousness is fundamentally dependent on QM processes to function, that would be a Nobel Prize-worthy discovery. Aside from some minor papers exploring the topic, no such evidence has been found AFAIK.

<comment><USER9> The functioning of chemistry in individual cells definitely are influenced by quantum effects. Over a short period of time the functioning of the neurons in the human brain will be influenced by QM enough that the billiard ball, clock work, deterministic view of the future unfolding is not correct.

<comment><USER10> > _The functioning of chemistry in individual cells definitely are influenced > by quantum effects._

So? Transistors used in modern computers directly depend on quantum effects (semiconductor physics was an outgrowth of QM) as well, yet we do not need to take into account QM when writing software or designing microprocessors.

<comment><USER9> Where will my body be in five years? Quantum effects will definitely be manifest enough that the answer to that is not deterministic. Maybe because I am not a professional philosopher I'm missing the special meaning of the work deterministic as used here. I think the point of the OP was that computers are a specially designed system that is very complicated, but at the bottom created by humans who have spent a lot of time and effort to make it deterministic unlike the the "real" world.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> > Techies will complain that trivial problems of life in the Bay Area are hard > because they involve politics. But they should involve politics.

... SNIP ...

> In a world where everyone uses computers and software, we need to exercise > democratic control over that software.

Tighter control over targeted advertising by Facebook won't suddenly help with crappy zoning or infrastructure projects designed to maximize the extraction of wealth from taxpayers while minimizing the results.

<comment><USER12> Serious question: what the heck is your point?

<comment><USER11> The author correctly points out that the Bay Area's problems are political in origin, and that tech companies and technologists in general have been reticent to get dirty with politics.

However, their solution, putting tech companies under more democratic control, does not solve the problems specified.

Raytheon and Lockheed Martin's work is under democratic control. As are the zoning policies which keep out poor and middle class citizens from the few parts of the country which have benefited from our economic growth. The companies that charge our local state and federal governments 10x what Europeans to build roads, bridges, mass transit and build other projects are very tightly controlled by our democratic systems.

Facebook and Google are not preventing people from building housing. They are not building tools for the government to round up "undesirables", nor are they building drones that blow up civilians. They are building technology that allows advertisers to more accurately sell people stuff.

It should be obvious to anyone at this point that this could be used for nefarious purposes. But so can any number of other technologies developed over the past two centuries. The 20th century was a testament to how much murder humans can commit when given the opportunity, and we did not need machine learning to make it happen.

<comment><USER12> I'm not sure I'm following your points. You're moving back and forth between _enormous_ historical and current problems and sweeping the platitudinal meat under the rug.

It's easy to point to those problems and say,"Yeah, but this is nowhere near what it used to be!". If a global, location and interests tracking system looks like a duck, then it's probably a duck.

Disclaimer: I work for an advertisement company. Opinions are my own.

<comment><USER11> > I'm not sure I'm following your points. You're moving back and forth between > enormous historical and current problems and sweeping the platitudinal meat > under the rug.

The problems America faces are largely controlled by democratic systems.

Google, Facebook, et al are neither the cause nor the solution to the problems described by the author of the post.

If we decide to turn ad networks into surveillance systems used to commit crimes against humanity it will be because our democratically elected representatives were told to do _something_ by voters and they did so.

<comment><USER12> If you don't mind me asking, what sort of political, civics or activism work have you done? What you're saying rings true to a point, but it's not useful to the conversation and comes off as armchair naivete.

</comment></comment></comment></comment></comment></comment><comment><USER13> A lot of the criticisms against SV these days echo Jonathan Swift's portrayal of the scientific communities of his day: [https://en.wikipedia.org/wiki/Laputa](https://en.wikipedia.org/wiki/Laputa)

</comment><comment><USER14> Who was the author? I didn't see attribution on the linked page.

<comment><USER15> [http://idlewords.com/about.htm](http://idlewords.com/about.htm)

<comment><USER16> By the way, everything on his site is absolute gold, I can't remember a time I was so awed by someone's blog. Even his resume is brilliant and hilarious!

I highly recommend browsing, it's great writing.

<comment><USER15> Been poking around. I like his thinking.

Apparently, "Paul Graham is a weenis," though. [http://www.idlewords.com/2005/04/dabblers_and_blowhards.htm#...](http://www.idlewords.com/2005/04/dabblers_and_blowhards.htm#2)

</comment></comment></comment></comment><comment><USER17> I wish this could be said louder.</comment>


Apple blocks developer-registered devices - <AUTHOR> https://discussions.apple.com/thread/3102629

<comment><USER2> It was blocked because s/he _hadn't_ registered it, and now s/he's had the registration link pointed out to him/her and accepted the answer, s/he's presumably registered his/her device.

Did you read the page before you posted it?

<comment><USER3> By the comments, that's not helping most people, apparently. The solution for them is to uninstall iOS5 beta by restoring the phone.

</comment></comment><comment><USER4> This smacks of silliness. People are using their development devices as their business and personal phones. This is called out in the developer agreement and every beta software agreement. Don't do that.</comment>


Ask HN: Why many kindle books are more expensive than hardcover ones? - <AUTHOR>

<comment><USER2> Thanks to Apple, four of the five major publishing houses imposed so-called agency pricing on their ebook titles (the give away on Amazon is the phrase this price was set by the publisher). Under agency pricing, the publisher sets the final price to consumers and Amazon cannot discount it at all. Amazon receives 30% of the price on each sale, 70% goes to the publishers, who are setting ebook prices higher than Amazon used to. But print books (and ebooks from random House) are still sold under the old wholesale model. Amazon pays about half the cover price and can set the retail price at whatever it likes, generally at a big discount. Note that in BOTH cases, the publisher has total control over the amount of money it collects on each sale. But under agency pricing, publishers also control the final price to consumers while under wholesale pricing, the retailer gets to set that price.

<comment><USER3> How is that a legal business practice? I thought price-controls set by an oligarchy was a clear violation of anti-trust laws...

</comment></comment><comment><USER4> Why does milk at a gas station cost more than at a grocery store?

Because prices for goods are set based on what the market will bear, not on some formula or notion of fairness.

</comment><comment><USER5> Because it means more profit, and because the market will bear it.

</comment><comment><USER6> Amazon does not set the price; the publishers do.

Many publishers set the price of the ebook higher to prevent cannibalization of dead tree book sales. Also, ebook prices drop more slowly over time than do their real world counterparts, so higher initial prices allows them to make more revenue from the title.

Finally, the higher prices are intended to cover the cost of digital piracy. The prices are estimates intended to maintain revenue lost from piracy of ebooks.

apress above (below?) has a response detailing the legal structure of the Amazon-publisher relationship.</comment>


Let's Encrypt is now the most popular certificate issuer - <AUTHOR> https://nettrack.info/ssl_certificate_issuers.html <comment><USER2> My issue now is their command line python app that does the update to get you a new cert broke when I upgraded my Ubuntu 14.04 to 16.04. The python depends on openssl and the version has incompatibilities that you see mentioned all over the boards.</comment>


Techstars Boston applications are open - <AUTHOR> http://www.techstars.org/boston/

<comment><USER2> Does anyone know anything about David Tisch who runs TechStars NYC?

I can't find anything about his entrepreneurial history online. (Knowmore.com is a dead URL, archive.org shows nothing for the years he ran it, his name has never come up before with Mixergy guests, etc.)

I'm just curious about who he is.

<comment><USER3> Andrew, I interviewed with TechStars NYC and in the process gathered a decent amount of intel on Dave Tisch.

Personal blog: <http://www.davidtisch.com/> His angel fund: <http://www.boxgroupnyc.com/>

You can see from his linkedin that he went from undergrad straight to law school at NYU. He spent summers at law firms but never practiced and I don't believe that he's licensed to practice. He went to work in real estate but found his passion in startups. I believe he tried to start his own startup -- and learned a little Ruby in the process -- but the startup failed. He did some angel investing (he's independently wealthy as a Tisch and likely from his previous work history at law firms and in real estate), and was an early investor in Boxee. (Avner Rosen's talk at Techstars for a Day suggested that Dave was an early investor when they were struggling to raise money for their physical box concept, i.e., Dave was there before Boxee was cool.) He's otherwise made a few other good investments.

He met David Cohen at some event, approached him, and asked, "How about NYC?" Cohen as I recall said that he got that question all the time when Techstars was popping off, but Tisch was one of the few people that followed up on that and kept in touch. When Cohen thought seriously about doing NYC, it was Dave Tisch who he worked with so Dave was the logical choice to run the thing.

That said, Dave doesn't have the track record of someone like Brad Feld, but he's very enthusiastic, he's working very hard, and he's very bright. It seemed clear to me from Techstars for a Day NYC that Dave is running NYC -- he is the guy.

</comment></comment><comment><USER4> One of the most interesting thing about TechStars to me is that Jared Polis was a co-founder. He is one of the sharpest politicians in office today, in my opinion, and the first openly gay congressman to even be elected.

<http://www.techstars.org/mentors/jpolis/>

[http://www.colbertnation.com/the-colbert-report- videos/24693...](http://www.colbertnation.com/the-colbert-report- videos/246939/august-17-2009/even-better-er-know-a-district---colorado-s-2nd ---jared-polis)

<comment><USER5> Not to diminish what he has done, but what about Barney Frank?

<comment><USER4> Barney Frank (while I like the guy) was not openly gay when he was elected, he only came out years later.</comment></comment></comment>


The (Dark) Age of Facebook - <AUTHOR>

I believe the next decade will be the "Age of Facebook" as Michael Arrington said over the weekend. Microsoft owned the 90's game, Google owned the 00's, and Facebook & mobile technology will dominate the next decade. However, I have to admit, I feel quite differently about Facebook compared to Google or even Microsoft.
Personally, I rely on Google (Gmail, maps, docs, calendar, search, reader, chat, etc) on an hourly basis. Every so often I deactivate my Facebook account for a week or so at a time with absolutely no issues. My daily life would be much more challenging if I did the same for Google's products. Google's products increase my productivity, help me make money, to learn, to explore, and to lose myself in the wealth of the world's knowledge and information. Also, I have a trust with Google that Facebook has yet to convince me to have for them as well. Google has a higher cause, to organize the world's information. It seems like Facebook's higher cause is to control the internet and make a lot of money doing it.
With all that said... is there anything we can do to stop it? I'm worried that the primary internet entity for the next decade will not offer me an amount of value on par with the amount of control and power that they wield. <comment><USER2> Facebook and Twitter both have what Google doesn't, the "interest graph" - Facebook knows what you like and Twitter knows what you like right now. We are already seeing 3rd parties build products based on your interest graph, but expect Facebook to continue to build products as well. One of the products that I suspect they will move to the forefront is search. They will become a direct competitor with Google, within the facebook environment. There are already signs of them moving towards this with inclusion of Bing results. Eventually these results could be catered based on interests rather than an algorithm that weights websites based on backlinks and only your "search terms" (IE: Google). Search terms + interest graph is a very powerful algorithm - especially as Facebook deploys "like" buttons across the internet which serve as "votes" similarly to how Google considers "backlinks" votes for a website. Also, remember that Facebook did announce the integration of Microsoft Office web apps within Facebook.

Things are getting interesting.

Facebook, while scary from a privacy standpoint, is definitely creating value and will continue to create value.

</comment><comment><AUTHOR> FYI- I posted this on my blog, but I don't have comments so I wanted to bring the conversation to HN. [http://www.danielzarick.com/2010/04/the-dark-age-of- facebook...](http://www.danielzarick.com/2010/04/the-dark-age-of-facebook/)</comment>


Consumer psychology and the problem of fine-print fraud - <AUTHOR> https://www.stanfordlawreview.org/print/article/consumer-psychology-and-the-problem-of-fine-print-fraud/ <comment><USER2> If you've ever been in this kind of a situation, get yourself a lawyer. I've had $250 worth of legal services save me over $20,000 due to an unfair contract. The other party knew they didn't have a leg to stand on, but until I got the lawyer they wouldn't deal. As soon as I did we reached a perfectly fair settlement.</comment>


This is what 75 women learning Ruby looks like - <AUTHOR> http://www.flickr.com/photos/52869095@N02/sets/72157629348820334/with/6887893636/

<comment><USER2> [http://www.flickr.com/photos/52869095@N02/6887824986/in/set-...](http://www.flickr.com/photos/52869095@N02/6887824986/in/set-72157629348820334)

She's cute.</comment>


Using Apple TV for better agile development - <AUTHOR> wallboard.tv is an Apple TV app which lets you hold more effective daily standup and iteration planning. Use the big tv screen to bring the whole team on the same page. Use the apple tv remote to interact with the data. <comment><AUTHOR> Here's the link: [http://www.wallboard.tv/?utm_source=hackernews&utm_medium=we...](http://www.wallboard.tv/?utm_source=hackernews&utm_medium=website- post&utm_campaign=announcement)</comment>


Winning Against Your Reading List - <AUTHOR> http://www.mostlymaths.net/2010/08/winning-against-your-reading-list.html

<comment><USER2> If I can't finish the book in a few days then it usually takes forever to finish. Sometimes when I pause the reading for some time, then it's hard to restore the context so you can continue enjoying the book (true mostly for non technical books). But I agree that it would be more productive to define two or three categories and keep only one open book in each, while switching between categories.

</comment><comment><USER3> For me it's mostly a matter of making myself read (books). It's too easy to pick up the phone or stay tethered to the computer and read what's online. Once I get hooked in a book it's pretty straightforward to finish it. Thanks to the internet, though, the vast majority of what I read anymore is in short blog posts and articles.

</comment><comment><USER4> I really don't get how people find book reading a chore or a task. For me it's much more comparable to watching T.V. (even if it's a documentary). My reading list problem is that I can never find anything new to read.

</comment><comment><USER5> > It is fundamental that you keep focused on your current book and don't > exchange it for another. Focus on finishing, one at a time (or 2 or 3, try > not to pass the 3 books at the same time barrier).

Great post, but I halfway disagree with this point. I made a huge gain as a reader when I decided to stop feeling guilty for abandoning a decent book halfway through. Lots of times you get the thesis of the book and a few good examples in the first half, and then you're better off jumping around until you find something else that makes you really need to read it.</comment>


Ask HN: Dividing Your Time: Programming and Gaming - <AUTHOR> I can only assume that if you are like me: You are a gamer at heart. You always have been. You always will be. Even if you aren't actively playing games at this time. I'm part of the generation that went outside and played until it got dark.
But then I'm also part of the generation that had Atari. Then Nintendo. Gameboy was awesome too. And even a Sega Genesis system. And beyond. Computers came along, amazing as they were, offering some game called Doom that you had to load from DOS. Duke Nukem. Wolfenstein 3d. Quake was another. As the years progressed, so did the games. And I spent my teenage years in the gaming world. MMOPRGs. Specifcally, Subspace (now known as Continuum) and Asheron's Call (discontinued in 2017), if any of you were lucky enough to play.
As I got older, however, getting jobs, going off to college, I played games less and less, hoping that someday, maybe I would find the time to play them again. Between work and side projects and life, the prospect of gaming again just seems unlikely at this time. I think about it.. I even buy games from SteamPowered, usually when they are on sale, hoping to play them, but I never really get a chance, and if I do, it might be that I took a day or two just to try them out, before getting back into programming.
I keep returning back to my side projects and programming because it makes me feel productive. When I'm not coding, I feel like I'm wasting time not doing "what I need to do". The guilt builds up inside me which prevents me from gaming and I know I need to stick to coding. I feel that if I am going to be successful, whether it just be creating a few popular web apps, starting a business, or generating some recurring income, that I have to keep programming.
So for those of you who did not give up gaming and are programmers with side projects, how you split your time and how do you not feel guilty about it? <comment><USER2> I do not feel guilty for playing games because I play them on Steam for Linux or on Steam for Windows over Wine using free and open source Mesa driver for Radeon. I report any bugs encountered to fd.o Bugzilla [1], and sometimes do benchmarks. It feels like a combination of the usual gameplay, QA (bug finding and benchmarking), FOSS activism, and a celebration of having a working FOSS driver, all of which I really enjoy.

[1] [https://bugs.freedesktop.org/](https://bugs.freedesktop.org/)

</comment><comment><USER3> Yep, even if you play games 24/7, you wouldn't be able to see them all. Time management is the key. Trying to focus on the important stuff in your life, but also filling your free time with games if you like it. There will always be exceptions, but you should stick to the thing you love. This is my guide to life also :)

</comment><comment><USER4> In the past I've found writing games scratches the same itch as playing them. That solved this problem for me for a long time. Then I realised it isn't actually a problem, and if my projects take longer because I'm engrossed in a great game that's fine.

Although, as a caveat to that, I should point out that none of my side projects have ever amounted to anything. I hope that's just a correlation.

</comment><comment><USER5> I don't know if I'll have any useful perspectives since my day-to-day work has me developing/researching/writing about/testing games, but here's how I do things.

I do find myself steering clear of particular games (particularly big scale turn based stuff like Civ) to avoid losing vast swaths of time, but I also feel like I don't spend enough recreation time when I've got big projects and contracts on the go.

To combat the latter a little bit, I started making playing "daily challenges" a part of my daily routine a year or so ago. Even though it's still screen time and no substitute for going for a ride or something, it's been a good way of making sure that I step back and unwind a bit for at least an hour a day and give time to a bunch of games that I love.

If it's helpful at all, I usually play Assault Android Cactus, Crypt of the NecroDancer and Nuclear Throne, then fire up Wine to play Spelunky and Battle Chef Brigade (which will be getting a Linux version \o/). On days where I want a bit more, I'll sometimes try a run at Sublevel Zero, or play some Distance.

I keep a "To Finish" list, which has all the games I've started, but not finished. I aim to make that at least 6 games shorter every year. If I can't manage that, then I feel like it's hard to justify buying new stuff. It also gives me a short list to jump onto when I do have time and am not sure what I want to play. The last thing I finished was "XCOM 2", and Quadrilateral Cowboy is what I'm currently working through.

Back when I used to run SteamLUG, we had at least two community game events every week, and the opportunity to play socially with other Linux gamers was a big draw. At one point we had a fairly active Guns of Icarus Online clan of Linux users that played twice weekly. I stopped that when I ported Day of the Tentacle to Linux, but I'd like to get back into it again soon!

Most importantly though, I play games with my family. My girlfriend and I game together (sometimes we play single player games and take turn at being co- pilot, and other times we play multiplayer games together). My Dad drops by at least once a week and we'll often poke around with some game or another. I put him in a couple of VR games yesterday and I think he had a blast. Baking game stuff into your normal recreation/family life makes it hard to feel guilty about that stuff.

All that said, I definitely feel like I don't have time to play all the games I'd like to play, but I feel like maybe there are so many games out there these days that even if I dedicated 24 hours a day to gaming, it wouldn't be possible to get through everything :)</comment>


Ask HN: How did you come to know about HN? - <AUTHOR> I have been using HN for the past 5 odd years, but it occurred to me today, that HN/HN links don't show up on google search. I realized, I came to know about HN through my workmate. Wonder If I would have found HN If it hadn't been for that workmate. How did you find about HN ? <comment><USER2> I was looking to write a spam filter and came across Paul Graham's essays. I read them all, then produced a graphic of relationships between them:

[http://www.solipsys.co.uk/new/PaulGrahamEssays.html](http://www.solipsys.co.uk/new/PaulGrahamEssays.html)

I haven't updated that in ages - not sure I still have the code for it.

I send a link to that to PG, and he said I should submit it to HN.

So I did.

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

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

Wow. 2008/11/18\. Over 7 years ago.

<comment><USER3> Somehow Flipboard surfaced it in relation to my various technical curiosities. Several years later it dawned upon me that this was not an aggregated feed but an actual individual source, and a totally trivial amount of delving led me to locate the actual origin. I registered and stayed.

</comment></comment><comment><USER4> I was on reddit pretty early on when it was mostly programming links and PG essays. There was a submission announcing "Startup News" and I clicked it and signed up. I searched to find the original announcement, this may be the first post:

[https://www.reddit.com/comments/15gkq/startup_news_ycombinat...](https://www.reddit.com/comments/15gkq/startup_news_ycombinator_enters_the_social_news)

</comment><comment><USER5> Came across this debate about OO: [https://news.ycombinator.com/item?id=4245737](https://news.ycombinator.com/item?id=4245737)

Thought the discussion was pretty good. Was frustrated with OO at the time and wanting to get away from it. Interestingly, it is currently the second result for "OO sucks" on Google.

</comment><comment><USER6> I came here through a mention on the [http://www.JoelOnSoftware.com](http://www.JoelOnSoftware.com) Business Of Software forum. I unfortunately missed the party there and it was already dying down when I started reading the forum on a regular basis.

</comment><comment><USER7> People, I followed on Twitter, kept sharing links mentioning HN or citing from comments. After some time I decided to check it about but it took me some time until I realized what this "thing" was and appreciate the value behind it.

</comment><comment><USER8> Via mentions in Google Plus, I believe.

Just as important, I stayed here because the conversations here are good (polite, with thoughtful posts).

</comment><comment><USER9> I think Gizmodo linked to some thing here a few years ago and I started obsessively coming here since.

</comment><comment><USER10> Discussing the more thoughtful sub-Reddits with a friend. HN came into the discussion.

</comment><comment><USER11> I was looking at online tutorials and hacker news was one of the tabs in the browser.

</comment><comment><USER12> Michael Arrington linked to it from TechCrunch a few years ago.

</comment><comment><USER13> Techcrunch lead me to ycombinator and ycombinator lead me to HN.

</comment><comment><USER14> There was a bunch of HN posts posted to hackaday.</comment>


Driven off the Road by M.B.A.s - <AUTHOR> http://www.time.com/time/magazine/article/0,9171,2081930,00.html#ixzz1XIDMKDPX

<comment><USER2> I think the key is that the Economy is less driven by actual entrepreneurs (founders and tycoons), but by management.</comment>


A Parser Combinator library for C - <AUTHOR> https://github.com/orangeduck/mpc <comment><USER2> Another is Hammer, [https://github.com/UpstandingHackers/hammer](https://github.com/UpstandingHackers/hammer)

</comment><comment><USER3> This is being used from another thing posted here about making your own lisp: [http://www.buildyourownlisp.com/](http://www.buildyourownlisp.com/)

Pretty nice and simple. I'm on Chapter 8 of 16.

<comment><USER4> I think both the library and the book are written by the same author [1].

[1] [http://theorangeduck.com/page/you-could-have-invented- parser...](http://theorangeduck.com/page/you-could-have-invented-parser- combinators)

</comment></comment><comment><USER5> nice!

</comment><comment><USER6> What's the difference between this and flex/yacc?

<comment><USER7> From the readme, a workflow that doesn't make you want to kill yourself.

Also no generated code that requires extra build steps and instantly breaks platform compatibility. That said, inline grammar definition might not be for everyone.

<comment><USER8> Hmm. So for people who don't know how to use Unix/flex/yacc?

This is just reinventing an existing wheel.

<comment><USER9> In yacc the generator will tell you about shift reduce conflicts. Once you have debugged the grammar the parser is likely to work. With parser combinators you have no such assurance - you don't know if your grammar has loops, the parser might get stuck easily while parsing. However for a simple and regular input language like sexpr everything is fine.

<comment><USER10> In recursive descent you simply do not have any shift/reduce conflicts.

<comment><USER9> you can have left recursion, or implicit left recursion in your recursive descent grammar, if you have then the parser gets stuck while parsing a clause that contains left recursion.

<comment><USER10> Firstly, this have nothing to do with shift/reduce. Secondly, you can safely handle left-recursive grammars in Packrat (which, in turn, can be implemented with combinators).

<comment><USER9> I didn't say that left recursion has anything to do with shift reduce conflicts. Please read again.

<comment><USER10> I see, yes, you mentioned loops earlier. Anyway, it is not a problem for combinator-based parsing, just use Packrat with a left-recursive extension [1]

[1] [http://www.vpri.org/pdf/tr2007002_packrat.pdf](http://www.vpri.org/pdf/tr2007002_packrat.pdf)</comment></comment></comment></comment></comment></comment></comment></comment></comment>


GameBoy Color Emulator Coded Entirely in JavaScript. - <AUTHOR> http://www.grantgalitz.org/PokemonCrystal/

<comment><USER2> This seems very interesting, unfortunatly page doesn't load in my iphone 3g, is it fully functional? Sound and everything? Fps?

<comment><USER3> It looks fully functional on Chrome 10, but theres something weird with the sound that makes it click in an extremely annoying way.

</comment></comment><comment><USER4> This same link has been on HN three times in the past two weeks, all by the same person.

Come on ...</comment>


MIT unifies Web development in a single, speedy new language - <AUTHOR> http://www.cio.com/article/2863673/mit-unifies-web-development-in-a-single-speedy-new-language.html

<comment><USER2> Reminds me of Opa[1], which I heard about when it first came out and I recall telling a much more experienced developer friend about how I (in my inexperienced naivety) thought this was the way of the future and he brushed it off and with something like "wait and see if it's still around in a few years."

Well it appears it's still around but it obviously didn't usher in a new era of web development like I thought it did.

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

<comment><USER3> There was hype about another language out of MIT some years before those.

Not saying it's not possible, just that there's a lot of hype...</comment></comment>


Building desktop Linux applications with JavaScript - <AUTHOR> http://arstechnica.com/articles/paedia/javascript-gtk-bindings.ars <comment><USER2> Why not create a framework that is _not_ platform specific, like AIR?

What are the great hooks into the OS that are so necessary that a person can't write an app thats run on all three major platforms (or at least have the option to)?

<comment><USER3> It depends how native you want to be. AIR or wx works fine, but to really get native look and feel you must write a separate front end for each platform using the native toolkit.</comment></comment>


Amazon Lightsail Now Available in 5 Additional Europe, US AWS Regions - <AUTHOR> https://aws.amazon.com/about-aws/whats-new/2017/05/amazon-lightsail-now-available-in-5-additional-europe-us-aws-regions/ <comment><AUTHOR> The primary benefit to me is dirt cheap egress bandwidth from these additional AWS regions. $10 for 2TB vs the regular EC2 price of $0.09 per GB.</comment>


Intel Unveils Project Alloy Merged Reality Headset - <AUTHOR> http://hothardware.com/reviews/intel-unveils-project-alloy-merged-reality-headset-and-partnership-with-microsoft-for-windows-holographic-shell <comment><AUTHOR> Video of headset presentation linked from article:

[https://www.youtube.com/watch?v=Be- MJxeCpvU](https://www.youtube.com/watch?v=Be-MJxeCpvU)</comment>


Software Selling Model - <AUTHOR>

Dear All, I just completed a software program. Could you please help me to know what is the best selling model e.g. per user, per server or subscription bases. <comment><USER2> I'd do three tier pricing model: $x for <10 users, $y for <50 users, $z for <250, and for large enterprises do a custom pricing model.

<comment><AUTHOR> the new direction now is SAAS

</comment></comment><comment><USER3> Depends what your software is all about.

<comment><AUTHOR> it's application which manage the internal and external communications between employees</comment></comment>


Rotten Tomatoes API is now live - <AUTHOR> http://developer.rottentomatoes.com/

<comment><USER2> Rotten Tomatoes didn't have an API before? Oh.</comment>


It Was Cruel to Build the Legend of Ken Bone–And Even Crueler to Tear It Down - <AUTHOR> http://qz.com/810024/ken-bone-meme-it-was-mean-to-build-the-legend-of-ken-bone-but-even-meaner-to-tear-it-down/ <comment><USER2> "Are these incredibly informed opinions? No, of course not."

So, because you don't agree with a person's opinion, it's not informed? How open and diverse.

"In fact, many of the comments I've seen so far are unequivocally offensive. "

The bias in this article is offensive to me, can I also pass the entire thing off as 'incredibly uninformed'?

"This means he thought he could, next month, vote for Donald Trump—"

Oh no! You all liked him until you realized he has an opinion that goes against against the current liberal narrative. This is one of the main problems we have in our society today and why we have a candidate like Trump.

"In this context, nobody should really be that surprised that he once publicly ogled naked photos of Jennifer Lawrence or holds outdated and stupid opinions on race and implicit bias."

Instead of reporting on a few posts that anyone can copy and paste, why not interview Ken Bone and actually find out his real opinions? This article exemplifies lazy journalism.

"From the beginning, there was something a little bit off about the whole Bone frenzy—something a little mean-spirited, even. As one of my coworkers noted, it felt a bit like when the cool jocks in high school would "adopt" a nerd for a day, let him eat lunch with them and then, just when he was starting to feel comfortable, duct-tape him to the flag pole."

Wow, the writer of this article is pretty cruel. They already assume, because of Ken Bone's looks, he was the subject of some sort of cruel joke.

"Bone is certainly not the first private citizen to be plucked from obscurity to bask, willingly or not, in his or her 15 minutes of fame. Like Chewbacca Mom...."

This is where I checked out. The author of this article is being petty and cruel because he disagrees with Ken Bone's opinion. That much is obvious.

This sort of behavior is slowly turning good people like me into someone that is angry and frustrated at the bias I see on a daily basis. A couple of years ago, I would have never voted for Trump. But now I'm voting for him as a form of nonviolent protest.

When I see a new Wikileaks release about the DNC, it makes me smile.

I wondered why the mainstream press turned against Ken Bone. Now I know.

The side that claims to be open and honest is anything but. I've seen the most vile, deceitful, and corrupt behavior come from the Left and when anyone tries to defend themselves from this behavior, they get marked with the scarlet letter for racist, sexist, or bully.</comment>


On the origin of specie: rethinking theories of where money comes from - <AUTHOR> http://www.economist.com/node/21560554

<comment><USER2> The origin of money is inherently unknowable. It happens before the start of the historical record, and archaeological evidence will not have much to say, and anthropological studies are unlikely to find a money-naive culture at the point of discovering the concept. The theories cannot be expected to ever be tested.</comment>


Zed Shaw's latest project - Fret War - <AUTHOR> http://www.fretwar.com Fret War is a guitar competition site where contestants try to defeat lesser guitarists in weekly rounds playing randomly generated music. Awards are given each week for interpretation, accuracy, speed, and uniqueness. <comment><USER2> From his most recent blog post:

      There's a good chance the site will crash if this blog post
      hits the nerd sites, so just ignore Fret War until it's stable.

<comment><USER3> There's a good chance that Zed is saying that to get his site posted to all the "nerd sites".

</comment></comment><comment><USER4> Did zed ever get another job? (didn't he leave to California a couple of months ago?)

<comment><USER5> <https://www.dropbox.com/about> \-- He's an engineer at Dropbox now.

<comment><USER6> Hot damn! I'd never have expected him to find his way there, but it seems like it would be a good fit. A smart ambitious guy who hates bullshit, and one of the few companies that it's impossible to accuse of bullshitting. I wish them both luck.

</comment></comment></comment><comment><USER7> The concept isn't clear enough. Either that or there's not enough content yet. Or maybe I have to sign up? I'm confused.

</comment><comment><USER8> I don't like the idea. I prefer playing with other musicians, not trying to beat them. That doesn't even sound fun to me.

<comment><USER9> Sure, you might prefer jamming with other musicians. But Fret War really is for guitarists who're keen on developing technical proficiency,, composition and improvisation skills. To be technically proficient, you always have to strive to be better than others, not necessarily "beat them".

</comment></comment><comment><USER10> The information collected is actually pretty interesting. I assume voting will have something to do with sounding good in addition to speed and accuracy. Besides making a cool site, he just crowd-sourced music production (everything is released with a CC license).

</comment><comment><USER11> So, this is GuitarWar, right?

<comment><USER12> <http://runplaybook.com/> is just rsync, right?

:-)

<comment><USER11> Not even. It's mostly straight SSH. With a little Ragel thrown in.

</comment></comment></comment><comment><USER13> who wants to spend time learning to play this?

[http://fretwar.com/static/data/round/1/media/xzibitonics_C.m...](http://fretwar.com/static/data/round/1/media/xzibitonics_C.mp3)

<comment><USER14> Jamming to randomly generated music doesn't sound like everyone's cup of tea.

<comment><USER12> Well the challenge wasn't to "jam" to it, it was to be able to play it. I did it, and I'll say it was _way_ too hard for most guitarists.

This was on purpose to act as a sort of implicit "invite only" mechanism. It kind of worked a bit too well.

The next round will be more "jamming" oriented and open ended so more people can play.

<comment><USER15> I didn't find it hard at all, just not very interesting, so wasn't motivated to learn it (no offense). I think having more open-ended jam tracks would work better.

<comment><USER12> Alright, prove it. Send in your submission. If it was so easy you should be able to send it in and compete, regardless of whether it's interesting or not.

</comment></comment></comment></comment></comment><comment><USER16> I think that there's a display bug under firefox 3.0.5 (ubuntu) : the order of the labels of the fields of the signup form is wrong.

By the way, why is it required to have a twitter account ?

<comment><USER9> It's not required, but preferred.

</comment></comment><comment><USER17> Using Ruby on Rails and running on Mongrel, I assume?

<comment><USER12> Nope, not rails (troll). It's a web.py application combined with a Lamson application. The frontend is run through nginx and I use some heavy caching tricks to make it fast as possible.

The primary design for hosting costs (scalability) are:

1) <http://wiki.nginx.org/NginxHttpAdditionModule> to serve static headers and footers so the framework doesn't.

2) Javascript determines the login state of a user and then displays user state links.

3) Generation of the site is "out of order" for convenience of generation/caching, and then javascript knits it back together. We'll explore more of this later.

4) Caching for about 5 minutes on most pages, depending on usage.

5) Use of <http://wiki.nginx.org/NginxHttpProxyModule#proxy_store> to do page caching for content that needs to be dynamically generated very infrequently.

6) Gzip compression (should do precompression really) and other tuneups.

7) Using Lamson to accept posts via email so that they're processed off-line and statically generated. This is also really easy for people to use and easy to setup, so triple win.

It's currently not close to a production setup, but I'm going for making it easy to host on a small server to keep costs low. Part of that is just not using the framework when possible.

For statistics, right now the Nginx server is getting a modest 4-10 req/sec for html, but the backend is only serving about 1 request a minute thanks to all the above. Also the site really doesn't accept uploaded content via HTTP except say for photos.

Hope that helps, I may blog about it more later.

<comment><USER18> Wow, someone else using web.py, and that too for a "real" project! I always feel like a n00b for using such a stripped-down "framework" but after spending some time trying Pylons and Django, I found them both to be too "heavy-weight" for me.

What do you like and dislike about web.py?

<comment><USER12> I like web.py for this because it's tiny, fits HTTP real well (try doing REST with Django), and it's "just a library" so it's easy to mesh with Lamson. Also, I was bored.

What I don't like about web.py is this:

<https://bugs.launchpad.net/webpy/+bug/435370>

I have to hack that fix in to every web.py install because they're too arrogant to actually fix it properly, even when given the fix.

<comment><USER19> Zed, I know you mean well, but your wording in that bug report is extremely asshole-ish. Can't you point out flaws without being so snarky?

<comment><USER12> It's not asshole-ish at all, it was just direct and made the point much clearer with the proper amount of urgency. This bug crashes sites consistently and is easily exploited. That's serious enough to warrant an immediate fix and release with an apology for the design. That's what I've done on my projects, and that's what I expect.

Now, the question is why do you demand humility from me, but not from them?

<comment><USER19> Given the downvotes and the other comment here, it seems taht I'm in error, and I'll retract my statement. I guess I misread it; sorry about that.

</comment></comment></comment></comment></comment></comment></comment><comment><USER20> I might check this out if they had a category for bass guitars.

<comment><USER21> Why would it require a bass guitar category? It appears to be entirely about generic scales and such. Just play it a couple of octaves down.

<comment><USER16> Because it could get way harder ?

</comment></comment></comment><comment><USER22> Seems like 'web 2.0' guitarwar.com right?</comment>


Turn any phone into a smart phone - <AUTHOR> http://www.parseco.com

<comment><AUTHOR> Hi everyone! We've been working really hard to enable all interested developers around the globe to use our Rest-ful APIs, to bring more value to their current product by implementing SMS/USSD/HLR and other technologies. Basically using our APIs u can turn an old cell phone into a smart phone (your end user can use the feature phone to access e-mail, get weather reports, check if he left the stow on at home....you name it.) If you are interested in beta testing please drop us you e-mail at www.parseco.com.

Thx!

Rene.

</comment><comment><USER2> So basically you are suggesting that we can extend our product (you call it apps) to the Mobile area? aren't we doing that already with mobile apps??

<comment><AUTHOR> For mobile apps you need a smart phone right? But when you use our REST APIs you (your end user) doesn't need a smart phone in order to use your app. Let's say that you have already developed a E-mail client app for a smart phone, and want to modify it so that every phone user can access their e-mails. You can use our APIs and deliver the email via SMS or USSD to the end user. The Smart phone market is huge, that's true. But think of all the people in the world that have "ordinary" cell phones, and they want to spend e.g. 3 $ a month to get their emails.....or to update their Facebook status via an "old/featured" cell phone? What about does guys? That's where www.parseco.com steps in.

<comment><USER2> alright...signing up!</comment></comment></comment>