Show HN: Appointment booking for solo hair stylists and massage therapists - <AUTHOR>

EasyCalApp.com is an online scheduling app for solo hair stylists and massage therapists.
Pretty much all online scheduling software is targeted at people who have complex scheduling needs - 10 massage therapists at a clinic, for example.
There is no software built specifically for solo practitioners - people who only book appointment for themselves - whose needs are a lot simpler.
So we built EasyCal so solo massage therapists and hair stylists can simplify their lives with frustration-free online booking.
Even though you're probably not the target demo, I'd love any and all feedback and insight.
Now the fun begins in earnest - marketing :)
Thanks in advance.
www.easycalapp.com <comment><USER2> Out of curiosity, are massage therapists & hair stylists the ONLY market you have for this? What about say a therapist or a business coach or any other similar proprietor?

Just wondering why you limited yourself to those two professions...

Site looks great though, good job

<comment><AUTHOR> good question. notwithstanding a few small features that we haven't built, the app is generally applicable to anybody who sells their time (and a service) for money.

we felt massage therapists and hair stylists would be the easiest to sell to for a variety of reasons, so we're focusing on those niches now.

</comment></comment><comment><USER3> Interesting timing. My wife is an electrologist and -- I'm not kidding -- just today leased an office for herself so she can move away from the politics of the spa she's at right now. And she needs a scheduling system exactly like this.

I'll let you know what she thinks.

<comment><AUTHOR> awesome! if she has questions, please have her drop me a line (email in profile).

</comment></comment><comment><USER4> That is really aweseome!

I really like that fact that clients can book appointments on their own.

</comment><comment><USER5> Clickable: <http://www.easycalapp.com>

</comment><comment><USER6> How does it compare to BookingBug ?

<comment><AUTHOR> 1- easycal is for soloists. bookingbug is for soloists and large enterprises and anybody in between

2- we've consciously chosen to leave out lots features so that we can focus on making the core booking experience simple and easy. bookingbug looks powerful, but also confusing.

<comment><USER7> If you are setting up a simple business BookingBug is simple, and if you are setting up a complex business or work slightly out of the norm BookingBug has the flexibility to help.</comment></comment></comment>


Mystery of Jupiter's persistent geometric storms may be solved - <AUTHOR> https://www.space.com/jupiter-polar-vortices-stability.html <comment><USER2> It's not solved. Clickbait</comment>


The Soul of a Typeface - <AUTHOR> http://fadeyev.net/2012/08/24/the-soul-of-a-typeface/ <comment><USER2> I'm such a closet typography geek. I'll pretty much upvote any HN post having to do with analyzing fonts. The "depth" of the art and science of typography has always fascinated me. For example when I learned that TrueType etc... actually had, effectively, a built in scripting language where typeface- specific code ran during rendering I was blown away.

Stylistically I tend to prefer sans-serif fonts for my own work. So the font the author used for his example does not directly appeal for me. I appreciate it (like I appreciate a well put together Harley Davidson Chopper, but would never, in 1000 years own one). I have an odd love of mono-spaced, sans-serif fonts in particular. Consolas speaks to me and I'm always seeking out new fonts for my console & editor. Heh.

Thanks for this post.

</comment><comment><USER3> I'm very fond of typography, but I don't know all that much about it. Is there a name for the style of fonts like Elena? As soon as I saw the sample I was struck by the similarities to Minion, which has to be my favourite serif font (though I do prefer some aspects of Elena).

<comment><USER4> Not an expert in typography so I may be wrong, but I'd say it's a modern take on Humanist (also known as Venetian), one of the earliest Roman typeface styles. Here's a good article about this style: [http://ilovetypography.com/2007/11/06/type-terminology- human...](http://ilovetypography.com/2007/11/06/type-terminology-humanist-2/). I'm not sure if it can be classified as such though because it is built to work well on the screen and so has a lot of straight lines, closer to Transitional typefaces like Times New Roman, but even though the overall design is very modern, the feel of it seems to me closer to the Humanist typefaces. For example, the bar on the 'e' is sloping a tiny bit upwards, which is a distinctive characteristic of Humanist typefaces.

</comment></comment><comment><USER5> It's moments like these that I feel small in regards to humanities. Thank you, Sir.

<comment><USER6> <http://www.markbernstein.org/Mar12/TheSympathyOfThings.html>

Lars Spuybroek's book The Sympathy of Things explores possible links between Ruskin's views and modern digital production. I'm finding it hard reading (maths science background myself) but it is making me think in new areas.

</comment></comment><comment><USER7> Letter Spirit, the soul of the new machine's typefaces: <http://www.cogsci.indiana.edu/farg/mcgrawg/lspirit.html></comment>


Makerland: Internet of Things workshops and conference for 500 makers - <AUTHOR> http://www.makerland.org/

<comment><USER2> Am I the only one loving the recent trend in organising (popular/interesting) conferences outside the US?

I hope this continues with other events too. I'm happy for the no-more-US-visa sake.

<comment><USER3> Ideally we would love to do this in Europe AND in US :)

<comment><USER4> We (JSConf organizers) are starting something similar (focused on bridging software/web developers into Makers) with RobotsConf <http://robotsconf.com/> Would be happy to collaborate on what works/what doesn't -- handle is the same everywhere! Great job on the launch btw.

<comment><USER3> Sure! Let's make the world better, together! :)) And thanks for the kind words

<comment><USER4> Absolutely! Thanks for (similarly) taking an awesome risk and putting together what looks to be an epic event. Awesome events are awesome!

</comment></comment></comment></comment></comment><comment><USER5> Any plans on having beginners tracks for people not fluent in coding and soldering?

<comment><USER3> sure, we plan to have tracks for beginners too, also as making things is not only about coding and soldering we will have a lot of different opportunities for building and tinkering with stuff!

</comment></comment><comment><USER6> Registered, just to get to know the date. Both corporates and fathers need to book holidays (way) in advance!

<comment><USER7> Event will be late fall, we'll publish dates in early June when everything is confirmed. Hope that works for you?

</comment></comment><comment><USER8> This sounds great but where is it going to be? If it's in Europe I'd love to go...

<comment><USER9> At the top of the page on the right: Warsaw, Poland

</comment></comment><comment><USER10> Any thoughts on pricing yet?

<comment><USER7> Too early to say, we're figuring it out right now, should announce late June.

</comment></comment><comment><USER11> Sound like cool event!

<comment><USER7> Thanks man, we're looking forward to seeing you there!

</comment></comment><comment><USER12> Call for speakers? :)

<comment><USER3> Soon!!! Are you in? :)

<comment><USER12> Of course!

<comment><USER7> great!

</comment></comment></comment></comment><comment><USER13> yayyyy!let's meet in Warsaw and make the land better!

</comment><comment><USER14> Cool!

<comment><USER15> Agree!</comment></comment>


Centrifugo – real-time messaging server migrated from Python to Go - <AUTHOR> https://github.com/centrifugal/centrifugo <comment><USER2> Hi, very interesting project! Two meta-question:

1) how was your experience of changing the code from Python to Go, did it feel ok or have you had major headaches?

2) Why didn't you choose Elixir, there are already massively scalable messaging servers in Erlang and it looks like the best choice for a project like this?

Thanks!

<comment><AUTHOR> Hi!

