FairVote – Ranked-choice voting system - <AUTHOR> http://www.fairvote.org/ <comment><USER2> What does ranked-choice mean in the context of an electoral college?

Significant digits before insignificant digits. If you're gonna fix something, fix that.

<comment><AUTHOR> While true, they are targeting local and state elections first - you've got to start somewhere...

<comment><USER2> We have ranked choice in Oakland where I live. I cannot say that it is better. I can only say that it is faster.</comment></comment></comment>


NoTex: An online text editor for reStructuredText, Markdown, LaTex - <AUTHOR> https://notex.ch/ <comment><USER2> Help.. two years of work, and suddenly this amount of attention: I'd planned to have a relaxed Sunday in sunny Antalya/TR, but my server is now swamped with requests; let's see how long it will last. :) \-- · Hasan Karahan · Software Engineer · · firstname.lastname@example.com · · [http://www.blackhan.com](http://www.blackhan.com) · · MSc ETH Zurich ·

<comment><USER3> I have down voted you by reflex because your message looks like spam (mail address, link etc ...).

You should read the comment part of the guidelines ([http://ycombinator.com/newsguidelines.html](http://ycombinator.com/newsguidelines.html)), it will avoid you many down votes.

<comment><USER2> Sorry, Rexxar. Now that I read back over the comment I have written, I can understand why you may think it is spam. Actually, I am the creator of NoTex, and I was just trying to give everyone my contact information. I thought since the discussion is about my product, some folks might want to talk directly about it with me.

</comment></comment></comment><comment><USER4> Maybe a more accurate name would be Sphinx Online.

[http://sphinx-doc.org/](http://sphinx-doc.org/)

NoTex is a misleading name: if you want to use it and have math in your document, you must use TeX (or LaTeX).

<comment><USER2> I do use Sphinx in the backend, which I love as a tool! I've created NoTex.ch because I love the PDF quality of LaTex. But both these tools are a little difficult for non-computer-science people to use. I wanted to give non-tech people access to the publication quality of these tools without requiring (in- depth) knowledge of how to use them. And hence the name "No Tex". :)

<comment><USER5> Could you please elaborate? How does NoTex compare to other TeX web tools like [http://fiduswriter.org/](http://fiduswriter.org/) or even [http://arachnoid.com/latex](http://arachnoid.com/latex)

Your front page doesn't do a good job of describing its features. Also curious how you put it together from Sphinx?

<comment><USER2> For the elaboration just go read [https://notex.ch/overview/](https://notex.ch/overview/) \-- the other two tools I've never heard of so I can't really compare. The front page description is indeed minimal, which is something I might improve in future: But since it is open source, you're more than welcome to send me a corresponding pull request. ;-) For now read the forum, blog and play around yourself to figure out its features.

</comment></comment></comment></comment><comment><USER2> NoTex.ch enables to write books, reports, articles and theses using the reStructuredText markup language and convert them to LaTex.

</comment><comment><USER6> I have been looking for something like this - I desperately want to hook readthedocs internally as a documentation server and still have it editable by non - emacs using non techies.

I think it's much more powerful than a wiki (for docs) but the missing component is rst editing

Edit: totally agree on the vast majority of unsung OSS workers and hero(ine)s

<comment><USER7> I'm one of the maintainers of readthedocs and would love to integrate something like this. We have somewhat integrated support for linking to GitHub as an editor, but that is only a half-baked solution.

<comment><USER2> Hi forsaken, I've actually thought a while ago about a similar integration, but had simply not the time to go for the idea; I'd be more than open to discuss a possible integration if you think NoTex.ch might be a viable option. Regards, Hasan -- Email: email@example.com

</comment></comment></comment><comment><USER8> Wow! this is pretty amazingly well done.

<comment><AUTHOR> Yeah, just stumbled upon it the other day. Impressive indeed. Markdown, reST, LaTeX, project-based file management, Git integration… One author, >2000 commits in under a year, actively maintained. Some devs are just these brave silent workers…

Plus, open source: [https://github.com/hsk81/notex](https://github.com/hsk81/notex)

<comment><USER9> Amazing what a single person can accomplish with the right focus.

</comment></comment></comment><comment><USER10> This is really nice. My note-taking+journal+reference management system recently converged on a vim+nerdtree+mardkwon+git+ssh+pandoc setup. I think NoTex does all that in one suite. I like it!</comment>


An Eye Tracking Study on camelCase and under_score Identifier Styles - <AUTHOR> http://www.cs.kent.edu/~jmaletic/papers/ICPC2010-CamelCaseUnderScoreClouds.pdf

<comment><USER2> This is really interesting. Nice find. Here's a very brief summary: Participants were shown a few words and then four different identifiers, one of which matched the words and three of which did not. The example in the paper is:

phrase: "full pathname"

identifiers: fill_pathname, full_mathname, full_pathnum, full_pathname

From the conclusions section: "Although, no difference was found between identifier styles with respect to accuracy, results indicate a significant improvement in time and lower visual effort with the underscore style. The interaction of Experience with Style indicates that novices benefit twice as much with respect to time, with the underscore style. This implies that with experience or training, the performance difference between styles is reduced. These results add to the findings of Binkley et al.'s study"

So, finding the correct identifier was just as likely regardless of style but the correct identifier was found faster if it was using underscores as opposed to camelCase.

I think the underscores acted as "whitespace" in this study which in my experience is the most important factor in how quickly you can visually parse code. However, from a subjective/aesthetic perspective, I still prefer using camelCase over underscores.

<comment><AUTHOR> Your summary is accurate, but I'm not sure why they chose to measure what they did. Rather than matching "full pathname" to 4 identifiers that are not the same (due to the significance of the underscore), it seems to me more appropriate to ask the subjects to match "full_pathname" to "full_pathname".

I consider the underscore and capitalization as part of the identifier, and _want_ to be able to distinguish the (most likely) typo "full pathname" from the desired identifier. Trying their example, most of my time was spent rescanning to find "none of the above", then rereading the directions.

Suggested alternative that I think would be a better study:

Which of the following is the same as "fullPathname":

      1) "fullpathname"
      2) "fullpathname"
      3) "FullPathname"
      4) "fullPathname"
      5) None of the above

Which of the above is the same as "full_pathname":

      1) "Full_Pathname"
      2) "Full Pathname"
      3) "full_pathname"
      4) "full pathname"
      5) None of the above

</comment></comment><comment><USER3> If I've understood the abstract and conclusion correctly, the message here is that people who are used to under_score identifiers read under_score identifiers more quickly than camelCase identifiers, and this is probably due to training.

I guess it's good we've got that established, at least.

</comment><comment><USER4> I've worked with both. Conclusion: there no difference. But for instance in Python undescores are prefered because of protected/private members convention.</comment>


Brace : Dialect of C that looks like Python - <AUTHOR> http://sam.nipl.net/brace/ <comment><USER2> More than a dialect, a skin over C which could use some syntactic sugar. let(a,1)? In my book "a = 1", not even "let a = 1". It could be interesting, but the examples are too LOGO-ish, it could do trivial "duck-typing" (does "int a = 0" really need the "int"?), and the trade-off of using an imperative language or using another imperative language _and_ using another compiler isn't worth it.

<comment><USER3> That's not trivial, suddenly you have to have type inference. 1? Did you mean an int? Float? Double? 8 bits? 16? 32? 64? signed? unsigned?

<comment><USER4> > 1? Did you mean an int?

1

> Float?

1.0f

> Double?

1.0

> 8 bits? 16?

Those would actually need the type.

> 32?

1

> 64?

1ll

> signed?

1

> unsigned?

1u

C copiler already does that "inference" when you pass an attribute into a function - so why not when you declare the variable?

<comment><USER3> because you can write to a variable or pass it to more than one function

<comment><USER4> So you can infer the type on the first usage only and then treat the variable like it has a static type (because it does). That's what most type-inferring, static languages do.