1) It was very interesting and challenging sometimes. I remember several difficulties during migration: many usages of interface{} values at first stages which then be replaced with more strong types, several possible races which Mr Klaus Post ([https://github.com/klauspost](https://github.com/klauspost)) helped to find, he also noticed at some problems in code style and channel buffer overflow problem. But the greatest part of this migration is that I don't need anymore think "Is library I use non-blocking or not?" as Go's built-in concurrency allows to use all libraries written for language. And also after Tornado it's great to have tools to inspect active goroutines. I also personally don't like how many locks I use at moment - I hope to refactor several parts of code to use channels for synchronization.

2) Elixir is great, but unfortunately I had no experience with it - just read several articles. Centrifugo is not massively scalable at moment - it does not support Redis cluster yet - this is an area for investigating. So now it is limited to Redis throughput and suites well for small or medium projects. So the answer here: Erlang is absolutely great for software like this but I have chosen a language in which I could implement all that needed in a reasonable time. Go has also its unique features so at moment I am pretty happy that I started migration.

<comment><USER3> It would be great if you write of blog post about your experience in migrating Centrifugo from Python to Go.

</comment></comment></comment><comment><USER4> I haven't looked into this, but I've noticed a lot of things being migrated to Go recently. I assume they also migrate to a more event driven architecture at the same time. Is that true or have I got the wrong end of the stick?

<comment><USER5> Go doesn't expose events to the user - the programming interface is one go routine (green thread) per connection.

Internally the go scheduler does lots of clever stuff with events but you as the programmer don't have to worry about it.

go routines are very light weight - you can have 10 or 100 thousand easily so this is a very efficient way of running servers with lots of connections.

It is also very easy to program - it is much easier to reason about one thread per connection than to reason about asynchronous event handling.

</comment></comment><comment><USER6> THis looks great, I've been looking for something like this for an existing project.

Question, I notice that if I submit test msgs, it all works and displays in the development project area. However, if I open a new browser tab and navigate to the same project, i dont see the history?

I'm looking to use this for deployment purposes. I can have the window open initially but what if a user decides to join our deployment process a few minutes later? he/she won't see what had happened.

<comment><AUTHOR> Thanks! You are looking at administrative web interface, the goal of this interface is just to show messages coming into channels in real-time just to see that Centrifugo works fine and maybe inspect messages being sent. So when you are reloading a page web interface is just start waiting for new messages from scratch. Web interface must be used as just a tool to monitor your Centrifugo installation and is absolutely optional. It allows to send API commands: publish messages, see presence and history information etc

The goal of Centrifugo is just to deliver messages instantly to all connected clients. It has channel history which can be used to show last N messages from channel but it's not related to what you see in web interface. Also note that Centrifugo is not a persistent storage and channel history messages will expire after configurable timeout. So it's possible to implement what you want using channel history but if you take into account 2 things: message history is limited to N messages and message history will expire after M seconds.

</comment></comment><comment><USER7> I also wrote a super-simple version of this, for talking to Raspis and stuff:

[https://github.com/skorokithakis/gweet](https://github.com/skorokithakis/gweet)

<comment><AUTHOR> Hello, thanks for sharing, yes - it looks similar in its core idea, will definitely look at code base and hopefully find something interesting to learn from. One of current Centrifugo problems is that lots of features out of the box result in not so trivial client. So as far as I personally don't know Java and Objective-C/Swift there are no clients for mobile apps yet. Hopefully this will change in future with help of open-source community. Or maybe Go 1.5 mobile apps support will allow to create shared library for using from those languages.

<comment><USER7> Yeah, client support is always the hard part, there are just so many languages to support... Centrifugo seems feature-packed, though, good job!</comment></comment></comment>


Stocks Might Be 50% Lower Without Fed - <AUTHOR> http://www.cnbc.com/id/48165921

<comment><USER2> I'm no stock market or finance expert, but this seems a bit simplistic. CNBC just subtracted any stock price index gain from 24 hours before a Fed announcement. I don't think they added back in any price index loss from 24 hours after. Which seems to me to make the "price indexes lower" conclusion sort of a necessity of the arithmetic.

</comment><comment><USER3> this makes perfect sense. the Fed, over the last decade, has run a policy of credit expansion, followed by liquidity expansion since 2007. this is always priced in as a positive movement in equities, but many people believe that this is an illusion, and that "inflating" the preceived value of a stock has nothing to say about the true value.</comment>


Hearing prayer shuts off believers' brain activity - <AUTHOR> http://www.boingboing.net/2010/05/03/hearing-prayer-shuts.html

<comment><USER2> You can't take that statement at face value. Part of the point of prayer is to focus your mind and block out irrelevant thoughts and stimuli. (Is it not?) I'd like to see how brain activity of people praying compares to those in meditation.

<comment><USER3> Except, that's not what the article is talking about. It was not the person praying that had their activity shut down, but the person hearing prayers. And not prayers in general, but only when coming from someone they perceived to be a "healer", but not prayers by an "ordinary" Christian.

<comment><USER2> Ah good point. I would just suggest that listening to someone pray and praying may be quite similar for very religious people.

<comment><USER4> Absolutely. Especially in the sense that a religious person listening to someone pray is probably praying along by agreeing with them in thought.

</comment></comment></comment></comment><comment><USER5> There is probably a similar effect in Apple fans listening to a Jobs keynote, and so on. If you like what you are hearing, you are not going to be skeptical about it.

<comment><USER6> You probably intended this at least half tongue-in-cheek,but I imagine this study opens a door to scientific verification of determining what constitutes religous experience, and some very non-religous themed things may qualify for some people.

<comment><USER7> The similarities between cults and Apple (with Jobs at the helm) is pretty well studied and written about. The good news is that people who buy Apple products actually get something of value for their money -- so it's far less sinister.

</comment></comment></comment><comment><USER8> The comments ask whether physicists at lectures would be susceptible to the same phenomenon. I'm inclined to doubt that. It's a rare speaker indeed who makes it through even a five minute session without blistering Q&A.

"Mr. Wilson, ve at za Max Planck Institute for Kernphysic _invented_ zis field, and you are doing it vrong! You have neglected ze contribution of higher order terms without grounds, and as results from Bergen, et al show..."

Sometimes, I wonder what a religion would be like with rapid-fire talks anyone could speak at, poster sessions, and critique for every presenter.

<comment><USER9> _Sometimes, I wonder what a religion would be like with rapid-fire talks anyone could speak at, poster sessions, and critique for every presenter._

Science?

EDIT: Figured I should explain myself lest I get voted down for being snarky. In science, to me at least, a lot seems to be taken on faith. There are many stories of a wrong result being published and scientists later not publishing their own research because it didn't agree with that wrong result. Combine that with the fact that a scientist with lots of published history accumulates more and more credibility and, from the outside, it starts to look like a religion with a self-correcting facility.

<comment><USER8> I don't agree. Science is explicitly concerned with natural phenomena. Anything supernatural must be the domain of superstition, spirituality, or religion.

We suffer somewhat from salience bias: cases where the scientific process is successful are frequent and expected. Cases where the method failed but eventually corrected itself are spectacular. There are literally hundreds of thousands of papers published each year. Quick, can you name two researchers involved in the discovery of the electron's discrete charge? What were their methods? Now, how about Millikan?

As for religions, I would be more likely to believe in one where challenges and debate were frequent, as opposed to something more rigid like, say, Catholicism.

<comment><USER9> I know that's how it works internally, but I'm not inside. Honestly, I believe in the scientific method in a way very close to how the religious believe in their chosen faith. I have no problem admitting that to myself. Science is basically my religion. The difference between religion and science is what you've described and more (an objective measurable goal for one) and is why I believe in it. But I've never done research, never published a paper. So for me, it's largely faith in the system.

</comment></comment></comment></comment><comment><USER3> From the article: "The brain activity changed only in response to prayers they were told came from the healer."

In other words, it's not the perception of prayer. It's the perception of supernatural intervention. Totally misleading title.

<comment><USER10> Actually, it's less than that. It's your perception of the healer. In other words, people don't think skeptically about people they trust. Essentially a tautology, only confirming that those are the regions of the brain involved in skepticism.

<comment><USER11> Well I liked your comment but the droid screen isn't as accurate as i'd like on those tiny voting arrows. Sorry about that.

</comment></comment></comment><comment><USER12> " ... the regions of their brains involved in skeptical thinking and vigilance appear to shut down."

Believers not being skeptical is a bit redundant.

</comment><comment><USER13> Or, in other words, the believers become relaxed and content. Never thought of prayer-time as being a time of needing to having one's guard up. Is the suggestion that prayer is bad?

</comment><comment><USER14> I suppose I'm in the believer category, and boy does my mind wander when I hear prayer. And during sermons, and pretty much when anybody is speaking. Sometimes I wish I could focus on what somebody else is saying, but usually it's only in the narrow context of somebody speaking directly to me. How do normal people manage it? If somebody was praying TO ME, maybe I could focus better.

<comment><USER15> Ha, I'm glad I'm not the only one who's mind wanders during those things! I've come to believe that it's more a function of having an extremely active mind that prefers to interact over simply receiving information passively. Same thing happens to me during lectures in class. I try to engage my mind with what's being said, looking up relevant passages and asking myself questions about the validity of what's being said.

Also, there's no incompatibility between believing in a higher power and being able to reason. I'm a Christian in his third year of a Computer Science degree at a major university, and I like to think I have some capacity for reason :p

</comment></comment><comment><USER16> There seems to be more to the study that you might find interesting--just wish there was a way for us "lay people" to access the paper without paying a huge fee for access =/

Link to study abstract "The power of charisma--perceived charisma inhibits the frontal executive network of believers in intercessory prayer" [http://scan.oxfordjournals.org/content/early/2010/03/12/scan...](http://scan.oxfordjournals.org/content/early/2010/03/12/scan.nsq023)

<comment> a-priori [http://dl.dropbox.com/u/2779/Schjoedt%20et%20al%2C%202010.pd...](http://dl.dropbox.com/u/2779/Schjoedt%20et%20al%2C%202010.pdf)

<comment><USER16> you devil; you just made my day! Do tell the trick, because I run into this all the time.

</comment></comment></comment><comment><USER17> The second comment on that page is the first thing I thought of.

Sensational headline, obvious results. Nothing much to see here, folks...

<comment><USER18> Sensational[ist] headline - agreed.

Obvious result. Not so sure as I don't agree that the interesting result is that being spun from the paper (of which I've only read a detailed review and an abstract as it's paywalled).

The takeaway point for me, that harkened back to Milgram's Experiments and the like, was that the person running the experiment was able to induce in the subjects entirely different behaviour simply by saying the level of authority that the people they were hearing [supposedly] had.

To recapitulate they alter their critical consideration according to the level of authority claimed for the speaker by a third party. It is the authority of the scientist that swings the whole thing.

<comment><USER17> But aren't these conclusions already in widespread use 24 hrs of the day, from infomercial and advertisements, to talking heads in news and media?

</comment></comment></comment><comment><USER19> > It's not clear whether the results extend beyond religious leaders, but > Schjødt speculates that brain regions may be deactivated in a similar way in > response to doctors, parents and politicians.

Could this be how hypnosis works? Patients for whom hypnosis is effective have a mental model of 'the power of the hypnotist', and effectively anaesthetize their critical thinking faculties to follow the hypnotists commands?

</comment><comment><USER20> Alternate title: Reality distortion field explained

</comment><comment><USER21> If you are interested in the philosophical implications of this, then the following book is a favorite of mine (and may have indirectly inspired this research).

[http://www.amazon.com/Origin-Consciousness-Breakdown- Bicamer...](http://www.amazon.com/Origin-Consciousness-Breakdown-Bicameral- Mind/dp/0618057072)

</comment><comment><USER22> Religion installs a backdoor in devout believers' minds that allow advanced- stage mind-virus hosts to deliver virus upgrades without resistance.

I challenge anyone to find a major problem with this summary of the study.

<comment><USER23> It's politically charged to no apparent reason. You might as well say "Hierarchal organizations produce figures with perceived/real authority that cause some people to stop filtering information based on their trust in the individual transmitting (information) and/or the organization as a whole."

<comment><USER22> Except that overly generalizes the study. It was more specific. Avoiding hurt feelings doesn't justify misrepresenting the limited data.

</comment></comment></comment><comment><USER24> They should do a repeat with a bunch of troopers reacting to the voice of their sergeant to see if it comes up the same.

</comment><comment><USER25> Bit of a misleading headline. The article suggests that we are less skeptical of people we already agree with and in particular of people in positions of perceived authority.

<comment><USER26> Exactly like a well-known blogger posting an article to pander to his readership.

</comment></comment><comment><USER27> What does this have to do with hacking, tech, or startups? Why was this posted on HN?

<comment><USER28> Please read the guidelines for the answer:

<http://ycombinator.com/newsguidelines.html>

<comment><USER27> Amazing they didn't mention religion as off-topic.

I don't see how this is interesting to a hacker. It's interesting to a redditor, but that's why I don't go there.</comment></comment></comment>


Do Human crowds during protests resemble animal swarming behavior? - <AUTHOR> https://www.wired.com/story/what-the-science-of-animal-networks-reveals-about-protests/ <comment><USER2> Resemble, maybe, but here is an example of humans using a protest as cover for an attack.

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

It brings to mind the question of how this protest originated. Since those at the front with the banners were likely organizers of the protest, and it is clear they had other intentions for the protest, it seems like they were counting on enacting the swarming behavior.

</comment><comment><USER3> Of course Humans resemble animal swarms, but not just during protests, during religious gatherings (Hajj, Kumbh Mela etc.), the crowds celebrating sports victories, rush-hour traffic etc.

There is a large body of research around Human crowds in different circumstances.

<comment><USER4> The movies "Baraka" and "Samsara", both by the same makers, come to mind.

<comment><USER5> I have only seen Samsara. I found it strangely beautiful but very stressful. The human swarms in it are really unnerving.

</comment></comment></comment><comment><USER6> By definition and pedantry: yes. Humans are animals.

<comment><USER7> I think the more important word there is "swarming" and, no, the word "swarm" does not automatically imply animals as the word is used in other contexts, too.

<comment><USER8> What other contexts? As far as I know, it's only used by way of analogy to animal swarms: e.g. Docker Swarm.

<comment><USER9> May be rooted in the natural world, eg. locusts, but there was a Michael Crichton (author of Jurassic Park) book titled Swarm, about a nano-drone apocalypse (fictional novel treatment of something like Bill Joy's gray goo). I believe the accepted understanding is that a swarm operates with emergent behavior above and beyond that of its mostly ignorant constituent individual organisms, be they ants/bees/locusts/people or HFT algos.

<comment><USER10> Of course it's rooted in the natural world. Even technical language is analogy and metaphor to natural phenomenon.

Any reputable scientist will tell you just that.

Using swarm in the context science fiction bugs is indirection.

It could be conceptualized otherwise but in writing at large it's almost always used as an analogy to animal behavior (like a swarm of $natural_being).

I believe what you believe the accepted understanding is is just your opinion. It's not my understanding of it at all.

<comment><USER9> If my understanding, or belief, is only just an internet opinion, so unacceptable as to provoke this reply, would you mind sharing what yours is as a counterpoint?

</comment></comment></comment></comment></comment></comment><comment><USER11> The write up disappointingly only sees the value in understanding swarm behaviors from the perspective of police controlling crowds, and not from the perspective of crowds learning better swarm behaviors to prevent such authoritarian control.

<comment><USER12> Crowds are pretty good at that kind of thing already - for instance, I remember some protests a few years back where the protestors responded to the common police tactic of 'kettling', by just running like hell and scattering every time the police tried to surround them.

It worked quite well, because the police would quickly get exhausted having to reposition in heavy armor every few minutes.

</comment></comment><comment><USER13> I believe the technical term is emergence. It's been a back burner fascination of mine for a couple years now. I've been curious on how to apply to marketing, product traction and growth, and so on.

If anyone have any links on how it applies to human behavior, please share as a comment.

[https://www.pbs.org/wgbh/nova/video/emergence/](https://www.pbs.org/wgbh/nova/video/emergence/)

</comment><comment><USER14> This is an awfully verbose write-up trying to glean a kind of handwavy deeper meaning behind flocking. I kind of get what its going for, you'll see a lot of interesting crowd behavior from a simple view of a predator-prey model where you replace lions consuming gazelles with arrests. A couple people have asked me about what they should wear to protests and I suggested wearing zebra stripes. If enough people do it, it makes it hard to visually track what direction people are going in when they disperse and has the benefit of reducing bug bites. The idea here is good though, a swarm is a decent model for how protestors should behave because their forces are about numbers whereas the police are about specialization. I mean one of the more remarkable things about protests globally is the emergence of more distinct support classes offering dedicated services. As soon as trouble brews, I see people on both sides clearing out the most vulnerable because they probably can't afford to get arrested. There's definitely a hierarchy of high-value targets unfortunately. A good example is the emergence of white shields.

If you really want to get into it, attrition models here model rates for both factions. You can simulate it yourself with a cellular automata model for a visual representation. Appropriate considering they are literally using phalanxes.

[http://chalkdustmagazine.com/blog/modelling- warfare](http://chalkdustmagazine.com/blog/modelling-warfare)

Here's the interesting thing to me. What allows swarm behavior in humans isn't the advent of Internet technology or fancy math. Sure, social media makes it easier to coordinate immediate responses and allocate ourselves. But the only reason any of this happening is that we find ourselves having a lot of free time to actually understand each other, decide to agree on something and then organize a time and place to do it.

Aside: Dear Hacker News, if you really want to make a difference on the ground, consider offering tech stations where people can charge batteries or get service. Maybe take the time to teach people about surveillance cameras and adversarial fashion. Or you know, just tell people how to set up Signal. You might think this is low hanging fruit, but your average citizen is intimidated by it or completely isolated from the stuff that we get bored about. I know at least a good deal of us are frustrated that the average consumer is not more savvy or protective of their digital rights. What's beautiful about computer technology to me is how we help each other by teaching people to help themselves. Not everyone needs to know DevOps, but getting a community to switch from unencrypted messaging is fun and simple if you show them how easy it is.

Back to business: It's kind of a coding rite of passage to cook up the physics for a flocking system. Reynold's boids model is a masterful demonstration in how to intuitively understand class behavior.

My boss once asked me if we would ever be able to compute the complex behavior of bird swarms. I immediately flipped around and said yes, one day in the distant future of 1986. A bit snarky. I regretted it immediately. He just expressed disappointment by how simple it ended up being. I explained that its just a model of understanding and elegant for it, real life behavior is a lot more chaotic and nuanced than this toy. In 2D it runs pretty well, and it's a decent stress test on GPUs if you can also generalize the structure to take advantage of 3D engines.

Here's a link to Daniel Shiffman's excellent write up and code examples illustrating the phenomena: [https://natureofcode.com/book/chapter-6-autonomous- agents/](https://natureofcode.com/book/chapter-6-autonomous-agents/)

Another interesting take on swarming behavior is the study of convexity in the generalized raptor problem. The discrete version of this problem is a kind of flavor of the N-Queens problem. Basically you're solving for an ODE so the police on all sides can't get you.

<comment><USER15> > Dear Hacker News, if you really want to make a difference on the ground...

At risk of being cynical, dear Hacker News - avoid protests and think about how to be effective if you want to get involved in politics. I can count on not very many fingers how many times I've seen protests accomplish anything useful.

Protests, as a political tool, are for minority opinions to keep themselves in the spotlight using tactics a little bit like a pufferfish. If an opinion has the numbers there are much more effective political routes to take.

Political success, ultimately, comes from persuading neutral parties to support a cause or even at a pinch political opponents to become neutrals. Waving placards and chanting doesn't actually do either of those things effectively. Door-knocking and pamphlet distribution is more effective and more sustainable.

<comment><USER16> Protests worked pretty well in the baltic states (and other former soviet places) for changing entire economic systems, peacefully.

<comment><USER17> And didn't work so well in 56 and 68. It only worked for the Baltics and the rest in 89/90 because the Soviet Union was already falling apart, thanks to mismanagement of the economy.

</comment></comment></comment></comment><comment><USER18> Police have institutional memory. For example a demo in Trafalgar Square. For more than a century the authorities have known how to control that space.

If their masters want a riot in order to discredit the protest then that can be arranged. If they want the protest to be a damp squib then that can be arranged.

The protest will be made up of participants that were not there twenty years ago. They are newbies. They will behave predictably.

I suggest the author look to the history of protest rather than Africa's Rift Valley.

</comment><comment><USER16> yes (comparing bos taurus with homo sapiens): [https://news.ycombinator.com/item?id=23625491](https://news.ycombinator.com/item?id=23625491)

</comment><comment> xkcd-sucks Philosophically: Yes

<comment><USER19> I am not sure whether every flock is a swarm.

</comment></comment><comment><USER20> We are animals, so I'd guess yes.

</comment><comment><USER21> Some of therm do,and some of them are. They should stop calling them protest and call them what they are.</comment>


Ask HN: How to format code while commenting on HN? - <AUTHOR>

I've seen some people use code blocks to format text so it's more readable on HN? How do you do that?<p>Thanks. <comment><USER2> The FAQ is linked at the bottom of the page:

<http://ycombinator.com/newsfaq.html>

In there it says:

What kind of formatting can you use in comments?

<http://news.ycombinator.com/formatdoc>

On that page it says:

        Blank lines separate paragraphs.

        Text after a blank line that is indented by two or
        more spaces is reproduced verbatim. (This is intended
        for code.)

        Text surrounded by asterisks is italicized, if the
        character after the first asterisk isn't whitespace.

        Urls become links, except in the text field of a
        submission.

</comment><comment><USER3> You prefix it with 4 spaces.

        # like this</comment>


Sex Workers Say Decriminalization Makes Them Safer. It's Time to Listen to Them - <AUTHOR> https://www.gq.com/story/decriminalization-makes-sex-workers-safer <comment><USER2> Men should help by making this a body rights issue. Of course it's an everybody's rights issue, for various reasons private and economic, but men should take this one up for everybody, knock out the moral agenda, and make it an easy political victory. Get that government out of your pants!

<comment><USER3> > Get that government out of your pants!

So you don't think this applies in nudist colonies? That's silly, the rights of male prostitutes apply there as well.</comment></comment>


Behavioral Targeting: the most underused technique in today's marketing - <AUTHOR> http://visualwebsiteoptimizer.com/split-testing-blog/behavioral-targeting/

<comment><USER2> On your "About Us" page you're using a registered trademark (Cameron Moll's Authentic Jobs "Come in, We're Hiring" image):

<http://visualwebsiteoptimizer.com/about-us.php>

(I've screengrabbed here: <http://imgur.com/8DKAq>)

<http://images.authenticjobs.com/hiring.v1338305725.png>

It doesn't look like you've obtained permission to duplicate the design (and you've stripped it of the ®). I like the way it links through to a page which exalts people getting 'good karma'. Indeed.

I also noticed that whilst you linked through to XKCD for using the comic, that's pretty much the bare minimum you can do to satisfy the attribution requirements for his Creative Commons: it'd be better to include a small text link since it's not immediately obvious that the image links through to the source, and if I didn't know that it was XKCD I might think you'd come up with it.

<comment><AUTHOR> Hey, thanks for pointing this out. Getting the first image removed ASAP. Agreed it is copyrighted. But we didn't strip the (r) symbol, we probably reused it from somewhere else. An oversight on our part.

Regarding attribution, I always make sure I link them back to original source. But I agree with you that text attribution would be much better way to properly do the citation.

<comment><USER2> You're right, it looks like you may have lifted the image from Buzzient, who have subsequently removed it:

[http://www.tineye.com/search/74af78427fac53916cfb9e82fa674f4...](http://www.tineye.com/search/74af78427fac53916cfb9e82fa674f4ef8c6b680/)

Kudos for doing the right thing and updating both.

</comment></comment></comment><comment><USER3> In general, I find this approach incredibly annoying. Usually I would rather see the canonical version of a given site.

Hypothetical example: because I'm running Linux and in the US, a site shows me content/software geared towards US Linux users. However I am trying to find a solution for a Windows issue with my girlfriend's laptop, who is based in Ireland.

And a similar but different anecdote: Steam has consistently refused to let me pay for games with my US credit card while I'm in Europe. I have to use a VPN for the payment to process. Wat?

<comment><AUTHOR> Do you think a simple link in the footer which says 'Opt me out of this targeting' would help you? In general people appreciate personalizing content for them, but I agree some may not like it.

</comment></comment><comment><USER4> It might indeed have quite a lot of potential but on the other hand I am already annoyed when websites are geo-ip'ing their language setting based on my "alleged" location. But maybe enough behavioral targeting is going to segment myself into the leave-me-alone user group.

<comment><AUTHOR> Yes, determining language based Accept-Language header is a much better idea. [http://www.w3.org/International/questions/qa-accept-lang- loc...](http://www.w3.org/International/questions/qa-accept-lang-locales)

</comment></comment><comment><USER5> Not sure if these opt-out cookies have much effect but anyways:

<http://www.networkadvertising.org/managing/opt_out.asp></comment>


Ask HN: Microsoft Word on Mac is frustrating. Any suggestions? - <AUTHOR> I've always kept it up-to-date, but it is very slow (slower than my keystrokes!), shortcuts don't work and change on their own, it crashes in the middle of typing a document, the more words I type, the slower it gets...
I'm genuinely frustrated with Word on Mac, but don't want to switch to Windows at all. Any suggestions on how to fix these issue? Is there any alternative available?
Thanks in advance. <comment><USER2> Bean is your friend [http://www.bean-osx.com/Bean.html](http://www.bean- osx.com/Bean.html)

</comment><comment><USER3> For most of my more menial wordprocessing tasks Pages is perfectly adequate (I don't have Word).</comment>


Ask HN: RSS to Email suggestions (as a publisher) - <AUTHOR> I am working on a Ghost blog that publishes an RSS feed. I want to allow readers to subscribe by email, i.e. receive an email with the latest blog post each time a new post is published. I'd like to automate this if at all possible rather than create my own campaign with Mailchimp or similar.<p>My thought was, since RSS is automatic, that would be a good hook for some sort of tool to email subscribers, but all I can find on Google are tools for readers rather than publishers. Any ideas on how to accomplish this? <comment><USER2> I know that MailChimp has RSS to email:

[http://kb.mailchimp.com/campaigns/rss-in-campaigns/create- an...](http://kb.mailchimp.com/campaigns/rss-in-campaigns/create-an-rss- campaign)</comment>


Peter Thiel's Graph of the Year - <AUTHOR> http://www.washingtonpost.com/blogs/wonkblog/wp/2013/12/30/peter-thiels-graph-of-the-year/

<comment><USER2> This graph makes no sense. You can't compare these two time series on a single linear graph- notice the magnitude of the debt in is hundreds of billions. However, converting money into 2012 using exponential scaling, so magnitude variations between the two graphs aren't comparable.

Further, debt amount is a summed magnitude (extrinsic value) while the median wage is an aggregate denominated value (instrinsic) so again, comparisons are misleading. The debt should be listed per individual, or perhaps the functional relationship between individual wage and debt should be charted.

</comment><comment><USER3> wow. ew. what a sad story that graph tells. will these trends continue?

i'd be interested to see these graphs over a larger time scale too.</comment>


Ask HN: How are you managing your localization across platforms? - <AUTHOR> We have apps on 3 different platforms (mobile & web) and currently support 4 languages, more to come.
Our current solution to mange the translations involves a lot manual work (copy pasting) which makes it error prone. We were not able to find a easy solution to help us with this problem, how are you managing your localization, what tools are you using?
Thanks in advance. <comment><USER2> Definitely recommend externalizing your strings into one of the standard localization file formats (.po, .strings, XLIFF etc.) as mtmail suggested.

Once your content is in a file, you'll be able to use a platform like Transifex (disclosure: I work there) to manage and automate your localization process. You'll be able to invite your translators, track the progress of work, and communicate directly with them. Once the translations are done, you can get the translated files via the web UI, API, or command-line tool and use them in your apps.

Most of our customers are software companies and use Transifex to make localization manageable even with daily or weekly releases. We have a case study of Eventbrite on our site at [https://www.transifex.com/customers/casestudies/eventbrite/](https://www.transifex.com/customers/casestudies/eventbrite/). Disqus also talked about how they use Transifex at a conference a few years back: [http://confreaks.tv/videos/kodio_2014-continuous- translation...](http://confreaks.tv/videos/kodio_2014-continuous- translation-i18n-in-agile-projects).

Hope that helps!

</comment><comment><USER3> Look for .po files, xliff or .property files. There are quite a few standards [https://en.wikipedia.org/wiki/Translation_memory](https://en.wikipedia.org/wiki/Translation_memory)

There is desktop software as well as SaaS websites who offer to manage those files with online editors for you. Some have APIs that allow you to pull new translations (or whole files in the format of your choice). It makes it also easier when dealing with external translators or if you're in a hurry and want to pay somebody to translate just one string.

I used [http://gengo.com/](http://gengo.com/) in the past but they seem to have gone full enterprise now. [https://www.transifex.com/](https://www.transifex.com/) and [https://poeditor.com/](https://poeditor.com/) look like good alternatives. I'm sure there are many others.

You can download and install the open source [http://pootle.translatehouse.org/](http://pootle.translatehouse.org/). That's what big open source projects like LibreOffice use.

</comment><comment><USER4> I typically use .po files, which I think is the linux standard. Most languages should be able to use .po files, or an equivalent format. It might make sense to create a git submodule for all of your .po files and give all your repos access to it, do it acts as a shared library across all of your languages, frameworks and tooling</comment>


BART Defends Decision To Cut Off Cell Service - <AUTHOR> http://sfappeal.com/news/2011/08/bart-cell-fcc.php <comment><AUTHOR> >>"We saw people who were clearly ready to take action, with backpacks and tools. It was a recipe for disaster."

I'm not sure what he means by tools, but backpacks seems like a pretty common site on any mass transit line I've seen.

</comment><comment><USER2> I'm so glad we'll be returning to the pre-cell phone days. You know, when people never rioted or protested because there was no way to organize.</comment>


Ask HN: Have tracing JIT compilers lost? - <AUTHOR> The title refers to the famous 2010 thread "Have tracing JIT compilers won?" [1] on "Lambda the Ultimate". There, it was hypothesized that for dynamically-typed languages (JavaScript with Firefox's TraceMonkey and Lua with LuaJIT), "tracing JITs are turning up as the winners" and that per-method JITs, such as V8, may not "be able to keep up".
Since then, however, Firefox has left TraceMonkey behind and switched to a succession of method JITs, and in general, the major JavaScript engines have converged on an implementation strategy of a fast interpreter and one or more JIT compilation tiers (V8's TurboFan [2]/JavaScriptCore's Baseline & DFG & FTL [3]/SpiderMonkey's Baseline & IonMonkey [4]/ChakraCore's Simple & Full [5]).
Notably, none of these JavaScript JITs use tracing. Other dynamic language JITs that have appeared since 2010 (e.g. Julia, Pyston) have also avoided tracing. The only remaining major tracing JITs seem to be LuaJIT (which is no longer receiving new features) and PyPy (which uses a unique meta-tracing approach).
Contrary to what was predicted in 2010, it appears that for dynamic languages, method JITs have won over tracing JITs. For what reason(s) have tracing JITs been superseded? Have method JITs proven:
- Less complex to develop and maintain?
- Faster in the best/average case?
- To provide more consistent performance, i.e. less slowdown in the worst case?
Do you see any future for tracing JIT compilers, or do you expect future dynamic language JITs to only use the per-method strategy? Does tracing have any advantages - are there any situations in which tracing may be a good choice, or have tracing JITs proven to be a dead end?
[1] lambda-the-ultimate.org/node/3851 | [2] v8project.blogspot.com/2017/05/launching-ignition-and-turbofan.html | [3] webkit.org/blog/3362/
[4] blog.mozilla.org/javascript/2013/04/05/the-baseline-compiler-has-landed/ | [5] github.com/Microsoft/ChakraCore/wiki/Architecture-Overview <comment><USER2> > To provide more consistent performance, i.e. less slowdown in the worst > case?

AFAICT, this is the reason for the decline of trace-based JIT compilers. When Mozilla introduced JaegerMonkey, their first method-based JIT (which went on to make TraceMonkey obsolete), their reasoning was "tracing tends to interact poorly with certain styles of code" \- specifically "the downside of the tracing JIT is that we have to switch back and forth between the [slow] interpreter and the machine code [...] a lot" [[https://hacks.mozilla.org/2010/03/improving-javascript- perfo...](https://hacks.mozilla.org/2010/03/improving-javascript-performance- with-jagermonkey/)].

For an example of a situation in which tracing performs poorly, consider a hot trace through an if-else statement. The trace will only contain one of the statement's two branches - leading to reduced performance if the "off-trace" branch is frequently taken.

> Faster in the best/average case?

The issue with tracing isn't best-case performance - again, from Mozilla: "when we're able to "stay on trace" TraceMonkey wins against every other engine" [ibid]. Also, it seems tracing can compete in the average case against somewhat-advanced method-based JITs: "type inference was added to JaegerMonkey, which made it faster on average" [[https://blog.mozilla.org/nnethercote/2011/11/23/memshrink- pr...](https://blog.mozilla.org/nnethercote/2011/11/23/memshrink-progress- report-week-23/)].

> Less complex to develop and maintain?

In fact, I believe a good method-based JIT is probably _more_ complex than a trace-based one. When compiling at method-granularity, with incomplete information about types, complex features are required e.g. On-Stack Replacement (if the current method becomes "hot", it needs to be replaced by a compiled version), Inline Caches, Hidden Classes and Deoptimization.

In a trace-based JIT, all these features can be replaced by "just compile another trace".

<comment><USER2> > Does tracing have any advantages?

In summary, I think the advantage of tracing is its ability to give very good best- and average-case performance (albeit with poor worst-case performance), with less complexity than method-based compilation. This is a good trade-off for LuaJIT (a few people supporting ~50kLoC and specifically targeting a small footprint), but not for the leading JavaScript engines (who can afford large teams and millions of LoC).</comment></comment>


Square open sources Kochiku - <AUTHOR> http://corner.squareup.com/2013/09/kochiku.html

<comment><USER2> CircleCI ([https://circleci.com](https://circleci.com)) offers this right now. We automatically partition your test suite and run it across multiple machines.

Except since it's in the cloud, you don't need to own 10 Mac minis to make this happen. And if you decide you want to split it 20 ways, not 10, you can do that in about 2 clicks.

[disclaimer: I work at [https://circleci.com](https://circleci.com), if that wasn't already obvious]

<comment><USER3> It sounds like Square doesn't use 10 mac minis but rather EC2 spot instances....

</comment></comment><comment><USER4> I'm curious as to why Square would spend engineering talent on a distributed CI system when you can buy something like Jetbrains TeamCity that does what they wanted to do. This is not meant as a slam and I am also a developer who loves to build things but I would think Square and other companies for that matter would want to apply their limited engineering talents in solving bigger problems that grow the business.

Not looking for a flame war - just curious to get different perspectives.

<comment><USER5> It makes a lot of sense. I'm currently working on a large Rails app and we've felt a lot of pain with an off the shelf CI System (Jenkins) and the idea of writing our own CI has been mentioned a few times.

For Team City, here's the cost breakdown:

TeamCity Enterprise = $1,999

229 Build agents @ $299/each = $68,741

Total yearly license cost ~ $70K

This doesn't include the time that a team of developers will spend configuring the build and babysitting it during through the early growing pains of adopting a CI system. Also you'll probably still need a build/release engineering team to manage the server when you have a team of 100+ devs like Square does.

When you add it all up, building a custom CI setup makes a lot of sense. And I'm sure they grew it over time, with an initial version that was usable being completed in just a few months. What they've open sourced is the end result of spending that time.

When you really adopt testing as part of your culture, CI becomes totally critical so engineering should spend the time to make it a solid and viable solution.

<comment><USER6> A total yearly cost of $70K isn't all that bad when you break down the numbers. Software engineer salaries are typically much higher, let alone considering HR & insurance expenses.

So that's one employee you don't have to hire. I was on a team of 4 that, among other responsibilities, managed several TeamCity instances, all of them pretty large.

Generally speaking, once it was up and running, it was pretty low overhead and easy to automate. So I think it really is worth thinking hard about the cost before people dive in and roll their own solutions.

And there's always the argument of: instead of building your own, why not work to improve an existing OSS solution?

<comment><USER5> > Generally speaking, once it was up and running, it was pretty low overhead > and easy to automate.

This unfortunately has not been my experience with off-the-shelf CI solutions (open source or otherwise). Of course in all instances, we were writing a lot of new code and continuously enhancing old code so the projects under CI were very active. We dealt with CI systems being overloaded, builds breaking for cryptic environment setup reasons, and just an overall slowness due to memory leaks that were hard to diagnose and only occurred in the CI environments.

In the smaller teams, one engineer would essentially become "the build guy" that would babysit the CI system. In larger teams, this became a function of a Configuration/Release management team. In all cases, CI was a regular pain point unless there a lot of customization done over a long period of time.

At the surface level, a custom CI solution wouldn't take long to write. A simple poller to check version control, a script to build, and some basic notifications could probably be hacked together quickly and iterated on over time.

</comment></comment></comment></comment><comment><USER7> One of the things i'm really loving about Square is the utilities that they are open sourcing that are not core to their business. I think this is great for the community.

<comment><USER8> Their Android libraries and their involvement in the Android dev community are incredible.

</comment></comment><comment><USER9> When I was at Causes, we wrote a similar tool called Buffet ([https://github.com/causes/buffet](https://github.com/causes/buffet), pronounced like the investor) for running test cases in parallel on an arbitrary number of machines; dropped out total build suite time from ~20 minutes on a single machine to 2-3 minutes. We certainly didn't add the level of polish that Kochiku seems to have, though.

<comment><USER10> Yeah, we wound up adding similar functionality to Testify ([https://github.com/Yelp/Testify](https://github.com/Yelp/Testify)) before I left Yelp.

</comment></comment><comment><USER11> For distributed build, testing this is the best tool I've used: [http://www.incredibuild.com/](http://www.incredibuild.com/). Unfortunately, it is not open source. Does anyone know of a free alternative to incredibuild with a similar feature set?

</comment><comment><USER12> So now we've gone from adding an 'er' to everything and dropping the 'e' to using Japanese words and proper names for our products. And I was just going to iPost that to my iBlog.</comment>


Trump campaign materials made in China despite anti-China stance - <AUTHOR> https://www.newsweek.com/trump-keep-america-great-banners-are-made-china-1043692?piano_t=1 <comment><USER2> The ol' "do as I say, not as I do" approach to parenting a nation.</comment>


Ask HN: Do you do QA before releasing a mobile app? - <AUTHOR> If so:
1. Is there a special employee to do that?
2. What software is being involved?
3. How do you structure the tests? [checklist | scenario descriptions | other (what?)]
4. How do you give feedback to devs? (reports?)
5. When is the QA being done? [before beta dist | before public release]
6. Is it helpful?
7. Are you happy with your workflow? Any comments how to improve?
thanks! <comment><USER2> Yes, but who does it depends on if my project is professional or personal.

1\. Pro: Yes, we have a QA team; Per: No, but I have a few friends (some are Pro QA) I can have test the app for me.

2\. Pro: Telerik or Xamarin Cloud Platform; Per: Nothing, running the app while screen recording on their mac (I mostly do iOS dev).

3\. Pro: The QA team works with the BA to go over the requirements and develop positive and negative test cases; Per: I tell them what the app does and how it should work. They then bang on it until it either explodes or works.

4\. Pro: Team Foundation Services - Create a bug and add it to the backlog; Per: Email and Spreadsheet, then I log into my TFS Online account and add it.

5\. Pro: We have 3 levels of testing. Integration (where the devs/ci live), QA (after code-freeze on the current sprint), UAT (business approves the app) and then if all of those check off we launch to the public (usually internal MDM deployment); Per: I have everyone test it before public release.

6\. Probably the most important part of developing professional grade software. Which if you are releasing a mobile app, no matter if its a personal app or enterprise, it should be close to perfect!

7\. Yes, but the key to any workflow is it has to be adaptable. Pro: We recently had a 2 week deadline from conception to market for a mobile app that integrated with a number of our cloud-hosted back office accounting applications, and with that tightened deadline, QA and UAT were combined and all testing was done by the CIO (who the project was for).</comment>


How to interview engineers as a startup - <AUTHOR> http://tomblomfield.com/post/61760552398/startup-series-part-1-interviewing-engineers <comment><USER3> "...calculate row n of Pascal's triangle or implement a basic sorting algorithm, for example"...

I assume you let your candidate use google to search for solutions to these problems if they ask ?

Personally speaking, I think if you are going to put an engineer on the spot about some stuff they may or may not be familiar with, you have to allow them the appropriate toolset to solve these problems...you see for me, asking a dev to implement a sort algorithm or solution pascal's triangle doesn't really tell me a whole lot on its own, especially if the person has no entries in his "memory" for these problems, I think it is unfair and probably irrelevant to what they may do in a normal situation.

<comment><AUTHOR> Yes - absolutely. We'll actually give a definition of whatever algorithm we're looking for, often with specs provided.

I don't really care if you remember the definition of merge sort or bubble sort, but you should be able to code it up in a few minutes given the definition.

<comment><USER4> For the homework assignment, do you give them a time limit(i.e 1 week) to turn in their work? : )

</comment></comment></comment><comment><USER5> > In my experience, relevant, realistic coding challenges are by far the best > indicator of ability. They should take roughly 2 hours, to be done in the > candidate's own time

That's a great idea for the company, but from the perspective of the candidate, what a gamble of their time. They give away two hours of coding for free for a job they may not get? If you're going to demand that the candidate do some coding for you, at the very least give them a token amount of money in exchange for their time.

Yes, when you're hiring a lot of people, the cost can add up, but you shouldn't be demanding such a large slice of someone's time without being prepared to compensate them fairly.

<comment><USER6> I've done a few take-home interview coding challenges -- absolutely would NEVER do them again. Both that I did ended up just getting tossed in the trash. I was able to get in contact with my interviewers later, not one of them had even seen my take-home work.

If you're a company using this tactic, hopefully you're aiming for only the most desperate or green candidates, because that's exactly what you're going to get.

<comment><USER7> I've done a few as well. It left a bad taste in my mouth every time, too. It never showed what I could do, and I felt it was wasting everyone's time - <USER2> company's and mine.

Now I usually make a counter offer. I ask them to find a small project they can hire me for. It's a better use of everyone's time.

<comment><AUTHOR> We spend a long time (30+ mins) reviewing every single coding challenge we receive. We also use it as the basis of an hour-long interview - probing on the choice of libraries, asking extension questions, etc.

But it's important that you weed out no-hopers at the CV- and phone-screen stage, otherwise you're going to get hundreds of coding challenges and you won't be able to give them due attention.

</comment></comment></comment></comment><comment><USER8> Step (1) Know what you need.

I wish more companies were honest about the exact type experience they actually need.

[A]: "I need someone to fix bugs. We're talking head-scratching-mind-numbing bizarre behavior bugs. Most of the time you'll be starting out in the UI tracing connections back to the API then walking through the API into the core system until you can find out what actually happened."

[B]: "I need someone to make the application faster. It's an archaic enterprise system that is responsible for performing very important calculations. It's hundreds of thousands of lines of banking logic wrapped behind all sorts of enterprisey buzzwords. The first task you will have is to sort out why we are getting intermittent heap errors. You'll need to setup everything yourself as we have no dev environment."

Both these roles might be in the same technology space, and both will probably have identical resumes (5 years of experience with <foo>) but the types of people you will want to hire and the questions you will want to ask them are going to be vastly different.

<comment><USER9> I have thought about this problem for a while both as an interviewee and interviewer. Especially because this problem is magnified when you want to hire a data scientist; your ideal data scientist can be anyone from a SQL monkey to a statistician to a programmer who likes the title data scientist. The problem however is fear. Most small companies have short term goals that are in flux. So managers want this caricature of a human being: the ubermensch who does everything. The "best" of the "best". So the interview process is fucked up.

</comment></comment><comment><USER10> _Get an applicant-tracking system that stores CVs and the result of each interview (with detailed notes), so that you can compare candidates based on data._

I highly recommend trello for this if you're a startup. It's free and it's incredibly simple to manage CV/Candidate tracking with simple lists.

Great article Tom.

<comment><USER11> Is it OK to store candidates personal information in a free SAAS?

The fact someone has applied to you could be highly confidential.

<comment><USER10> When a board is private, only those users added as members to the board can view or edit it.

<comment><USER12> Thats not what he meant.

What he meant is that you are putting the private data of the applicants on the internet, on the servers of another company. I too find this highly dubious.

<comment><USER10> That's how every candidate tracking system works. Paid or otherwise.

<comment><USER12> Not everything has to be a web application, and not all web applications have to be hosted by a third party.

</comment></comment></comment></comment></comment></comment><comment><USER13> I've interviewed with them for an internship about a year ago and although I didn't end up getting the job, it was a very pleasant experience and I actually learned quite a bit in the process.

<comment><USER14> It's a good sign of how humane the process is if you left it with a good feeling about the company.

</comment></comment><comment><USER15> You should not need 4 interviews to hire some one and I have my doubts about cutesy algo based coding challenges.

<comment><USER16> No hire.

Candidate came off as smug and didn't even try to qualify his opinion with supporting evidence or experience.

<comment><USER15> :-)

Well I do have a number of decades of experience dealing with hr/ir issues and I am sure that any HR professional would agree with me that 4 interviews is two to many - I might allow a phone interview plus two FTF.

</comment></comment></comment><comment><USER17> I just changed jobs recently for a company currently growing rapidly - I only had one in person interview and one phone interview where I got notified the intention to offer. Nobody gave me any coding problems or such (although the company does ask these questions).

My situation might be more special though - I'm almost certain my GitHub & LinkedIn and how I came off when interacting in person was more than enough to convince the company. I'm clearly one of the most knowledgeable in a particular technology in my area. I was very happy that my time was not wasted though, and the company was good at assessing me (maybe not even realizing how much more I could do).

I think it's best to be flexible depending on the candidate.

</comment><comment><USER18> Wow honestly what is this company ? 4 interviews ? Hours of coding ? Seriously ? You better be the best bloody company in the world.

<comment><USER9> What surprises you here? This is standard operating procedure for most startups, including the 'hip' ones that write navel gazing bullshit.

<comment><USER18> Yeah unfortunately it seems to be a standard these days its kinda ridiculous if you ask me. I'm pretty sure I'd give them a special finger after the second interview, but that's just me.

</comment></comment></comment><comment><USER19> My list:

1) Be respectful of candidates: their knowledge, their background, communicating with them, and most importantly their time. You may think your startup is a very special snowflake, but to a candidate, it's application #107 out of 243. Nothing gets my goat more than a company that absurdly and absolutely wastes my time.

2) If a candidate makes it through a contact, that means they made it through a level of the interview process and were downselected and are now part of a smaller pool. That's how they'll perceive it, that's how you should perceive it. I've seen all kinds of nonsense about repeated interviews where the candidate thinks they're getting close to landing the job, but the company's internal processes are just getting enough interviews to fill out the hiring committee before rejecting the candidate.

3) If you're going to do the wrong thing and make a nepotistic selection, save everybody the time and energy and just hire that person from the start. Don't engage in kangaroo application processes just so you can claim it was competitive. It wasn't.

4) Have a solid idea of what position the candidate it interviewing for. Don't engage in "holistic" and speculative hiring where you hire a guy because he seems swell and you end up bouncing him around from position to position to try and make him fit.

5) Ask questions that are actually relevant for the work the person will be doing and might grow into. If it's a CRUD developer working on backend data stuff in SQL and Python, don't waste their time with irrelevant algorithm questions and score them based on their knowledge of node.js and functional programming -- or even worse, non-engineery things like how to negotiate a fulfillment center contract and keep inventory loss to a minimum. Chances are you need them to do lots and lots of X, not write bubblesort or regular expression optimizers or b-trees. If you _do_ need them to do that kind of work, interview them for that.

6) If you want to have a quiz, or coding challenge or whatever, give them problems that represent the simplest possible version of what you need them to do. Fizzbuzz is a great example. It exercises very basic programming skills without spending time asking them to write a bubblesort. If they list SQL on their resume, have them write a very simple SQL statement. 9/10 can't do these basic skills tests and there's no reason freaking them out and wasting your time on more advanced questions. You already know that if they can't do these things they won't fit in.

7) Contact your candidates and reply to them. When they apply, acknowledge the application. If you reject them, be a grownup and at least send them a nicely worded email, "...wouldn't be a good fit here...". When you are looking for a job, and you don't know the outcome of an interview at a place you really want to work for, you might delay or pass on faster moving opportunities to wait it out. Rip off the bandage and let them know they didn't make it so they can close it out and move on. It's just common courtesy.

8) Don't be confrontational. Many engineers are terrible at the soft skills during an interview and are already freaked out by the experience. It's on your home turf, you have all of the advantage, and it's concerning something that might have impact on the rest of the candidate's life. Be a good host!

9) Interviewers need to show up or make themselves available by some alternate means. You won't believe how many times I've heard stories of people showing up for an all-day interview (hard to get the time to do that if you already have a job), only for half the panel to not show up that day. Those people shouldn't be part of the interview panel if they don't take it seriously. Remember, #2 above, if the candidate finishes out those who are there, and is then called back in to interview with those who couldn't be bothered to make it...they perceive that as advancing in the process, not filling out your internal hiring board process.

<comment><AUTHOR> Great list.

Regarding points 4 & 5, I think it really depends on what stage of company you are, and what kind of work you're doing. When you're making your 4th, 5th, 6th hires into an engineering team, you normally want a pretty diverse range of skills.

We've had front-end guys work on SQL code and contribute significantly to our devops tools. People who are interested enough in programming to be constantly pushing themselves to learn new technologies are extremely valuable.

<comment><USER20> The "everything person" is a valid position - though your likelihood of landing this sort of unicorn might be questionable. I think GP is arguing against the extremely open ended sort of hiring - the "wow you're crazy good, but we don't have a real need for your niche right now so we'll bounce you around until you get frustrated and leave".

At some larger companies also, interviews tend to be "holistic" even when the roles are not. You might be hiring a frontend person but the interview panel will be consisted mostly of backend people. I've unfortunately been through interview cycles (from the employer-side) where this was the case.

Worse perhaps are when recruiters deliberately mislead the candidate into coming in. I've seen in the past situations where frontend or backend-centric people come in to interview for the exact opposite position, and are pissed off (rightly so) because they've made their specialization clear to their recruiter contact but was told the position was still relevant to them.

<comment><USER19> You pretty much got most of what I was thrusting at.

I'd only differ with you on larger companies wanting more holistic folks. In my anecdotal experience, large companies are usually hiring to fit somebody into a particular business process block and want ultra-specialized people for that block.

In my area it's not even uncommon to see job reqs for experienced people using very specific development tools as well.

It can get weird when that role is a new industry one, like less than 5 years, and they want a senior person for that role with 5-10 years of experience in it...which is clearly impossible.

</comment></comment></comment></comment><comment><USER21> Really? For a startup ?

Yes, you need good people, but you need good people that work in a good team.

Only after some time you can check if somebody is a good programmer or not and if he/she fit to the team or not.

All you write reminds me on big companies, they test the people, because when they hire them, they hire for many years (if you are in, you are in).

But on a small agile startup, is that really necessary? You see within some days if somebody perform or not.

<comment><AUTHOR> Yes, for a VC-backed startup between 8 and 50 people, which is what I'm broadly trying to write about.

You can check whether someone is a good programmer pretty quickly during interview & practical exercises, it turns out. The best way is a complete-in- your-own-time 2-hour coding exercise that's relevant to the job they'll be doing.

The cost (both economic and in terms of team morale) of sacking someone is not inconsiderable.

</comment></comment><comment><USER22> I particularly like the point about how each question should result in a hire/no-hire result.</comment>


Tesla is challenging hackers to crack its car and it is putting –$1M on the line - <AUTHOR> https://electrek.co/2020/01/10/tesla-hacking-challenge/ <comment><USER2> If someone offered me $200k+ (before taxes) to "do their work for them", I wouldn't have a problem with it as long as they paid in a timely manner. And that I got the recognition versus Tesla themselves taking the credit.</comment>


Why are there 5 chicken emoji but no Dinosaur Emoji? - <AUTHOR> https://www.dinosauremoji.com <comment><USER2> Aren't chickens dinosaurs?!

</comment><comment><USER3> not to mention dragon emoji

<comment><USER4> There is a dragon emoji! Edit: doesn't work in HN, [http://emojipedia.org/dragon/](http://emojipedia.org/dragon/)

</comment></comment><comment><USER5> This sounds like a big joke.

I'd rather emoji be removed from Unicode.

<comment><USER6> Does it bother you that people enjoy a part of something that is otherwise boring? Users clamoring for the newest emoji's is the main thing driving adoption of updated unicode standards, that is surely a good thing.

<comment><USER7> Yes, but emoji are endlessly growing and politicized in a way Unicode shouldn't be.

A global standard for emoji is a great idea, but Unicode isn't the right place for it.</comment></comment></comment>


When my heroes fall - <AUTHOR>

When my heroes fall :( Time and again I come across people that strike as awesome to me. Occassionally, I get a chance to work with them. And sometimes I get a change to work with them for long enough, to see them fall. I don't mean the fall of my heroes in absolute sense, but their fall in my eyes. Working with someone can be quite insightful. Mostly I am curious enough, that I poke around and get to know a few bits about how these heroes work. I realize that they are not the heroes I thought they were. They are perhaps a bit more vigilant than me, perhaps are interested a bit more in certain topics than me. It is at that moment that I trivialise my heroes. I get a feeling that it is easy enough to be there in their position and that they are not special in any way. This extra information that I just gleaned was inducing this magical aura around them, and they would appear to be genius, which elevated their position in my eyes. Once I get to know this secret the magic disappears. Those things that I trivialise are those properties from which a greater property, significant to me emerges. But I always fail to acknowledge the root properly. My heores fall, and the sad part is that I am the reason for it. <comment><USER2> Welcome to reality. I think that you'll find that everyone, hero or villain, has both good qualities and bad qualities. It's not healthy to idolize people, and it's not healthy to devalue them either.

</comment><comment><USER3> That's just how life is. People have varying degrees of smartness but success also has a lot to do with being in the right place at the right time and being ready to take advantage of an opportunity when presented. This is still a valuable skill that you can learn from them as individuals. One thing about successful people is that they don't get too hung up on things needing to be magical to get through life. Don't let the sense of disappointment lead you into depression, even though reality may seem a bit of a let-down compared to your imagination.</comment>


Silicon Valley's 'bro culture' locks out many minorities - <AUTHOR> http://www.sfgate.com/politics/joegarofoli/article/Silicon-Valley-s-bro-culture-locks-out-many-5211993.php#photo-5837971 <comment><USER2> > The Silicon Valley touts itself as a meritocracy where people climb the > economic ladder based on the power of their ideas.

Maybe it's not worth pointing this out over and over again, but a meritocracy is _not_ a system whereby you climb the economic ladder based on the "power of your ideas". It's a system in which you climb a hierarchy by scoring well in some externally defined "unbiased" evaluation process. The irony, which was intended in the coining of the term, is that such a test can never be unbiased and the institution that defines the test has power over everybody (read: The College Board).

There cannot exist even a model of a society where people succeed based purely on how "good" they are that also doesn't discriminate, since sorting the "good" from the "bad" is itself an act of discrimination.

<comment><USER3> > It's a system in which you climb a hierarchy by scoring well in some > externally defined "unbiased" evaluation process.

Getting deeply into evolutionary theory and learning theory destroyed my belief in naive meritocracy, and not for the typical reasons either. What you learn is that defining merit in any complex system is often as difficult as actually achieving it. If the fitness landscape is non computable then defining merit globally _IS_ precisely as difficult as achieving it. The two reduce to the same problem!

... and of course any real world problem domain that is worth doing and profitable to solve is almost definitely non computable, complex, shifting, chaotic, all those nasty things ...

Moreover, if you define merit via any "merit function" that does not properly model your problem domain then the system will optimize to your merit definition rather than for actual merit. I watched this happen over and over again with genetic algorithms, simulated annealing, and other learning algorithms. Sometimes it's comical... I watched a damn genetic programming system evolve to predict the behavior of my operating system's kernel thread scheduler to predict whether they would receive an "A" or "B" category item (I had a multithreaded fitness function) instead of classifying the item for example. Nature always prefers the lowest-complexity solution for fundamental second law of thermodynamics type reasons.

I think this is why things like stack ranking, etc., result in superficial short-term improvements to company performance followed by long-term collapses in creativity and deep performance over ensuing years. When you implement stack ranking then your company's culture optimizes itself for stack ranking, not for the market. Stack ranking captures a small aspect of the overall fitness function of the market -- namely tenacity and work ethic -- but fails to capture anything more than that. So you get gerbils, not engineers.

It's a hard problem. Be suspicious of sound-bite answers, fads, and simple ideologies in these waters.

</comment></comment><comment><USER4> Dumb headline. "Bro culture" doesn't lock out many minorities, the crappy schools we're forcing them into that leave them unprepared lock them out.

"[they] aren't connected to the social and educational networks where companies recruit talent"

Bingo. This should have been reflected in the title, especially because it seems to be the crux of the article. Blaming "bros" is an intellectually lazy way to gloss over the larger issue.

<comment><USER5> I disagree. Companies should allow and embrace cultures other than those of their founders. Not doing so is ignoring the issue. Yes, schools need to reform and a majority of the blame lies there well before SF companies have a chance.

<comment><USER6> Why should they "allow and embrace cultures other than those of their founders"?

And should they do it for themselves, or out of a sense of obligation?

<comment><USER7> Segregation and discrimination create suffering, and those doing the discriminating are responsible.

 _But one hundred years later, the Negro still is not free. One hundred years later, the life of the Negro is still sadly crippled by the manacles of segregation and the chains of discrimination. One hundred years later, the Negro lives on a lonely island of poverty in the midst of a vast ocean of material prosperity. One hundred years later, the Negro is still languished in the corners of American society and finds himself an exile in his own land. And so we 've come here today to dramatize a shameful condition.

In a sense we've come to our nation's capital to cash a check. When the architects of our republic wrote the magnificent words of the Constitution and the Declaration of Independence, they were signing a promissory note to which every American was to fall heir. This note was a promise that all men, yes, black men as well as white men, would be guaranteed the "unalienable Rights" of "Life, Liberty and the pursuit of Happiness." It is obvious today that America has defaulted on this promissory note, insofar as her citizens of color are concerned. Instead of honoring this sacred obligation, America has given the Negro people a bad check, a check which has come back marked "insufficient funds."_

<comment><USER6> I personally dislike discrimination because I find it to be one of the lowest forms of collectivism, and it is usually invoked by lazy fools in a vain attempt to see themselves as superior to someone. Racism has also been used to steal from the targets of discrimination, (usually by acts of parliament,) but this has become less common.

Your reason seems to be that your normative beliefs dictate that it is immoral for others to discriminate. I apologize if this is an unfair characterization of your point, but I am trying to accurately understand your post. This is a good explanation of why you would not discriminate, but does not mean you would embrace other cultures.

You did not answer my basic question though; why should corporate leaders "allow and embrace cultures other than those of their founders"? A failure to "allow and embrace cultures other than those of their founders" is not tantamount to discrimination or segregation.

<comment><USER7> Not allowing other cultures is discrimination.

<comment><USER6> Firstly, the earlier post said "allow and embrace", not just allow.

Second, I am not even sure how you can unfairly discriminate against a culture, and the problem here seems to be that there is not enough positive discrimination to accommodate differing groups.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> I'm black. So, I think I can speak a bit about the issue. What I notice is that a lot of black kids are/were afraid as being classified as being geeks/white. So, we basically lost them as kids. Way before anything about bro culture comes in.

Now they are older, they probably see Q from world star hip hop raking it in and probably wonder how do they get into that gig. But, they see the tech beyond their reach. So, I guess what they lack now is the education to get into tech.

Personally, when I'm finish working on Akasha(a programming language for genetic programming), I will dedicate some of my time teaching programming for free. It will be project based, come with an idea and we will develop it. And it will be a kind pay-it-forward system where they in turn teach someone else.

<comment><USER9> >I'm black. So, I think I can speak a bit about the issue. What I notice is that a lot of black kids are/were afraid as being classified as being geeks/white. So, we basically lost them as kids. Way before anything about bro culture comes in.

As a white guy who went to predominantly black schools I have to concur that the treatment these kids received was brutal. Any kid "speaking white" or having alternative interests was essentially alienated from his/her peers.

</comment></comment><comment> vezzy-fnord First of all, once again we have that dreaded AP CS exam where the media voluntarily ignores the fact that the rates for the whole country were abysmal and instead focusing on a particular minority where it's statistically likely that they have virtually no representation whatsoever.

Second, they're fallaciously assuming that the AP CS exam accurately reflects technological literacy and social demographics of people pursuing careers in CS. In reality, the exam is little more than an idealized Java course and is often an afterthought in many places.

 _Organizers say their goal is "a Silicon Valley that lives up to the dreams of Dr. King."

Stats prove that it doesn't._

I'm not very familiar with MLK's philosophy in detail, but wasn't he for equal _opportunity_? Equal opportunity != equal representation.

Then we seem to have a misunderstanding of what a meritocracy is. I'm not saying we have one, but even if we did, that wouldn't magically mean that we would have affirmative action and ridiculously high rates of minorities in certain professional areas. That makes no sense. The ideals of a meritocracy are that those who have more knowledge and skill will advance higher. If no one is pursuing such knowledge and skill in the first place, that's not the fault of the meritocracy itself. They should not be pushed to participate in things which they have no interest in, either.

But finally, the icing on the cake... clearly this is all Silicon Valley's fault and its hideous "brogrammer" culture that everyone talks about, but no one is really sure if it even exists. I can tolerate all of the other things, but how the hell do you go from "minorities are underrepresented" to "Let's blame Silicon Valley!" without any real data to support this?

<comment><USER10> It should be abundantly clear at this point that the established media is antipathetic to the tech sector. Part of this is economic - journalists (with some justification) blame the web for undermining their economic security. Another part is cultural, underpinned by the incomprehension and condescension of humanities majors towards technologists.

</comment></comment><comment><USER11> As suggested by one of the comments on the article, I think it would be much more productive to engage in criminal justice reform before even starting to worry about 'bro culture'.

50% of black men and 44% of hispanic men are arrested by the age of 23 (not to mention 38% of white men). These numbers are just way too high. Once you get into the system, it's hard to get out. And children of incarcerated or formerly incarcerated persons have a much higher chance of going to prison. See the vicious cycle here? The only thing this article got right was:

> But many people of color can't even find that ladder

This is the most pressing issue. Minorities can't find the ladder because they don't even know it exists. We're disproportionately locking them up and perpetuating criminal activity and poverty. If we want to fix underrepresentation of minorities at schools and in tech, we should start attacking the root cause, not a red herring.

</comment><comment><USER12> Agreed that the lack of minorities in tech can be traced to dismal STEM programs in high schools, but as a programmer of color, I will tell you, there is a disconnect in the workplace with minorities and the white 'bro culture'. Many minorities come from a different upbringing and when attempting to assimilate into the workplace, you find that you are forced to water down who you are or be alienated. This is not just a skin color issue, I have a white Russian friend that faced the same issues.

I have worked for a startup that went on to IPO and I will name a few things that happened while I was there:

\- Was asked by a peer to bring him and his clients coffee during a sales pitch. \- Constantly reminded of my lack of white pop-culture knowledge, to a condescending level. (Most knew nothing of black pop-culture, besides Biggie.) \- Being shown a picture of a guy they saw in the bar that "looked like me". The only thing we shared was the color of our skin.

I can go on, but my point is that there is much more to this than just getting minorities into technology, it's overcoming the stigma that many minorities face on a daily basis with being treated as novelties. I was born and raised in America, but many times I feel as if there are two America's. I also see minorities who have abandoned their identity for something more generic in order to assimilate and it saddens me, but I respect their decisions. As a first generation American, this is part of the struggle we go through.

There is a huge problem with exposure in tech. I believe the tech industry wants to believe we are better than other industries, when in fact, we are deeply flawed - and this is just one of the many problems we face.

</comment><comment><USER13> How can you folks say there's no brogrammer culture in silicon valley when I hear talk about "culture fit" all the time on HN? Some founders admit to excluding applicants because they wouldn't fit in to the workplace culture. Which implies these founders hire people who are like themselves. When people talk about brogrammers, this is what they're talking about.

<comment><USER14> The word "culture" doesn't mean the same thing in "bro culture" vs. "culture fit".

To me, "culture fit" is another way of saying "chemistry". It means that people work well together, and is what you want if you are forming a band, say, or any other creative endeavour.

<comment><AUTHOR> The problem with that, of course, is that "chemistry" is just another way of saying "people I'm comfortable around", which is a socially acceptable way of discriminating against people who don't make you comfortable -- usually defined as "people who are different than you". And so it goes.

<comment><USER14> One hears that argument, but I think it's shallow. People aren't cogs—some work better together than others. It isn't just about who you're comfortable around. Lou Reed and John Cale, for example, were not comfortable around each other. That's why I said "work well together": the work is what matters, not comfort.

</comment></comment></comment></comment><comment><USER15> Is the article "forgetting" to talk about foreign non-black, non-hispanics who work in SV and weren't "bros" and didn't go to the same schools as the founders of the startups they work for (asians, for example)?

</comment><comment><USER16> > Only 6 percent of U.S. tech workers are African American and 7 percent are > Latino; 15 percent are Asian American and 71 percent are white, according to > 2011 census data

Asians make up 5% of the population, yet account for 15 percent of tech workers according to the article. How come this "bro culture" hasn't kept the Asians out?

</comment><comment><USER17> Having consulted at about a dozen different companies in the last six years, ranging in size from an "under the radar," 4 person startup with no office to the biggest behemoths in our industry, I have noticed the lack of black and even Hispanic minorities (though there is no lack of Asian and Indian minorities). I have _not_ seen any evidence of a "bro" culture, brogramming or any such nonsense. Of course, this is anecdotal, but I find it hard to believe that working at such a diverse and large group of companies would not provide at least one example or one real story of "brogramming." Regardless, IMO, "bro" culture and "brogramming" are fictions made up seemingly of other's rare anecdotal experiences.

</comment><comment><USER18> The "bro culture" locks out anyone who isn't comfortable with working in that kind of environment, which probably includes most white guys. My guess is that it also holds these companies back. For example, I couldn't imagine an ethnically diverse company like Google (with an HR department and lawyers who worry about harassment issues) wanting to acquire a company that was known for its bro culture; it's just asking for trouble.

Does anyone know if any bro-oriented startups have actually become successful, i.e., grown beyond a handful of employees? Are they a mainstream phenomenon or a fringe phenomenon? Just reading stories like this from the outside, it's hard to tell.

</comment><comment><USER19> "Moneycracy" disguised as meritocracy?</comment>


The Death of Microservice Madness in 2018 - <AUTHOR> http://www.dwmkerr.com/the-death-of-microservice-madness-in-2018/ <comment><USER2> I am surprised there are no comments here. May be it was discussed in another thread ?</comment>