<comment><USER3> the really smart, immutable ones, could let you treat the expression as any of those types as you like. this is supposed to be a cleaner C syntax, not another platform.

</comment></comment></comment></comment></comment></comment><comment><USER5> Looks like a very cool language (I can't help but love any language with real macros), but it looks more like ML than Python to me. I wonder how this compares to OOC. I think I might have to run them both through some tests and publish the results (aesthetics, speed (although I doubt that'll be an issue), flexiblity, etc).

</comment><comment><USER6> looks cool! what features did the author add beyond straightforward (nice- looking) syntactic transformations from Python-like syntax into C code? in other words, if i stared at Brace code and imagined how to manually translate it into C, what tricky cases are there?

the ability to quickly generate graphics with little code reminds me of Processing: <http://processing.org/>

</comment><comment><USER7> I would really like to mess around with this, but it doesn't compile under OS X because of some utility differences (namely readlink and cp).

<comment><USER8> drat! I didn't have an OS X box to test it on. I'll ask one of my friends to fix it for me or let me log in to do so. thx for the heads-up.

</comment></comment><comment><USER9> Hmm,

I'd like to have a dialect of Python that looks C.

Python is a generally cool and you can get used to meaningful whitespace easily BUT the meaningful white space thing becomes very problematic when you're on an arbitrary system using vi and without tools for dealing with Pythonism. When we had a serious bug that was removed by rewriting whitespace in a way we couldn't even determine by sight, I swore never to use the language again. I did a couple of years of python coding earlier. Kind of like project Mono's unexplained memory leaks.

<comment><USER3> :retab

(in vim)

</comment></comment><comment><USER10> First OOC, now this. What is the need to make anything look like the ugly indented mess that is python?

<comment><USER8> since some people like C's syntax and some people like python's syntax, I hope to support both in future, changing one to the other can be as simple as running a program like "indent" over the code.

<comment><USER11> You borrow so much from the Ruby community you should add opinionated design to the list. Adding a second syntax to OOC would really detract from the language a lot.</comment></comment></comment>


Scooter Company Bird Laid Off 406 People in Two Minutes via a Zoom Webinar - <AUTHOR> https://dot.la/bird-layoffs-meeting-story-2645612465.html <comment><USER2> Extensive discussion a few days ago: [https://news.ycombinator.com/item?id=22707935](https://news.ycombinator.com/item?id=22707935)

</comment><comment><USER3> This sounds pretty horrible. Given the large and distributed workforce, how could it have been done better?</comment>


Ask HN: Is xkcd writern in Haskell? - <AUTHOR>

<comment><USER2> According to <http://builtwith.com/xkcd.com> it runs on lighttpd.

<comment><AUTHOR> yeah, thats a webserver....

I am talking about the backend stuff's programming language? It appears that it was programmed using happstack.

<comment><AUTHOR> whats wrong with this comment?

<comment><USER2> Dunno. Wasn't me.</comment></comment></comment></comment>


The Maximum Z-Index Value - <AUTHOR> http://www.techjunkie.com/maximum-z-index-value/

<comment><USER2> _". Again today I had to inspect another ad that was causing the same problem. It had an index of 1 million. How annoying. "_

This suggests that your ad provider is noting that 'something' covers it up sometimes and so is auto adjusting its Z value. Consider talking to them about that.</comment>


30% through your life, you're likely 90% through your best relationships - <AUTHOR> http://qz.com/572284/the-tail-end/?utm_source=parVC <comment><USER3> This article shows zero understanding of the relationships one has with their spouse and children. Those grow and build over time, and are the people you really will spend your time with in your elder years. Thinking of them, someone who is only 30 has possibly not yet even met the people you will spend the rest of your life with. There is far more to come.

<comment><USER4> Many (most?) people will divorce their first spouses and some people will never have children.

I don't disagree with your point that the article is overly simplistic with relationships (presumably because it is told from the POV of a person who is unmarried with no kids) but it also is more complicated than just assuming everyone will get married, stay married and have kids.

<comment><USER3> [http://www.nytimes.com/2014/12/02/upshot/the-divorce- surge-i...](http://www.nytimes.com/2014/12/02/upshot/the-divorce-surge-is- over-but-the-myth-lives-on.html)

Your point is well taken, but divorce rates are dropping, so while we aren't living in the world of "Leave it to Beaver", neither are we in the lousy marriage climate of the 80s.

<comment><USER5> Don't all signs point to the economic climate being the reason as people can't afford a divorce?

<comment><USER3> To which economic climate are you referring? The rates have been dropping for 40 years... the economy has had many changes during that time.

The other comment was closer to the reasons I've read - later marriages, and/or people who do not marry in the first place.

<comment><USER6> The other ugly factor is that the rate of single-parent-dom has increased enormously. So tons of kids are growing up in households with only one adult, are "latchkey kids", and aren't seeing any role models for what loving adult relationships should look like. This does not bode well for the future.

</comment></comment></comment></comment></comment></comment><comment><USER7> Only if your best relationships are with people you met in high school.

My best relationships right now are with my wife and my close friends in the same city as I live in. I see them a lot more than I see people from high school (which is never).

<comment><USER8> > Only if your best relationships are with people you met in high school.

Or, as in this case, with one's parents and siblings. Which seems reasonable to me: as much as I like the folks I went to high school & college with, my parents and brothers are the people I'm closest too. No doubt were I married my wife would be an exception … but at my age I've accepted that will never happen.

<comment><USER9> _but at my age I 've accepted that will never happen._

Being totally judgmental: As a hack, why not try and think differently about this for 2016 as in "now I am at the right age and ready to find a companion."

<comment><USER10> When I gave up looking for a partner I found my future wife. It happened in 6 months> (we took 2 years to decide to marry).

She is my best friend and after 30 years our relationship is getting stronger and stronger every year.

Next to my wife my kids are everything.

<comment><USER6> You don't know how old the GP is. He did say, "...at my age..." He could be 60+, in which case the likelihood of him finding a really great partner really isn't very high, unfortunately. Also he doesn't say, but kinda implies that he's always been single. Usually, people like that never get married. It's sad, but true.

Remember, as you get older, you get more set in your ways usually, so it's harder to find compatible people. It's easier when you're in your early 20s and your personalities are still developing: you can "mold into" each other.

Obviously, when you "gave up" you must have been rather young for that to have been over 30 years ago, and for kids to have resulted from it. Either that, or you're in your 90s (and your wife is several decades younger than you), or you're a vampire or something.

<comment><USER10> I was late 29 when I gave up looking. Had a date with my future wife on my 30th birthday. Married at 31 (almost 32) and kids significantly later. So I'm 62 and have a 23 year old and an 18 year old.

</comment></comment></comment></comment></comment></comment><comment><USER11> Articles like these make it seem really hard to avoid a scarcity mindset. I get desperate, clingy toward people and experiences since every advice columnist says "life is short!" and this may be my last chance at happiness. But meanwhile you're supposed to think otherwise with a feeling of abundance, even if that doesn't reflect reality.

<comment><USER12> I take it as a caution to continue making relationships with new people. I was involved in Scouting for 20 years, and never stopped meeting people. I now know the kids of some Scouts I first met!

</comment></comment><comment><USER13> Original: [http://waitbutwhy.com/2015/12/the-tail- end.html](http://waitbutwhy.com/2015/12/the-tail-end.html)

Check out Tim's other articles, they are great.

Some of the favorites I have bookmarked:

[http://waitbutwhy.com/2014/06/taming-mammoth-let-peoples- opi...](http://waitbutwhy.com/2014/06/taming-mammoth-let-peoples-opinions-run- life.html)

[http://waitbutwhy.com/2013/09/why-generation-y-yuppies- are-u...](http://waitbutwhy.com/2013/09/why-generation-y-yuppies-are- unhappy.html)

[http://waitbutwhy.com/2013/11/life-is-picture-but-you- live-i...](http://waitbutwhy.com/2013/11/life-is-picture-but-you-live-in- pixel.html)

</comment><comment><USER14> That's ignoring entirely the possibility of children, grand-children, nephews and nieces etc.

Plenty of opportunity for meaningful relationships with younger generations.

<comment><USER15> The fact that the author is 34 and the notion that future relationships with children weren't even mentioned is a fairly telling comment on the evolution of society.

<comment><USER16> It is a fairly telling comment on the evolution of _the author_. Unless you're fond of generalizing from a sample set of 1, it gives you virtually no information on the evolution of society.

<comment><USER15> The article was upvoted to the front page of HN by more than 1.

</comment></comment></comment></comment><comment><USER17> I find the article too subjective. After 30 I am finally able (financially) to travel around and meet interesting people, travelling increases probability of meeting more people and forming interesting relationships.

</comment><comment><USER18> Is somebody really trying to quantify meaningful, long-term human relationships?

I kind of thought almost by definition that these things were more nuanced than that. Some of the thing that gives them so much meaning over the long run, in my opinion, is the variability in these relationships. Kids making good with their parents, old friends putting past qualms behind them, neighbors finally taking the time to talk to one another, etc.

</comment><comment><USER19> I am not sure that the time I spent with my parents from age 2 yo to age 3 yo was 365x better than the Saturday I just spent with them.

Google:"childhood amnesia"

</comment><comment><USER20> This year I moved from Ohio (where I've lived all my life), where my parents and younger brother (1.5 years younger, we are very close when we were small) lived about a half hour from me, but I typically only saw them once a month or so, as my parents and younger brother are very busy and I have four children, which makes going out complicated.

Now I'm living in California, a similar distance from my older brother (10y older) who moved away when I was still in middle school. We now see each other twice a week, and my kids now have a real relationship with their cousins and my brother and his wife.

This article really made me think; I'm not super sure what my point is exactly, but thinking about things this way can be useful.

</comment><comment><USER21> I can tell by the title this article is written by someone who cannot distinguish between their life experience and the rest of the world.

<comment><USER22> The article is plain math. Their experience is irrelevant.

Unless you happen to live in a nearby house with your parents/siblings, or are able to commute every week to where they live, you're in the category the author describes, and you have seen the most you'll ever seen them by your thirties.

There no workarounds around this. Either you live nearby and you have the opportunity to see them often, or you have the most days spend with them behind you.

</comment></comment><comment><USER23> I've lived outside the US for four years. I move about every two years. I have amazing friends from all around the world and I work hard to keep up with then; even meet up with them on other sides of the planet.

Honestly, I think I'm on the better end of the quality vs quantity agreement (plus my sister and I never really got along either).

</comment><comment><USER24> The more I understand of life and myself the more meaningful my relationships become. So getting older is a blessing in that regard, not a disadvantage.

</comment><comment><USER25> I propose that this model of time spent with people is too simplistic. Shared daily time, whether with parents or childhood friends, builds relationships in a way that is naturally resilient to later time apart. It's not impervious, of course – you have to commit to maintaining these relationships, but we have more channels through which to do this than ever before. Not seeing a family member for a few months is an entirely different thing from not _communicating_ with them for a few months.

</comment><comment><USER26> Quantity vs. Quality should have been considered.

I've found keeping certain people I love at arms length by interacting somewhat infrequently actually makes an otherwise unbearable relationship great. Somewhat like living on the ocean or in the mountains one slowly loses the appreciation of what once was spectacular to the unseen eye.

Take with that the loss of any new gains by doing something else with your time and you will find none of the salient points have much value.

</comment><comment><USER27> Some of my favorite people I first met by moving far away from those I loved :|

There are also lot of sad things. There was a moment of time someone picked you up and then put you down for the last time.

Many of the things have already ended. I wish the article touched on at least 1 thing that may still have 100% left and some things that have 0% left as well for some contrasting.

<comment><USER28> Death and virginity.

</comment></comment><comment><USER29> I think it is possible to say we have ongoing relationships with people we never see or talk to...even with the dead. Depends how intensely the person affected us.

Sometimes actually meeting someone again diminishes the quality of my relationship with them.

</comment><comment><USER30> I'm 20, and say I'll live until my 60's..

Ever since I've co founded a startup, I've been meeting ppl I've never thought I would ever meet. My pre-startup era relationships are just regular ppl who have 9-5 jobs. I am def not through 90% of my BEST relationships..hell probably not even at 5%. I've got a lot more to meet.

This article is based on if you were going to live until 90, meaning after 30 ur basically fucked..while it may be more true, I still think it's way too early. Especially if the target demographic is ppl who browse HN

<comment><USER31> i hope ur start up helps u n ur ppl allow us non-start up 20+ yr olds embrace short hand.

</comment></comment><comment><USER32> Nonsense. It's a choice to work a typical job and not form new relationships. It's also the easiest choice.

<comment><USER22> What exactly is "nonsense" about the article? He didn't say it's fate or inevitable.

</comment></comment><comment><USER33> I'm not actually convinced by the author's point, but I do find the fact that you can comfortably fit all the days of one's life on a single page (or phone screen for that matter) to be rather depressing. I don't think it would have bothered me in the same way 20 years ago.

<comment><USER34> If you live every day in a meaningful way, does it really matter how many you have? I see a lot of people in my surroundings who are in a holding pattern waiting to start living the life they want and do the things they want to do. I get that the necessities of life often preclude achieving your goals, but I see a lot of ways in which those people could change their life to be more aligned with what they claim they want ... yet they don't, and I don't really understand why.

Don't see those remaining dots as a scarce resource, see them as an opportunity.

<comment><USER33> > I see a lot of ways in which those people could change their life to be more > aligned with what they claim they want ... yet they don't, and I don't > really understand why

I am this way, and I'm doing my best to work to realign my priorities to really make the most of the remaining dots. Force of habit makes it very easy to fall into a "holding pattern", and quite hard to break out of.

I appreciate the perspective of looking at those remaining dots as opportunity.

</comment></comment></comment><comment><USER35> I don't like his first conclusion. I don't _want_ to live where I grew up - <USER2> don't want to stagnate in my rural hometown. Playing it safe by staying near your family and high school friends means you take fewer chances, and you get fewer changes to make new relationships.

</comment><comment><USER36> This article (I've read it before today) inspired me to start my current side project. It's an app that visualizes your google calendar. For instance, you can really understand how much parent-time you have left.

</comment><comment><USER37> So, if I want to tell her that I like her, I should say it quickly in case I don't see her again?

</comment><comment><USER38> whelp, that's officially the first time that statistics has made me cry.

</comment><comment><USER39> Am I the only one who finds this bit of social conditioning (relationships with other people) as hugely overblown in terms of what's important in life?

Only in a culture that's so far fallen into degeneracy could something as tripe as that be considered (near or THE) ultimate purpose of life?

What about technology, scientific progress, our guided evolution as a species and so on?

We're far too obsessed about "relationships" with other walking-dead sacks of meat instead of what really matters, our legacy and the future. Which is why we find ourselves in this sad state of affairs today.

Endlessly bombarded and distracted by cheap entertainment (social networking, sex, porn, consumerism, money) and all too happy to leave the important bits in the hands of who exactly? People who have turned academia into a filthy whore that is constantly being pimped out to the highest bidder.

We have become the plebeians while mega corporations and elite government groups are free to write history and dictate how we will evolve.

I'm not saying we should live life as automatons, but this article is the perfect example of someone who's completely missing the picture. It would be great if we had a stabilizing factor to counteract this sort of bullshit but alas it's pretty much non-existent these days.

<comment><USER40> Nonsense. If you don't like relationships that's fine, but calling humans "walking dead sacks of meat" is just misanthropic rhetoric. Talk about this being a particularly "degenerate age" is typical of cults. Most people find social life to be a crucial source of meaning and enjoyment, and view technology as a means to that end. If you have another set of preferences again that's alright but why frame it as everyone else being wrong and call a basic facet of human existence "tripe"?

<comment><USER39> Because I'm not taking anything for granted. I don't see wasting my time playing cards with friends from highschool as being a basic facet of human existence.

Or spending unnecessary time with my parents.

Or moving back to the city I was born in order to pursue _that_ , instead of living in a city where I can make the biggest difference.

My post simply posits the question of re-examining what we've been indoctrinated with. Look at any ancient advanced civilization and you'll see that during their ascension they were not operating with "social life" high up in their list of priorities in life. It was only when same civilizations came crashing down that "relationships" and social-obsession increased a lot in perceived importance.

<comment><USER12> Disagree. Civilization exists _because_ of social impulses built into the human animal. The ascension of any civilization was fueled by institutions, cultural norms, guilds and churches and 100 kinds of socialization.

<comment><USER39> I use the word social in a very specific, narrow way, as I have explained.

Institutions, guilds and churches have nothing to do with "relationships" as exhibited in the article OP linked to, since they are explicitly furthering the same goals I talked about as being of paramount importance.

Did you read the article?

<comment><USER12> Do you understand the meaning of 'relationship'? You can't be a member of an intimate social construct without one. Marriage, religion, even politics is all about that.

That wasn't an 'article' so much as an infographic. There was little philosophizing present. That's all been introduced in this thread.</comment></comment></comment></comment></comment></comment>


Xilinx to Acquire Solarflare - <AUTHOR> https://www.xilinx.com/news/press/2019/xilinx-to-acquire-solarflare.html <comment><USER2> Problem with Xilinx is their IDE/toolchain. Hopefully SymbiFlow[1] will take off.

[1] [https://symbiflow.github.io/](https://symbiflow.github.io/)

<comment><USER3> What problem? Can you imagine some open source toolchain used in corporate setting? Who's supporting it? And who is liable?

<comment><USER4> Open source is used in every enterprise e.g.

Datastax (Cassandra), Confluent (Kafka), Oracle (MySQL), Hortonworks (Hadoop), Databricks (Spark), Everyone (Kubernetes).

Vendors support the products but people know it's open source and potentially liable to fail.

<comment><USER5> Proprietary software companies are equally likely to fail, and take the source code down with them. Free Software (and, to a lesser extent, Open Source) are less risky than proprietary software.

</comment></comment></comment></comment><comment><USER6> First Arista buys Metamako, then nvidia buys Mellanox, now Xilinx buys Solarflare.

I wonder who will buy Exablaze?

<comment><USER7> Qualcomm to have a better datacenter offering?

</comment></comment><comment><USER8> "low latency networking solutions for customers spanning FinTech to cloud computing."

Is this an HFT play?

<comment> 1e-9 It is certainly a big deal for HFT. Pulling the Solarflare networking technology into a Xilinx FPGA should cut a significant amount of latency for FPGA-based trading systems. Having a Solarflare IP core option should benefit other high-performance networking applications outside of HFT as well. Seems like a smart acquisition for Xilinx.

<comment><USER9> If you want an FPGA tied to a SolarFlare NIC, that's been available for years as a finished product under the name "Application Onload Engine". News article:

[https://www.theregister.co.uk/2012/02/08/solarflare_applicat...](https://www.theregister.co.uk/2012/02/08/solarflare_application_onload_engine/)

Whitepapers:

* [https://solarflare.com/wp-content/uploads/2018/11/SF-114649-...](https://solarflare.com/wp-content/uploads/2018/11/SF-114649-CD-LATEST_Solarflare_AOE_SFA7942Q_Product_Brief.pdf)

* [https://solarflare.com/wp-content/uploads/2018/11/SF-114903-...](https://solarflare.com/wp-content/uploads/2018/11/SF-114903-CD-LATEST-Solarflare_Application_Nanosecond_TCP_Send_Paper.pdf)

<comment> 1e-9 Yes, but the Solarflare ApplicationOnload Engine has several issues (e.g. limited Altera FPGA, inflexible architecture, logic on a separate ASIC that must communicate with the FPGA, and still uses a host CPU for the networking stack), which should be resolved by fully integrating with the Xilinx Ultrascale+ technology and putting all networking and decision logic on one chip. The result should be a much faster, much more flexible, and much more powerful solution.

</comment></comment></comment></comment><comment><USER10> They had their earning call today too, didn't they? One of the two seems to have done a number on their stock price.</comment>


Show HN: JSONify.link – get a pages HTML data in JSON - <AUTHOR> https://jsonify.link <comment><AUTHOR> I've had to write code to get summary data for pages multiple times in my career.

I needed to do it most recently for a newsletter app and figured it would be worth making a tiny API for. It could be used for chat apps or any social apps where links are shared.

I added the "CSS Selector" feature mainly for fun. Not sure how much use it would be outside of scraping etc.</comment>


Loss Of Sleep, Even For A Single Night, Increases Inflammation In The Body - <AUTHOR> http://www.sciencedaily.com/releases/2008/09/080902075211.htm

<comment><USER2> "It's important to note that they found this increase in inflammatory response in only the female subjects."

A bit of a misleading title then.

</comment><comment><USER3> a side note, increasing the intake of omega-3 fatty acids decreases inflammation system-wide. there's a fair amount of research on this, google 'effects of omega-3 fatty acids on inflammation' ([http://www.google.com/search?q=effects%20of%20omega-3%20fatt...](http://www.google.com/search?q=effects%20of%20omega-3%20fatty%20acids%20on%20inflammation&ie=utf-8&oe=utf-8))

</comment><comment><USER4> If you go to bed but wake up still not feeling refreshed, maybe you should do your own sleep study.

Dream Recorder for OSX will film you while you sleep. <http://www.dream- recorder.com/>

<comment> patrickg-zill Rather than spend $900 to several thousand on a sleep study, get a wrist or finger-clamp oximeter that measures the level of O2 in your blood - there are $150 ones that can log data for 24 hours and connect over USB. Sleep a couple nights with it on, and if your O2 level drops under ~92% for any amount of time, you probably have sleep apnea or a similar disorder.

<comment><USER4> That's a great tip. Thank-you.

</comment></comment></comment><comment><USER5> As i type this, i am awake for close to 32 hours without sleeping. After reading this, i am kinda scared.

<comment><USER6> Maybe instead of reading HN, you should go get some sleep. :)

<comment><USER7> Warning: Overuse of Hacker News may result in loss of sleep and increase inflammation in female readers. Keep this product out of reach of children. In case of accidental overdose, seek out a bed or comparable sleep unit immediately.</comment></comment></comment>


Presenting the Heroku Dashboard - <AUTHOR> http://blog.heroku.com/archives/2012/9/17/dashboard/ <comment><USER2> This seems like a neat feature but it's also painfully slow. Is that normal or is the dashboard under unusual load? Mysterious slowness seems like a recurring theme on Heroku.

<comment><USER3> For my account it's taking between 2 - 5 seconds to jump between Activity, Setting, etc.

It's likely just new deployment slowness.</comment></comment>


Ask HN: Coding Quickly; How? - <AUTHOR>

We frequently hear about how fast an application is deployed, and of course the golden rule "deploy fast, iterate often" is all about timeliness.
I am a novice programmer developing with php/kohana. I measure my production time in days, not hours, so any tips on just how to "code quicker"?
Is it normal practice to consult php.net and google like mad when developing? Or do the fast programmers "just know" over time? Memorization?
Thanks for any tips, all stacks welcome. <comment><USER2> If you're a novice, of course it is normal to consult outside resources a lot. With PHP it will require an obscene amount of memorization since there aren't really any strict naming or parameter conventions within the builtins lib. Plus, you've got to recall everything about the framework, too. I've been developing with Django for a couple years now and I still have to look up stuff I don't use that often. It just isn't efficient to try to memorize every single detail.

Don't worry too much about people who claim to have made an app in 30 hours or something. Chances are they (a) used something familiar to them and (b) most of the code came from existing libraries, APIs, etc. For what it's worth, I flag everything with some sort of development time in the title because I find it to be both arrogant and largely irrelevant (you made a URL shortener in 5 hours?! Do you want a cookie?!).

If you want to write code faster, write more code. You will get faster. That's about it.

<comment><USER3> That's the single best reason to use a good IDE live VS.NET + ReSharper. There's simply no reason to ever pull up the documentation because it is all right there.

Need to do something with Sockets? Type "sock"+SHIFT+CTRL+SPACE and a list pops up with everything you can do with Sockets, even if it's stuck way at the bottom of some obscure namespace you never would have found (let alone thought to import). All the classes have descriptions and constructor info. All of it is hooked into the docs and examples with F1.

I've done Django in Eclipse recently, and I'm currently doing a bit of PHP consulting, also in Eclipse. Even with all the right plugins, I still find myself on Google constantly, just like you describe. It's frustrating being expected to memorize things, especially when you know that you wouldn't need to if only you had better tools.

<comment><USER4> In general, having O(1) access to everything you need during development will greatly increase your productivity (it will help achieve and sustain flow more often). You might (or rather, _will_ ) have to write some tools to achieve that. This is where having an easily extensible environment like Emacs comes in.

</comment></comment></comment><comment><USER5> "Is it normal practice to consult php.net and google like mad when developing?"

If by php.net you mean the language manual, then yes. You will consult the _language_ manual less and less, but you will always have new libraries to pick up, not to mention platform documentation.

Eventually you will know so many different things that you will seek to learn how a given system _differs_ from another system you already know. You will end up getting a book on a new technology you have never used and jump straight to chapter 5, for example, or flip to the appendices, or read the dense 50 page spec over a cup of coffee. Sometimes, specially for protocol wrappers, you might skip the whole manual and retain the help of a disassembler of a packet sniffer. Sometimes you will start attacking a given implementation from its weak entry points: first the test cases, to see how something is used; then the header files, etc. You can skip on a whole new fangled thing by reading the BUGS and TODO files, if they exist (be weary of their absence more than their presence.) You will get an eye for the brittle by skimming the source and see how the developers implemented a few standard things. I have dumped way too many weak C system applications by just looking at how the developers implemented command-line parsing, for example. This will help you narrow down what you actually _need_ to use, and from there you can choose the easiest one to learn of the few good remaining options (at some point you will learn to isolate library use-points by wrapping calls to other people's code in functions/modules, so you can replace them in one tidy place.)

At some point, also, you will end up googling for _error_ messages more than actual tutorial help. This is specially true if you're interfacing with infrastructure software like an RDBMS or system libraries.

It always takes long to write the first solution, but as you write many different kinds of software, you will develop a portfolio of useful solutions you can apply in other works. Projects that are written fast are also the ones that don't teach you anything; it's not flattering to have churned out something quickly, it just means you're not pushing yourself (which shouldn't be a goal in and of itself, btw.)

Don't worry about the speed of development and just try to write small, fun programs that solve your immediate needs (if no need is apparent, then brag points; nothing motivates like the kudos of your peers. Ok, maybe cash, a red Ferrari and a night at the Vegas strip ;-)

At some point, also try to broaden your horizons. PHP is not exactly a fun thing to work with.

<comment><USER6> The fastest way for me to code is to unplug from the internet completely. Get all your necessary documentation available in offline documents so that when you code, you don't get distracted by Hacker News :-).

Plus, your memory tends to improve since you'll actually be able to figure stuff out on your own than googling every little thing.

<comment><USER7> this is _really_ good advice - I find when I'm coding in a coffee shop then I feel more productive because the internet is a really big distraction.

I have the documentation on my laptop as well as the framework source code, so whenever I need to look someting up it's there. Having to make an effort to look stuff up means that my brain has more of an incentive to memorise it.

And practise, practise, practise. These things come over time.

</comment></comment></comment><comment><USER8> _I measure my production time in days, not hours, so any tips on just how to "code quicker"?_

Code less.

That isn't being flippant. Code you don't write is code you don't have to debug. It is code you don't have to integrate with your other functions. It is code you don't have to refactor. It is code that requires no maintenance.

I got the first version of my application up, running, and out the door in 8 days at a "normal work week" rate. I'm not a particularly good programmer, I just cut the feature set for 1.0 to the bone. Since then it has been three years now of iterations on the existing codebase that typically add a just a few hundred lines at a time.

I also rely -- heavily -- on libraries and frameworks that do stuff better than I could, and on Google for code references whenever I'm doing something which is new to me. (It took me probably 3 years until I could write Swing apps without a browser open. By that standard you'd think I'd be able to do it for Rails by now... but not quite, unless it is a pretty basic app.)

<comment><USER4> "Code less."

I find this philosophy depressing in the long run. If the first concern that pops to mind whenever you need to add a feature or change something is "how can I do this in the least amount of code", you'll be depressed when comes the time to code something that simply inherently takes a huge amount of code to tackle. You'll be less likely to make that big refactoring that would greatly enhance the consistency of your codebase and facilitate further developments.

As it is, my codebase is a place I spend most of my life in, so I like to keep the place tidy and know where everything is. I want to feel at home in my home.

</comment></comment><comment><USER9> I think that the more you code in a language the quicker it will come to you. For example I can usually churn out python, which I've been using for a while. However I'm just starting Objective-C and I need to consult Apple's reference library every other line of code. But it's not like riding a bike. I used to be able to write Fortran code like mad and now I can barely remember any of the syntax at all(possibly a good thing).

My issue is not so much remembering syntax and common algorithms but "brain drain" and typically take breaks all too frequently. Hacker News does not help with this.

<comment><USER10> My understanding is that BillG had to rip the radio out of his car back in the day. He needed to think, and he couldn't stop himself from listening to music while he was driving.

We have the noprocast feature.

<comment><USER9> Noprocast is a good feature, but I use SelfControl(<http://visitsteve.com/work/selfcontrol/>) to block other sites as well. Highly recommended.

</comment></comment></comment><comment><USER11> Focus on being efficient rather than quick. Charging off in the wrong direction will slow you down. Paralyzing yourself by over-complicating decisions will slow you down. _Move forward at a steady rate and you will get things done faster._

Of course, there is an element of experience and practice. To mitigate this, select good tools and _learn them well_. You should not need to consult php.net because you should have an editor that provides inline help. You should not frequently need Google because you should have a smattering of algorithms and idioms that can be re-applied. (For example, a large class of text validation and processing problems can be solved trivially with regular expressions.) "Recipe" style books can assist in developing go-to approaches for common classes of problems. Knowing the important bits of the standard library will help you avoid writing unnecessary code.

Last, but not least, avoid writing code that you don't need right now. This can be big stuff like features you haven't thought through very well. Or it can be small stuff. For example, there's an unfortunate tendency for people trying to do object-oriented programming to define getters and setters for everything. There's no reason to do this (in fact, there are plenty of reasons to not do this, but that's for another discussion) and these little wastes of time start to add up fast.

</comment><comment><USER12> I wrote the first version of my app in 2 hours - but it took a year of iteration to become a salable product.

(1) the first version worked, but it was the _minimal_ feature set you could imagine. That's one way to code fast.

(2) The 2 hours doesn't include thinking about it, designing it and using other tools in the same area. So I really just _typed_ it in 2 hours. The lack of bugs just showed that I understood the problem, and that the design of the code was simple enough to be trivial to debug (and having minimal features). This is another way to code fast.

I use google, docs, etc for sample code. I use it in two ways: (1) to help me understand; and (2) if it's not at the core of what I'm doing, I'll imitate how others do that part (e.g. how to use an API). The idea is to carefully apportion my time and energy - it's easy to waste heaps of time understanding something incidental to my task, when that time and effort is needed for understanding the important things.

Understanding is the difficult part. That's what programming is really about for me - not the looking up docs/typing/debugging.

</comment><comment><USER13> You still consult Google and the language reference, but much less frequently. Generally, if you want to get feature release time down to hours instead of days, you'll need to have the "core" of the language in memory. That usually includes language syntax, string methods, data structures API, whatever basic IO library you're using (files/database/network), and various other simple utilities. You'll know when you see them, because you see them repeatedly.

The other point that I haven't seen brought up here is to have a clear goal in mind. Know what you're building, because you can't build it otherwise. Unfortunately, this is often kinda tough if you're developing a new product, because your initial ideas for what makes a good product are almost always wrong, and you tend to discover that as you start implementing. So I've found it helps to think of your code as temporary: I know what I'm building _this iteration_ , and I'll just go code it up and see how it works, but it's assumed that I'll have to throw it away anyway and build something better next iteration.

</comment><comment><USER14> Coding is a lot like cooking. Sure, it's fun to cook from scratch, but if you're running a restaurant (cooking for a living, in other words), you'd better learn to get most of the hard work done before the dinner crowd hits. "Mise en place", they call it.

Developing works pretty much the same way -- they key to quickness when you need it is to have most of the grunt work done beforehand. That comes partly free with language features and libraries, but you'll find that, over time, you will have amassed a lot of code that pretty much does what you need. If you've done that properly, you'll find that you have essentially "added features" to the language you're working in -- and after a while you will find yourself writing code not in PHP, but in your own dialect of PHP (or whatever the core language is). That class (or function) that took you all day to write and debug? It takes 5 seconds to include it the next time you use it. That coupla annoying lines you seem to type every time you open your IDE/editor? Save them as a snippet or make them part of your default boilerplate -- it's quicker to select them and delete than it is to retype the damned thing when you need it. That part of it does take time to accumulate.

Even when the problem is a new one, it's often faster to extend the language in the ways you need it to be extended before you tackle the big picture. Some languages are a little easier to program bottom-up like that (PG gives excellent illustrations of that in the essays "Programming Bottom-Up" and "Beating the Averages"), but you can do something very like that in almost any language, and there's no better time to start than now. But do remember to add your greatest hits to your personal language library -- it'll save you loads of work if you ever need it again.

</comment><comment><USER15> I've been programming ruby on rails apps for about 9 months now and I can tell you that things definitely speed up over time. I still have a few browser windows open with the ruby and rails apis ready, and I still make heavy use of google to solve problems quickly. I think it's the little steps that individually don't cost much but on aggregate really slow you down that will steadily disappear and improve your efficiency.

</comment><comment><USER16> I google more before deciding how to code to a specific problem. I want to understand the problem better, see how it's been approached by others, if there are standard approaches, etc. This helps me crystallize my thoughts and get quick prototypes put together.

Your question is about your "internal toolkit" and your speed when coding. As your experience becomes richer and more varied, your feel (or dare I say, taste) will improve and you'll be quicker because of it. A problem will tickle some part of your brain and you'll have a much more intuitive understanding of how to use your external tools (php/kohana) to best solve it. For that you do need some strong understanding of what's available in your development language of choice - memorization isn't the answer, but you should be able to remember off-hand that library X solves problem Y and might apply here . . .

It has been valuable to me to expand my knowledge of development styles and languages, so try to work in some tasks that use some very different stacks than php and kohana. If you can find a good mentor or peer group, I think that can be valuable in your growth as a programmer.

There's a bit of the gunslinger mentality floating around right now re: coding speed. Stuff like the Yale programming class where data exists on the time it took students to correctly solve a programming assignment ([http://www.joelonsoftware.com/printerFriendly/articles/HighN...](http://www.joelonsoftware.com/printerFriendly/articles/HighNotes.html)). The conclusion made there is "(t)he quality of the work and the amount of time spent are simply uncorrelated." So right now, hackers seem to be making sure people know how much faster they are than everybody else. Ignore a bunch of this fluff.

There are arguments that if you're not one of the "rock-stars" you'll never create software as beautiful as one of the 1-in-100 hackers. I think this is a little true (innate talent is something that exists) but we as hackers should think more about our work as craft. Maybe most people can't be wonderful artists, but craftsmen (and women) have built some beautiful things over the years.

So work on your code as a craftsman. Care about it. Read what others do. Ask for feedback. Develop a habit of deliberate coding. Be patient, and be your own worst critic and best supporter.

And good luck - what we do is quite a bit of fun.

</comment><comment><USER17> Sharpen your tools and remember the problems you are trying to solve. Building software is just like building anything else and the first effort should be getting your tools in the proper state - that means having a good IDE, a good and private workplace, clean directory structures on your (hopefully linux) PC. Basically, you should learn programming environments (eclipse, emacs) and PCs (how exactly does this thing work? Coding = telling a computer what to do). Knowing what problem you are really trying to solve will avoid the biggest pitfall in programming - premature optimisation. Get your environment setup, focus in and separate problems into various smaller, isolated sub- problems. Stay clear on what you are doing and don't get side tracked by "interesting" problems. Honestly, I would say you should try to get away from PHP and learn a proper compiled language - Java is my favorite.

</comment><comment><USER18> Consulting php.net isn't an issue. I've been programming PHP for years and the language is so inconsistent I wouldn't be surprised if even the developers check their documentation every so often.

But, please, don't code for speed, code for quality. I can't tell you how many cesspools I've seen as a result of "rapid development". Namely, Lighthouse and github are some of the buggiest and unstable applications I've ever used.

They're still great applications, but dammit, when every new ticket goes to a milestone that expired years ago (Lighthouse) and I currently have "-1" unread messages (github), I can't help but be annoyed. Lighthouse more than github.

<comment><USER19> We spent months building GitHub's issue system and had a lengthy beta period. No one experienced the bug you're referring to until the feature went public. Shit happens, you fix it and move on.

<comment><USER18> Don't get me wrong, I love github, but it seems like every bug on sites I use exists on a site that was developed with Rails or some other framework that advertises rapid development. I'm not accusing you of incompetence, but out of every site I go to it's the one that's most often got some feature disabled because it was too buggy, unplanned, or what have you. Granted, it's also the one with the most new features popping up.

Yes, shit happens, but there's a pretty strong correlation between agile development and bugginess, whether it's the mentality it encourages or some other factor.

</comment></comment></comment><comment><USER20> It takes about two years to become deeply proficient in any language/framework. Up until then you'll get faster, look stuff up less, and churn out code faster.

Unrelated to that is the domain-specific knowledge, which has a different effect - you don't get faster, you learn what code to write, and more importantly, what code not to write. In the long run, it probably has more effect on productivity than being comfortable with a language. How long this takes really depends on the domain.

My experience with 10x programmers (I don't count myself in that group) is that it's the second area where the big productivity gains lie.

<comment><USER13> Something that Google's first employee said recently stuck with me: "I would say the single most important thing an engineer can do to be effective is to pick the right problem to work on." Alas, he had no idea how to do that (or rather, he obviously had a very good idea how to do it, but was unable to put it into words), but the quote resonates a lot with my experience. I've wasted so much time on projects that in retrospect weren't really all that important - I coded them quickly, and learned quite a bit that came in handy later, but the problems themselves were basically non-problems.

<comment><USER20> My stats prof used to take about "Type 3 errors." Type 1 and 2 errors are part of a basic stats course. Type 3 = "solving the wrong problem."

<comment><USER21> My understanding of type III was that it was "Right for the wrong reasons." I suppose it might not be a standard term ;-)

</comment></comment></comment></comment><comment><USER7> Not to language flame, but I think that php has a longer learning curve in this respect. Because of the huge number of functions available, there's a lot to memorise.

Learning an API is the hardest part of any new technology because of all the rote work.

Contrast this with something like python/django or ruby/rails - sure there's a lot to learn in the frameworks, but the language themselves are fairly small.

This means glue code is really quick to write, and you only really have to look at the framework documentation.

</comment><comment><USER22> "How do I get to Carnegie Hall?"

"Practice, practice, practice."

One thing, though: "Fast programmers" are not monolithic. Yes, you will be faster in an environment where you are not constantly looking up API functions. The world's fastest Perl developer that has never encountered Erlang is not going to turn into a fast Erlang developer overnight. He'll learn Erlang better than a novice will given the same amount of time, but it will still take time.

</comment><comment><USER23> more practice. reading code also helps.

But if coding, anything new (anything meaning - anything outside the domain(or even the current library) can put me off. When this happens,I feel like i have no control over the language, then I look it up and find more features, better ways to implement it, get depressed about my ignorance. The better of us here learn to implement it anyway and get better.

I should also add - I've been coding well over 5 years and the looking up web resources has deferred my learning any language via implementation. There is always some code online that I can refer to and refactor to my needs. Now, I find it hard when I want to code the same logic by myself. (Wonder how many have the same feel..I know many of you are true hackers, but how about the few of us?) AND when I try to implement without looking up, it really strains me and takes a lot of time(which i don't get in my enterprise world!) and plus the fake ego of having x years of x language and not able to write a working program.

Anyone?

</comment><comment><USER3> When you hear us talking about how fast we can move, we neglect to point out the years of moving slow that got us to this point.

I have 10 years worth of C# and Javascript libraries that I've written to handle just about any situation I can come across, as well as a home-built data framework that's more powerful than Rails, and an automated build & deploy setup that can get a new project up in minutes. These are the reasons why I can crank out a new database driven site in a matter of hours. No matter what it is, it's mostly already built.

So my advice would be to simply do your job and put in the time. Pay attention to the things that slow you down and write libraries that speed those things back up. Build yourself a set of tools and constantly improve them.

Five years from now, you can crank out a one-day clone of whatever flavor-of- the-month billion dollar site is popular at the time, and everybody will thing you're a genius.

</comment><comment><USER24> For me, it's all planning. I consider myself a terrible coder, so I have to lay out everything first. Working from that plan, I get things done fast.

Think of it like giving a speech. Write the speech, revise it, and then go over it in your head (The "practicing in front of a mirror" part doesn't really apply here.) Then, finally, give the speech. You might stumble over a few words, or have to consult your cue cards occasionally, but there's nothing wrong with that. You'll do it less as you give more speeches.

</comment><comment><USER25> "just know" is long-term memory. That's the technical, correct term, and is exactly what it says.

And at expert levels it is what separates the truly good programmer from the novice, and even the "talented" young. Realizing this, as long as you keep learning, no fear. The only price is continual practice: effort and time.

That also means be constantly self-aware. If things are going too smoothly, it means it's time to pick up something new.

</comment><comment><USER26> Pre requisites: 1\. Type without watching on the keyboard. 2\. Use IDE with autocomplete (Zend Studio in your case) 3\. Use Zend Framework of CodeIgnite 4\. Read a lot how to do it before you do it.

After some time you will have enough experience not to think how to implement this or that - this is most important.

Follow <http://gettingreal.37signals.com>

PS. Don't give up PHP

</comment><comment><USER27> You will eventually memorize the important bits of a language, and that will make your time decrease. Furthermore, you may learn a new style/language where the paradigm just "fits" you right. Both of these will make your times decrease, although a quick time is not necessarily a good thing. Remember that oopses can happen more easily if you're blazing away on the keyboard.

</comment><comment><USER28> Development environment. Get auto complete and api lookup in your dev environment.

Keep it simple. Most php you need to do can be done with a few commands (function, str_replace, mysql_query, while(mysql_fetch_array), includes and logic statements)

</comment><comment><USER29> I found to do something well, with clean code, documented methods, and tests, it takes more than a few hours. I operate on days not hours for those sorts of things.

Now if it's a quick script and not production code, then I'm usually pretty quick.

</comment><comment><USER30> Think, then think again, then code. Visualize. Code structure should morph as you discover the problem more. If you feel like a contortionist, you're probably doing it wrong - think Cirque du Soleil acrobat instead.

</comment><comment><USER31> I can hardly remember what I did 5 minutes ago. No programmer has a mind index of all of the libraries in PHP. If you have that kind of memory, consider an extended visit to Vegas.

<comment><USER32> I've been coding PHP for ten years and I still have to look up the argument order for array_key_exists() and a few others.

</comment></comment><comment><USER33> stop reinventing the wheel. if you run into a problem chances are hundreds of others have run into the same problem and a reusable chunk of code is available.

</comment><comment><USER34> Switch languages.

<comment><USER35> This was down voted.

I'm voting it back up.

Not all language flames are useless.

Coding in some languages can be 10x or more productive than coding in other languages.

Picking the right language to give you that 10x speedup is far more important than lots of other hints that give you 5% speed ups.

<http://www.paulgraham.com/avg.html>

</comment></comment><comment><USER36> My 2 biggest helpers to "coding quickly":

1\. I have written over 10,000 programs, but I have started about 5 of them from scratch. I just grab the closest thing and proceed to change it. I realize that doesn't help you much right now, but it tells you the same thing you'd hear in any endeavor: start building now.

2\. When you start building now, build "building blocks", pieces of code you can use over and over again. A good program that's 300 lines of code could have as many as 100 calls to other functions or subroutines. Isaac Newton achieved greatness by "standing on the shoulders of giants". You should do the same thing, even standing on your own shoulders once in a while.

</comment><comment><USER37> Good coders copy, great coders steal.

Google is your best weapon.

Always wear your balaclava while coding.

<http://www.thermalshop.co.uk/balaclava-season-pi-135.html></comment>


Lenovo modifying Windows OS files from BIOS to install Lenovo software - <AUTHOR> http://arstechnica.com/civis/viewtopic.php?p=29497693&sid=ddf3e32512932172454de515091db014#p29497693 <comment><USER2> They fixed it a while ago: [http://news.lenovo.com/article_display.cfm?article_id=2013](http://news.lenovo.com/article_display.cfm?article_id=2013)

<comment><AUTHOR> Except they only acknowledge that it was a problem because they did it wrong and introduced security issues in the process, not that it was a problem to do it at all. And to the best of my knowledge, the Windows "feature" to read and execute a binary from firmware at startup still exists.

</comment></comment><comment><USER3> Some previous discussion in these comments: [https://news.ycombinator.com/item?id=10039306](https://news.ycombinator.com/item?id=10039306)

</comment><comment><USER4> Lenovo is now off our desktop purchasing vendor list.

</comment><comment><USER5> This is incredibly disturbing.

</comment><comment><USER6> That sounds like it would violate the legal contract(or license?) between Microsoft and the OEMs for Windows?

</comment><comment><USER7> So Lenovo figured 6 months was enough time for the PR dust to settle on the Superfish fiasco [1] before risking customer security again.

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

</comment><comment><USER8> Wow. Don't trust proprietary BIOS. Use libreboot.</comment>


Typeset.css: open source CSS typography reset for styling user-generated content - <AUTHOR> http://developer.uservoice.com/blog/2012/10/19/introducing-typeset-dot-css-for-styling-user-generated-content/

<comment><USER2> The build tasks in Rakefile are couple with SCSS too tightly. I've added a Stylus version (<http://bit.ly/T76Ood>) but don't have ready to go build tools. You (or me if I get a chance) should extract it out to allow specification of the source lang i.e.:

rake compile:stylus:minified

<comment><USER3> Yeah, I was really on the fence about including an SCSS version, as I generally prefer to write straight up CSS without any preprocessors. (A buddy contributed the SCSS and Rakefile for Typeset.css.)

Thanks for the Stylus input. I've never used it before and will take a look.

</comment></comment><comment><USER4> Not too sure how seriously to take a typesetting tool by someone that uses ALL CAPS for emphasis </snark>

More seriously, this looks quite useful.

<comment><USER3> HA! Point taken. Glad you think it's useful nonetheless. ;)

</comment></comment><comment><USER5> I love it when startups share. Thanks joshuarudd. =)

<comment><USER3> (highfive)

</comment></comment><comment><USER6> This looks really useful, cheers!

<comment><USER3> Thanks! Glad you like it.</comment></comment>


Everything you wanted to know about machine learning but didn't know whom[video] - <AUTHOR> https://www.youtube.com/watch?v=ZKrO71KQ9NY <comment><AUTHOR> Title: Everything you wanted to know about machine learning but didn't know whom to ask

Speaker: Sanjeev Arora

Affiliation: Princeton University; Visiting Professor, School of Mathematics

Date: November 27, 2017</comment>


Jo March, Literary Lodestar - <AUTHOR> https://www.laphamsquarterly.org/roundtable/jo-march-literary-lodestar <comment><USER2> I found Gerwig's Little Women (of whom Jo March is the protagonist of, if you are an unread literary lurker like me) contains great depictions of the entire 'continuum' of femininity. I encourage men to go see it and even discuss it with their significant others. Come for the great filmmaking and stay for the valuable feminist authors' perspective.</comment>


NASA rockets once flew from launch pad in Michigan wilderness - <AUTHOR> https://www.mlive.com/news/index.ssf/2018/08/rockets_once_flew_at_launch_pa.html <comment><USER2> Hey, I've been there!

If you're up in the Keweenaw anyway, it's worth the side-trip to visit the rocket range. You'll spend a few miles past the end of the paved road, and there's a small stream to ford, so take a vehicle with good ground clearance, and self-recovery gear in case you find more mud than you bargained for.

And some industrial-strength mosquito repellent.

Once you're there, it's a quiet little site, and the rocket pad makes a perfect place to set a campfire without having to clear a bunch of brush first. The water is just a few feet away, and there's lots of cool geology within a short walk along the shore.

</comment><comment><USER3> I've also been there. I love camping in the U.P., and "discovered" the rocket range about 15 years ago. I didn't drive out there though, I walked. No one I talked to knew what condition the road "out to the very end of the peninsula" was in, so I decided not to risk it. It wasn't a bad walk, really. Good boots, and as mentioned, industrial-strength mosquito spray, are necessary. No one mentioned the old rocket range, so that was just a happy bonus.

I've not been back for 8 or so years, but I can't imagine the road has gotten any better, but I'd make the hike again.

On your way up to Copper Harbor, stop just north of Houghton at the Quincy Copper Mine. Even if you don't take the underground tour, take the tour of the hoist house; it was (still is?) the world largest steam hoist, and it is in remarkable condition as a relic of the steam age.

<comment><USER4> Going to or coming from Copper Harbor, you can also take the Brockway Mountain Drive for some elevated views. The final leg descending to Copper Harbor is also fairly scenic, so I'd probably recommend taking it eastbound, on your way in. Although there's a wayside you can stop at, for a few back over Copper Harbor, when you're heading the other way.

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

</comment></comment><comment><USER5> Fascinating. I'm both surprised and amazed, and not, at the same time. Large chunks of Michigan, and very much so in the U.P. in particular, were untamed for a very long time, and I wouldn't be surprised to learn more things like this took place in remote areas in the north.

</comment><comment><USER6> Spent my entire life in Michigan and I've visited every single county yet I never knew about the rocket range.

As a schoolkid growing up in Detroit we were obsessed about the space program. The Michigan tourism folks missed a huge opportunity.

</comment><comment><USER7> Non-AMP link: [https://www.mlive.com/news/index.ssf/2018/08/rockets_once_fl...](https://www.mlive.com/news/index.ssf/2018/08/rockets_once_flew_at_launch_pa.html)

<comment><USER8> Thanks, changed from [https://articles.mlive.com/news/index.ssf/2018/08/rockets_on...](https://articles.mlive.com/news/index.ssf/2018/08/rockets_once_flew_at_launch_pa.amp).

</comment></comment><comment><USER9> As a Canadian I had to laugh at "secluded wildness". A fairly large Canadian town (100,000 people) is nearby. And in the other direction another smaller town (70,000 people) a bit farther away to the north.

<comment><USER10> I think that's a perfectly fair description, they didn't say 'remote' they said 'secluded wildness'. And besides Thunder Bay isn't just 'nearby', it's separated by at least 30 miles of Lake Superior, and there's not much in the way of major development on the rest of Keweenaw peninsula.

Or put another way I'd consider places on the opposite side of the Cheasapeake to be secluded wildness even tho they are technically only 30-50 miles from downtown baltimore.

<comment><USER4> Google Maps shows about 90 miles, on a direct line, between Copper Harbor and Thunder bay. About 180 miles to Sault Ste. Marie. Having been in the area many times, Canada does not feel -- and is not, barring I guess an expensive and international sea plane flight -- a day trip. (And yeah, there's one controversial local magnate I'm aware of who would make that trip -- in his own plane.)

It may not be Canada-level wilderness, but it's pretty empty -- or "thin". IIRC, I was told that the large Ontonagon County, towards the west end of the UP, has one of the lowest county population densities in the entire country.</comment></comment></comment>


Ask HN: What is a good visitor to pre-beta signup rate? - <AUTHOR> I recently went live with a landing page for a new B2B SaaS app, and I am getting about 25-30% of visitors entering their email for future beta access.
However, I haven't seen anyone, any blog post, etc talk about what type of conversion rate is poor/good/great.
With that being said, has anyone come across any  good articles or past experiences on beta landing pages? <comment><USER2> If you send 1000 preschoolers to the computer lab and sit them in front of your landing page, you'll get no signups. Sit 10 businesses you've already spoken to on the phone about their problems, businesses your service could save hundreds of thousands of dollars, and all 10 will sign up. Your website's conversion rate is less than 1%: just 10 out of 1010 people signed up, but you actually converted 100% of your prospective customers.

The point is that websites don't have conversion rates, which is why there aren't any useful blog posts listing what conversion rate you should be aiming for. Whether your 25-30% e-mail opt-in rate is good depends on what percentage of the people you sent to that page were in your target audience to start with.

If 100% of them were people you spoke to on the phone that sounded super interested in your service, maybe 25% is bad. If they're just people clicking through a link in a guest post you wrote on some blog, 25% giving you their e-mail is probably excellent.

<comment><AUTHOR> So far, just for proof of random stranger concept, it's just on lower traffic beta listing websites, and a few low traffic websites. So, mostly cold web traffic leads, with a possible slightly higher bias to sign up based on the type of site sending them.

A previous venture, while not measured with the same accuracy, had less than half of the conversion of similar traffic at the same stage.

</comment></comment><comment><USER3> While it's great to gauge interest, beta landing pages, especially very simple ones that require only an email address, could be a dagger in disguise.

Usually, the simpler the form, the higher the conversion rate. It's really easy for someone to give them your email but the question is if they will actually become customers. That said, providing an email address itself is a form or validation and gives you the opportunity to reach out to them. Case in point, we received 100s of leads with a simple form but no one converted. Our new venture received just a handful of leads with minimal promotion but we've been in touch with most of them.

You'll also have to consider the quality of the traffic that you're bringing to your landing page.

That said, general conversion rates are useful to some degree. What you'll want to do is evaluate any changes that you make going forward with your current conversion rate to see if anything' changed.

</comment><comment><USER4> 25-30% conversion to email signup is a very good rate.

<comment><USER5> Yes. Where is the traffic coming from, and are the numbers meaningful?

Anything above single-digit % is good, for regular traffic. If the traffic is from people you pitched personally, then of course your percentage won't scale once you get more traffic from people who don't know you.

</comment></comment><comment><USER6> As long as the cost of acquisition is lower than the lifetime value of your customer, then you're on the right path.</comment>