Barriers to Entry for Women and People of Color - <AUTHOR> http://timesnewromanempire.blogspot.com/

<comment><USER3> I would like to see the statistics of the people who applied for VC funding versus those who got it.

Women and minorities just don't apply for VC funding as far as I know. I have many friends who are people of color and women and don't want to learn how to program or IT or anything a VC would want to invest in.

I don't want all VC funding and IT jobs to go to white males, but it seems only white males are the ones who apply for IT jobs and VC funding.

It seems if a woman or minority is not qualified for an IT job they give them blog duty instead. Then write social justice warrior white privilege articles like this one for ratings and mouse clicks.

<comment><AUTHOR> Number one, I am the author of aforementioned blog. I'm aware that my writing may come across less warm and fuzzy than I am in person, however, I don't consider it to be "white privilege articles" and I especially don't do it for ratings and mouse clicks, although if I didn't hope for the latter, I'd merely journal. Why shouldn't people click? It's an important topic - at least to some. That said, I easily get more clicks to my entertainment blog, and if anything, I write knowing that it can have a detrimental effect on how those endorsing the status quo - who may not be so A16Z-esque towards iconoclasm - perceive me.

There are a number of unpublished posts on that blog on various topics that are cathartic for me to write about. I have published several around tech and diversity because, as a woman of color who has academic credentials in ethnic studies, and who is navigating the tech / SV ecosystem (and documenting the journey), I have a perspective that is underrepresented in Silicon Valley and needs to be voiced. While I don't claim entitlement to much, I emphatically proclaim entitlement to my story and opinions (and thus won't be "shushed").

"There is no agony like bearing an untold story inside of you." — @MayaAngelou, from: [http://therouse.com/the-power-of-your- story/](http://therouse.com/the-power-of-your-story/)

Science Shows Something Surprising About People Who Love to Write [http://mic.com/articles/98348/science-shows-writers-have- a-s...](http://mic.com/articles/98348/science-shows-writers-have-a-serious- advantage-over-the-rest-of-us)

Now, as to your more salient points:

1). "I would like to see the statistics of the people who applied for VC funding versus those who got it."

As would I.

2) "Women and minorities just don't apply for VC funding as far as I know"

Let's not make assumptions. However, YC states that about 1% of applicants are Black - likely far less Black women. [https://news.ycombinator.com/item?id=8374198](https://news.ycombinator.com/item?id=8374198)

As Marc Andreesen points out in his recent Bloomberg / Dreamforce talk (at 38:30), there is both a pipeline and an access problem. Women and minorities will not be able to apply if they don't have access - e.g. the "referral from a funded company CEO" preference that many VCs openly require. If women and people of color disproportionately unlikely to have a "good ol' boy network," they don't have access. And there are more complex factors at play (that have been documented) even when women and underrepresented individuals do have "players" in their network. These are related to implicit bias - such as a higher rate of unreturned emails from those capable of making intros - or the fact that both male and female VC are less likely to fund a woman over a man - even if pitching the same idea:

Harvard Business School Study: [http://www.hbs.edu/faculty/Publication%20Files/Brooks%20Huan...](http://www.hbs.edu/faculty/Publication%20Files/Brooks%20Huang%20Kearney%20Murray_59b551a9-8218-4b84-be15-eaff58009767.pdf)

Marc Andreessen on Apple Pay, Bitcoin, and Airbnb [http://www.bloomberg.com/video/marc-andreessen-s-fireside- ch...](http://www.bloomberg.com/video/marc-andreessen-s-fireside-chat-at- dreamforce-2014-YXNamz6vR1yutRnFvhmmYA.html)

And tell me, if founders are told to focus on product (and not attend conferences)

and whereas underrepresented individuals outside of their existing network may not meet them otherwise...

and whereas, even if they succeed in meeting them, fail to secure an opportunity to "bond" or earn a referral...

How many underrepresented individuals are likely to gain access to VCs in order to pitch? Everything about the paradigm currently endorsed is structured to further disadvantage the disadvantage (see below).

3) "I have many friends who are people of color and women and don't want to learn how to program or IT or anything a VC would want to invest in."

Are they looking for funding? Can they create an MVP without learning to code and demonstrate demand? There are many open source alternatives to coding. Why should they have to learn to code any more than an MBA (or if they can find a technical co-founder - even if outside of SV)? Part of the problem (which I poke at in annotations of SA's "How To Start a Startup" link on Genius.com) is the acceptance of what VC's deem fundable.

[http://tech.genius.com/Sam-altman-lecture-2-ideas- products-t...](http://tech.genius.com/Sam-altman-lecture-2-ideas-products- teams-and-execution-part-ii-annotated)

Look, I follow several VCs (Brad Feld, Hunter Walk, Fred Wilson, Marc Andreesen, et al) and I like a lot of what they have to say. Their posts are informative, entertaining, provocative... One thing that can be gathered from the best of them is that they know they are not almighty and all-knowing...in fact, the Kauffman Foundation released a rather scathing critique of the track record of VCs (to which there were noteworthy rebuffs - namely by Hunter Walk).

[http://www.kauffman.org/~/media/kauffman_org/research%20repo...](http://www.kauffman.org/~/media/kauffman_org/research%20reports%20and%20covers/2012/05/we%20have%20met%20the%20enemy%20and%20he%20is%20us\(1\).pdf)

Perhaps it is faulty to stifle innovation by imposing criteria that are more cultural or convenient that statistically sound (as the statistics are vague and so limited, it is impossible to identify and isolate the variables).

4) "It seems if a woman or minority is not qualified for an IT job they give them blog duty instead."

Who is "they" and what do you mean by "blog duty"?

It seems to me that many in IT lack qualification in the humanities sufficient to understand the cultural and historical dynamics at play in the #DebugDiversity tech discussion. However, if one were to read my blog and referenced resources, they might find themselves farther along.

I also agree with Steve Blank that there may be a fear of more diversity because diverse candidates may "kick ass" (from 25:50, and especially at 32:08, below) / have a greater pulse on the wider consumer universe and the problems of the underserved. There may also be an unspoken fear that widespread outsourcing / offshoring will devalue tech labor stateside - <USER2> price we pay for not keeping up on education.

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

And as to your implication that women / people of color are not interested in IT, anecdotally, IT was never an option for me beyond learning DOS and Word Perfect in the one computer science class offered in High School. I didn't grow up with a computer in the home like many hackers. However, when I did finally get access to a home computer, I began building websites and learning to code when it became relevant to me (due to a series of events starting with a Ghanian friend gifting me with Robert Kiyosaki's "The Cashflow Quadrant" in 2000).

I'm sure they are many other people of color who don't have interest because they don't have access, exposure, examples, or opportunities around them - which is what organizations like #HackTheHood aim to address.

#CODE2040, on the other hand, as well as organization like MESA: [http://mesa.ucop.edu/](http://mesa.ucop.edu/) NSBE: [http://www.nsbe.org/home.aspx](http://www.nsbe.org/home.aspx), & Grace Hopper [http://gracehopper.org/](http://gracehopper.org/), demonstrate the rich talent that exists among underrepresented groups - although cuts to affirmative action and their presence outside of Silicon Valley (given the adage against distributed teams), surely inhibits their integration into the tech / VC ecosystem. All issues I'm very interesting in addressing, solving - and yes, writing about. By the way, a recent article points to similar claims made about women in the orchestra:

[http://www.theguardian.com/women-in- leadership/2013/oct/14/b...](http://www.theguardian.com/women-in- leadership/2013/oct/14/blind-auditions-orchestras-gender-bias)

And as an aside in response to your "White privilege" remark: I was raised in a White family, having a White mother, and I am very conscious of not only White privilege, but the privilege I had being raised in said White family - something as simple as my family owning real estate and receiving a trust fund that helped pay for my first year of graduate school.

I am also conscious of the disparities - not because I derive some pleasure in seeking them out, but because from the time I was child, school children in my predominantly White community - well versed in the most vulgar racial slurs - berated my complexion and features - incredulous that I could be brown and have a white mother... It is a topic that some choose to take the uncomfortable task of addressing, but which was imposed upon me.

So, while I have no desire to make assumptions about what you might mean by "social justice warrior" (I think it is a rather noble title, all-in-all), I would hope that you likewise would refrain from making assumptions about what is likely a vast pool of women and people of color outside of your immediate social circle, and rather, continue to call for more statistics so that we can collectively identify and solve the lack of equitable access to opportunity in and beyond tech.

5) "I don't want all VC funding and IT jobs to go to white males"

I find that encouraging. Thank you for sharing...and engaging in the topic - even if we may not agree on every point. That is how progress is made.

<comment><AUTHOR> Correction: Mark Suster was the VC who notably responded to the Kauffman critique: [http://www.slideshare.net/msuster/final-2014-pre-money- deck](http://www.slideshare.net/msuster/final-2014-pre-money-deck)</comment></comment></comment>


Working from Home Is Not Remote Work - <AUTHOR> https://blog.trello.com/working-from-home-is-not-remote-work <comment><USER2> The title is a little clickbait-y, the message of the article is _" There is an enormous, Grand Canyon-sized difference between letting an employee work from home once in a while and calling yourself a "remote team."_"</comment>


How Great Entrepreneurs Think  - <AUTHOR> http://www.inc.com/magazine/20110201/how-great-entrepreneurs-think_Printer_Friendly.html

<comment><USER2> "Among Inc. 500 CEOs, 60 percent had not written business plans before launching their companies and just 12 percent had done market research, according to the article."

Great quote.</comment>


Show HN: masterkey – secure interactive password manager using Go and NACL - <AUTHOR> http://github.com/johnathanhowell/masterkey <comment><USER2> > Passwords are always encrypted using a scrypt key derived from the input > passphrase

If this is correct then I'm not sure if it's best approach. My understanding is that in for example keepass there is a separate random key that is used to encrypt the data, and then this key is encrypted using whatever method user uses.

<comment><USER3> Yes, this is so you can change the password without needing to encrypt everything again.

</comment></comment><comment><USER4> I'm always interested in seeing new open source password management solutions. Unfortunately being limited to user/pass/location is a deal-breaker for me. The only decent tool I've found that provides additional fields is KeePassX.

<comment><USER5> pass lets you add any field you want: [https://www.passwordstore.org/](https://www.passwordstore.org/)

<comment><USER6> pass is very nice, but has some annyoing useability quirks.

<comment><USER7> Would you care to elaborate?</comment></comment></comment></comment>


The Battle for Usenet (1995) - <AUTHOR> http://www.skypoint.com/members/gimonca/usewar.html <comment><AUTHOR> _Several Usenet regulars have taken up Kibo 's grepping technique to search for articles related to their personal interests, regardless of which Usenet newsgroup the article was posted to. A more disruptive variation showed up in 1992, when a person using the name Hasan Mutlu started following up articles that mentioned Turkey with strange ravings about "Armenian genocide against Turks". The same person would use several names over the next couple of years; the one that stuck was Serdar Argic...._

That is, one of the earliest cases of automated Internet abuse was an automated propaganda disinformation bot aimed at sowing nationalistic division over genocide.

 _Plus ça change_...</comment>


Ask HN: How do you find your "flow"? - <AUTHOR>

Being the new year, I was thinking about ways to become more productive and, more specifically, how to more quickly get in a state of "flow" (fully immersed in an activity).<p>It would be interesting to learn how others in the HN community find their flow.  Share your tips and tricks below. <comment><AUTHOR> Here's a link to the Wikipedia page on Flow (<http://en.wikipedia.org/wiki/Flow_%28psychology%29>). Great page BTW.</comment>


Hiri: A cross-platform email client for Exchange and Office 365 - <AUTHOR> https://www.hiri.com/ <comment><AUTHOR> Not the author, but this just came up in the Ubuntu app store when I was installing Evolution. From a quick search around the web, it seems like it's gotten some good coverage and, despite appearance, is not electron-based [1]. The second interesting thing is solidly monetized, so may not be as much of a long-term risk to download/install/adapt to. They've also apparently been around for at least a year or more, getting some TC coverage [2], so I though I'd share with the HN folks, after seeing an increased amount of discussion around the difficulty of being in the email space :)

\--- [1] [https://en.wikipedia.org/wiki/Hiri_(email_client)](https://en.wikipedia.org/wiki/Hiri_\(email_client\)) [2] [https://techcrunch.com/2016/06/07/hiri/](https://techcrunch.com/2016/06/07/hiri/)</comment>


MIT and Nasa engineers demonstrate a new kind of airplane wing - <AUTHOR> http://news.mit.edu/2019/engineers-demonstrate-lighter-flexible-airplane-wing-0401 <comment><USER2> I wonder on the specific amount this could improve overall efficiency. I can't find the source paper, but I bet is possible that this innovation could make winged drones viable for non-militaries.

</comment><comment><USER3> I guess the paper should be at [https://www.liebertpub.com/loi/soro](https://www.liebertpub.com/loi/soro), in the April issue, but that isn't there yet, so I don't know whether it's open access.

I did find a probably related paper at [https://iopscience.iop.org/article/10.1088/1361-665X/ab0ea2/...](https://iopscience.iop.org/article/10.1088/1361-665X/ab0ea2/meta) (paywalled)

[https://www.liebertpub.com/doi/full/10.1089/soro.2016.0032](https://www.liebertpub.com/doi/full/10.1089/soro.2016.0032) (2017) also seems related and is online photos of the structures.</comment>


What is docker, when to use it - <AUTHOR> http://www.centurylinklabs.com/what-is-docker-and-when-to-use-it/

<comment><USER2> This, like so many other articles in the technical world, actually assumes you know what docker is. For example, it says:

        What Is Docker?

Good, I thought, finally an explanation. Then it says:

        So then what is Docker good at?

Oh. That doesn't help. Then:

      * Docker is great at building and sharing disk images ...
      * Docker is a manager for infrastructure ...
      * Docker is a great image distribution model ...
      * Docker uses btrfs ...
      * Docker has a central repository of disk images ...

None of this tells me what docker actually is.

It goes on:

        Docker is a basic tool ... that you
        should start incorporating into your
        daily development and ops practices.

Why? What is it?

      * Use Docker as version control system

Why not just use git?

      * Use Docker when you want to distribute/collaborate
           on your app's operating system with a team

Why not just use git?

      * Use Docker to run your code on your
           laptop in the same environment as
           you have on your server ...

I already do that - why should I use docker?

      * Use Docker whenever your app needs to go
           through multiple phases of development

Why?

      * Use Docker with your Chef Cookbooks and
           Puppet Manifests

Why?

      * Docker doesn't do configuration management

What?

At this point I give up - I have no idea what the author is talking about, and cannot deduce who the expected audience might be.

<comment><USER3> This is dead on. This is also a fairly accurate model of why I find many conversations draining and frustrating. To make any sort of valuable contribution to the conversation, I usually need more information than what is initially provided. More often than not the other person gets shifty and defensive and I feel like an interrogator.</comment></comment>


Full Text Search Algorithms - <AUTHOR>

Hello guys,

      I'm working on an asp.net project where a user(student)saves a doc file(.doc,.docx)in folder.
 Now that there is more tha 20000 doc files in that folder,i'm asked to do search in those files by keywords that that the user types like:"Object oriented programming",programing,networks...
I would like to know the most used techniques and algorithms for those kind of searchs?full text search algorithms? <comment><USER2> If you want to know some of the techniques, read "Managing Gigabytes: Compressing and Indexing Documents and Images" by Ian H. Witten, Alistair Moffat, and Timothy C. Bell.

If you want to actually implement search for your users, use solr. And use Tika for extracting text from Word documents.

<comment><AUTHOR> Thank you dalke.I want to search for text in documents(full text search like the one implemented in sql server full text index)and list the documents containing the text

</comment></comment><comment><USER3> Take a look at <http://lucene.apache.org/java/docs/index.html></comment>


My first Startup, would love some feedback.  - <AUTHOR> http://www.reddit.com/r/startups/comments/ogymz/my_first_startup_would_love_some_feedback/

<comment><USER2> Not sure how big the market is. But seems like a solid business idea and you could have a cashcow on your hands.

Good luck.</comment>


Show HN: Userdrive – Card sorting for user research - <AUTHOR> https://www.userdrive.co/ <comment><AUTHOR> Heya!

There seems to be a lack of (affordable) tools for doing quantitive research in the early stages of product development, so figured I'd build something for my fellow UXers, Information Architects and Product people.

Currently in early access, goal is to make it as useful as possible with additional features + more research methods and ultimately come up with a pricing if there is interest.

All feedback and thoughts appreciated. Thanks!</comment>


HTC caught storing fingerprints as World-Readable cleartext - <AUTHOR> http://www.theregister.co.uk/2015/08/10/htc_caught_storing_fingerprints_as_worldreadable_cleartext/

<comment><USER2> It is almost reckless and life threatening to use Android. It can:

1\. Cause financial ruin.

2\. Destroy your relationships. 3\. Possibly hurt your family.

4\. Introduce legal exposure to you and your loved ones.

5\. and more..

All because it has terrible security. It seems the companies in the ecosystem are just concerned with rushing new models out as fast as they can with little regard for security. Worse, when these things are discovered, they could care less about rushing out fixes.</comment>


Ask HN:Would you like to have your company site or portfolio site done for free? - <AUTHOR>

Hello, Everyone, I have been learning web designing from last 6 months. I have learned html, css, jquery, rails and javascript. I got one project in hand which is almost completed. Its about company website. So to practice and learn more i want to know if anyone is interested to get their company site or portfolio done by me. Yes ofcouse it will be free and i would be happy if you allow my name in footer at design by and linked it to my linkedin. If anyone want to connect and give me any suggestion or advice please do it at vikasfordatgmail.com. This is my post to connect as well. <comment><USER2> If you are looking for some practice as you ve mentioned, contribute to any OSS rather working for free. You can very well use those contributions in your portfolio..

Why not start with Mozilla... [http://www.whatcanidoformozilla.org/](http://www.whatcanidoformozilla.org/)

</comment><comment><USER3> How about volunteer to work for somebody so you can have real clients that will actually appreciate more. This can also add up to your portfolio.

</comment><comment><USER4> I really don't advice you to do work for free...

<comment><AUTHOR> Thanks for the advice. But to get visibility and learning i feel i need to do that. I am from data-entry background and i am learning web technologies to make a career change.

<comment><USER5> Use the time to learn whats needed in a role rather than giving time away. Start a personal project, get the code on github and use that to showcase yourself.

Don't give your time away to other companies for free.

<comment><USER6> Good advice here! There are plenty of things you can work on to build your skills.

</comment></comment></comment></comment><comment><AUTHOR> Thanks Icmatt ad NicoJuicy. I will follow those lines of advice seriously. Once again thanks for your time and valuable words.</comment>


JS assessment: A test-driven approach to assessing JS skills - <AUTHOR> https://github.com/rmurphey/js-assessment

<comment><USER2> I like this idea but I think the design needs to be pretty drastically rethought. Node.js is not really the right medium for this sort of test, although it might function as a first barrier for screening the interested; "you must be able to follow readmes to install software" etc.

What I'm more concerned is the idea that this is apparently structured like an automated test. If you used it that way, then here is a function which would pass the first test file:

        fn = function (a, b) {
            switch (b) {
                case 3:         return 2;
                case undefined: return 10;
                case 2:         return '1 3 4'.split(" ");
                case 10:        return [0, 0, 0, 0, 10];
                case 'z':       return '1 2 z 3 4'.split(" ");
                default:        return '1 2 3 4 a b c'.split(" ");
            }
        };

It was built by just looking at the "expect" calls, finding the input to the function and the output from it, and duplicating that output.

That's obviously not what you want to test. You really want to say, "you give me an object, and I'm going to generate a couple random test vectors and make sure you do the right thing with those vectors." You shouldn't hardcode the result, but the right algorithms, so that someone else's solutions can be measured against the right way to do things. And then you need to ask people not to modify the right solutions, but to duplicate them.

<comment><USER3> I agree, I also thought it wasn't clear if we were supposed to be writing tests, or code that was to be tested. Instead of modifying the test cases have them fill out a functions file and then run the random tests against those.

<comment><USER4> My fear with doing that is that if the functions file is separated from the tests file, then it becomes difficult to see at a glance what the function needs to do in order to make the test pass. That said, I agree that what you're supposed to do could be more clear -- would you care to open an issue so we can discuss it on the repo?

</comment></comment></comment><comment><USER5> I found the tests really fun. I confess I had to turn to MDN for help with a couple of the questions, and I definitely picked up some new JS knowledge.

I agree with drostie that the node requirement is quite a large barrier to entry. A standalone app (no server required) would probably reach a wider audience.

I don't think it's a concern that someone might hardcode the answers. These sort of tests are about challenging yourself, and where's the challenge in cheating?

For anyone interested, I posted my solutions at [http://f6design.com/journal/2012/04/15/test-your- javascript-...](http://f6design.com/journal/2012/04/15/test-your-javascript- skills-with-js-assessment/)

My 'partial' solution (and probably the rest too!) could be improved I'm sure. Thanks e2daipi for cluing me in about currying.

</comment><comment><USER6> Great idea. I do PHP training, and one of the things I did in some classes is to give failing unit tests to students and have them make them work. I noticed a couple of consistent points when I'd do this:

1\. How some students came up with interesting approaches I wouldn't have initially thought up.

2\. How many students wouldn't get the tests to pass. They'd do something part way, which would have looked 'good enough' if I'd just described the problem. But when running via a test runner, it failed.

</comment><comment><USER7> I think those things are super-fun! You always learn something :) Discovered this super-simple "partial" pattern while doing the "functions" part: <https://gist.github.com/2375986>

<comment><USER8> Isn't this what is known as currying[1]?

[1] <http://en.wikipedia.org/wiki/Currying>

</comment></comment><comment><USER9> It would great to see this expanded to cover more aspects of JS. It seems like it would be a good set of companion exercises to a tutorial.

<comment><USER4> I definitely want to add more tests to the set -- if you have ideas for other tests, please open an issue or a pull request on the repo!

</comment></comment><comment><USER10> Nice. Do you plan to put it on the web to make some normalization and standardization of the results? Would be great imho.</comment>


Ask HN: What does it really mean to do ML/DL at the hobbyist/research levels? - <AUTHOR> I have taken a  few ML/DL courses (college, Coursera, Udacity) and have implemented a bunch of models (SVM, KNN, Neural Network, etc) from scratch. I learned some tensorflow and made a CNN, RNN, and even a GAN for generating human faces (Udacity Course). I do hardware/firmware design professionally but i dabble with software and machine learning as a hobby.
I liked the courses where math was a huge focus because it allowed me to understand from first principles.
When i took the Udacity course it was just learning the tensorflow library for the most of it. Conceptually i understood CNNs and RNNs  but i couldn't implement it from scratch because i didn't truly understand it. I could maybe implement the forward propogation for RNNs but didn't understand the nuance of the backprop.
I ended up basically just understanding the tensorflow library, which is still useful and powerful. But that left me wondering why do people who do this for research and hobby really do?
I highly doubt researchers are spending their time re-inventing the wheel to implement their own basic CNN or RNN model, but they obviously are doing more than just function calls to a set library right?
What should i be trying to learn if i am a hobbyist wanting to really understand ML/DL? Is implementing theses advanced DL models from scratch even useful? What steps do i take to become "better" at ML/DL rather than just following the tutorials and courses that taught me how to use the tensorflow library to create basic RNNs/GANs?
When people say they are "better" at ML/DL than they were before does that just mean they have a better intuition for what model, how many layers, how much dropout, batch sizes, etc to use for a certain problem?
I feel lame just piecing together models with high level code like `keras.add_fully_connected(layer_size)` or `tf.MultiCellRNN`. It feels like cheating because i'm just throwing things together and seeing what works. The science aspect feels lost. <comment><USER2> Not sure I understand your question, or what you're trying to achieve. It's the same as if I asked you " What does it really mean to do hardware/firmware design at the hobbyist/research levels?" Does it feels like cheating when you're just throwing things together and seeing what works?

First thing you need to understand is that data is king. To use DL models you need lots of data. If you don't have lots of data, you will probably have more success with older ML models.

Hardest part of any DL/ML project is getting/cleaning/augmenting data. In the real world, dataset preparation will consume >75% of your time/effort. Size and quality of your dataset will affect the resulting accuracy more than a choice of a particular model.

Once you have data, you can just try several models which have been used for your task, and see if size of model makes a difference. Language or frameworks is not that important, but most people use Python and Tensorflow or Pytorch. Again, does not matter. Of course you need to understand the basics. For example backprop in RNN is tedious to trace, but you should be able to do it, if necessary: it's no more complicated than linear circuit analysis, or designing a FSM. There are no "nuances", just apply the chain rule backwards, and think in terms of unrolled computation graph. You rarely need to think about low level details like that, but occasionally you might need to use an operation which is not differentiable, or does not have gradient implemented in the framework you're using.

If you want to get "better" at ML/DL, go to Kaggle, and try to solve problems. Read about winning solutions. Read relevant papers. Read code. Try things. Eventually you'll get it.

</comment><comment><USER3> two routes from what i've seen to use data effectively (i work with quite a few data scientists):

1\. Go very technical, try to win kaggle competitions, try to create the very best solutions possible. This probably means learning all the cutting edge techniques, being very up-to-date with what's going on in the algo space, and lots of practice/experience, and you probably have to have a knack/passion for this kind of competition as well.

2\. Go very domain/business driven - force yourself to optimize thinking about high impact business questions that you'll be answering with data. If you can craft a strong answer that leads to high level business strategy, it doesn't matter what techniques you used, people value that. This kind of person is not ML centered, they are more of a stats person with some tensorflow mixed in.

Generally speaking, Google and AI/tech companies prefer #1, non tech companies prefers #2.

Most people who want to get into data science do it for the exact same reasons you do - it's math-y and new. Other types of programming are old, not so math-y, boring. However, data science at a business level is completely different from data science at a hobby level because doing data science is very expensive. It requires much more capital and infrastructure than regular programming. Definitely more expensive than developing hardware in my opinion, especially if you look at data collection costs, data scientist salaries, and how much work is needed to extract meaningful business value out of data.

A hobby level data scientist is probably similar to a hardware or robotics hobbyist in my opinion - they both play with fun tools and spend money/time but have difficulty translating it into real businesses/profession due to the high capital cost needed to even access the really good tooling, let alone do something at a competitive level with those tools.</comment>


Snapchat reportedly has 'hundreds of thousands' of unsold Spectacles - <AUTHOR> https://www.engadget.com/2017/10/23/unsold-snapchat-spectacles/ <comment><USER3> Only slightly related: I was talking to a parent friend of mine a while back, and we both agreed (he owns a pair) that Snapchat Spectacles are an amazing accessory for parents.

Kids are easily distracted, so if you point a phone at them it'll completely throw them off whatever cute activity it was they were just doing - <USER2> because they now want to play with your phone. No such problem with Spectacles - and not only that, it means you can keep two hands free (not a small issue when one arm might already have a child in it).

The problem is that Spectacles are _so_ tied into Snapchat that it makes sharing the output very difficult. Grandma and Grandpa are not going to use Snapchat, and I'm not sure Snapchat wants them to. You can, eventually, import into Snapchat then export single videos back out again, but they lose the cool display method for circular videos and look awful. But I think they could shift a lot of these glasses with a little rebranding and a spin-off app just for importing videos into whatever destination you want. They'll never do that, though.

<comment><USER4> my 80 something year old grandmother living missouri uses snapchat

</comment></comment><comment><USER5> Is it because they're hideous? Going by the article header pic alone.

More seriously, it's a niche product and Google Glass made everyone wary about wearing cameras in their face everywhere (or showed that people were inherently wary.) Of course sales were going to be limited.

There are probably some really good applications for camera-glasses, though. Record-keeping and quality control fir high-skilled manual workers, for instance.

</comment><comment><USER6> Surely they could generate some interest with give aways and events?

</comment><comment><USER7> "Snap Inc. is a camera company"</comment>


Siri Is Apple's Broken Promise - <AUTHOR> http://gizmodo.com/5864293/siri-is-apples-broken-promise

<comment><USER4> Although Siri is what it is, (i.e. seemingly great for some and disappointing for others) Apple don't really have a history of selling perfected technology out of the gate.(At all honestly) They do however have an excellent record of delivering software changes that enhance and add value to already purchased hardware. It's why it's a no brainer to buy an apple product, with very few exceptions: you are safe knowing that Apple have a plan and a pathway for the device you've already purchased, it will get better, more featured and ultimately rebirth the product again and again.

So with this ideology I bought a mac, and each OS X update brings something interesting and new to my computer, so I bought an iPhone and each update brings a larger set of features and refinements that I enjoy.

This is why I stopped buying nokia phones and dell computers. With those devices I always knew that the best day of each of those products was the day I opened them, after that it was a downhill slide to the garbage bin.

So, yes I use Siri, and being based in Australia I haven't been able to do business searches, but I've found so many opportunities where it's been a saving grace. I don't need to be annoyed by siri, because I know more capabilities are coming in 2012 and with it being an apple product, there are likely to be further developments past the beta tag.

</comment><comment><USER5> This rant goes beyond "I have a realistic view of what people expect from Apple because I'm a tech journalist" to "I am a three year old who was promised the world, and my expectations fell short as they were completely unrealistic."

<comment><USER6> I'd normally agree, but this has touched on my gripe with Siri from the moment that it was announced - Apple has the best marketing team on the planet, and they're selling people a product that they can't deliver. Siri really isn't a super AI. It's not a Star Trek computer, able to infer intent and reason enough to fill in the gaps in what you didn't say, and respond in perfectly- inflected English, yet that's what Apple's marketers are playing it up as. This is immediately obvious in the anthromorphization of Siri as "she" - <USER2> person, a gendered, thinking entity.

There was an awful lot of brouhaha over the past week or so about Siri being "anti-feminist" because it failed to produce results for certain womens' health terms, and because it fails to understand terms in colloquial/contextual senses, rather than in literal senses. The reason this was even an issue is because people have believed that they're being sold a thinking assistant, so failures to locate politicized terms are viewed as intentional censorship rather technological failure. One person writing about it was offended that Siri couldn't determine context for a given query despite her "obviously female voice". Where did that expectation come from?

We, as technologists, understand that Siri is a voice recognition system married to a search engine and integrated with the phone's calendar system. The vast majority of the population doesn't. They expect it's just "Apple magic" that's going to sell them what they've been watching on Star Trek and CSI for the last 20 years. The product doesn't live up to that - and it can't. I don't think it's wrong for people to be disappointed by it. The fault - <USER3> triumph - lies with Apple's marketing department. They've done a bang-up job selling the feature.

By comparison, Android's voice recognition performs pretty similarly to Siri in terms of practical usage, but it's neither hyped by the marketers, nor made into the crux of the marketing campaign for various Android phones. The result is that people don't buy Android for voice recognition features, and they aren't disappointed when the voice recognition features don't work flawlessly.

Apple's marketing department could sell ice to an eskimo. Doesn't mean the eskimo shouldn't be disappointed after the fact.

<comment><USER5> Keep in mind that Siri was a wholly stand alone product for all smart phones before it was bought by Apple. Apple has improved the product to a degree, but really, nothing has been changed except it has been modified to run only on an iPhone 4S.

Now to respond to claims by the Gizmodo toddler that reviewed it and kind of work your responses in here:

1\. The "find me an abortion clinic" use case is flat out, utterly without a doubt retarded. You couldn't find a more manufactured controversy in the mobile space -- unless you go back to last week's now disproven "carrier iq is an android rootkit put on by the carriers" controversy. First off, no one, and I mean no one, searches for "abortion clinic". Both sides of the debate are aware of Planned Parenthood. Planned Parenthood doesn't list themselves as an abortion agency -- despite what you might have read at TheOnion.com. Searches that are REALISTIC Use Cases like "Pregnancy Information" or "Family Planning" or "Birth Control" or "Morning After Pill" provide realistic results.

Yes, you can find edge uses cases that lead to Siri-baiting like above. Just like you could Google Bomb so that when you search for "idiot" you get George W. Bush's Wikipedia page. (I wonder..does that make the Googlebot a lefty? See how retarded that kind of anthropomorphic-thinking is?)

2\. The editor's complaints that he can't find "the fastest route" to the emergency room. You know what else you can do with a phone if you really need medical care in an emergency situation? Dial 911. Odds are an Ambulance will get you seen by a medical professional a lot faster than driving. (Also, Google Maps on the iPhone automatically shows traffic where available. It wouldn't be hard.)

3\. Complaining about No Turn-By-Turn baked into the iPhone: This is entirely Google's fault -- as they obviously have an API for it, but are locking Apple out in what you could argue is an anti-competitive behavior. This is why Apple recently just bought a Map Tiling company. It's obviously to anyone following the mobile wars that Apple didn't expect Google to be so responsive and competitive in the mobile space -- probably because they originally partnered to write the Maps app for the iPhone. Apple plans on cutting Google out of the mobile map search space in the future. Not in time for iOS 5, but next year it will likely be a whole different ball game.

4\. Siri is supposed to be App-aware? Where did Apple market that? Complaining about use cases Apple hasn't even considered is childish. What next, complaining that there isn't a third-party API for other Apps to integrate with Siri (which will likely show up in the next year or so...)?

5\. Where are these so-called Apple users that expect "Apple Magic" all the time? Because as a technologist, I'm guessing they don't exist. At all. Anyone who's used an Apple product for more than an hour understands that it's still a product, made here on planet earth, with it's on quirks and bugs. Every iPhone user has had to reboot their iPhone. Or had a download go bad. Or had dropped calls because AT&T is terrible. Or had to find a turn-by-turn GPS on their own. Same goes with Macs. Apple is know for high-quality design. For reducing the use case to such a minimal number of steps that seems so easy it might as well be "magic". In the auto space, BMW holds a very similar reputation. They are considered pricey, but worth it. A top notch driving experience. Well designed, well made, etc, etc. But the auto press is very much aware that like all other cars, it has an engine, moving parts, and can problems. They don't "magically" expect it to suck their dick to high heaven.

In comparison, Android's voice recognition isn't Siri. It can search the web, but it can't search wolfram alpha or the yellow pages, or Yelp, or any of the other databases Siri is in. With Siri, you can say "Call me a cab". With Android, you have to have a cab company programmed into your phone. To equate the two is short sighted, at best, and technically ignorant at worst.</comment></comment></comment>


WordPress 4.0 "Benny" - <AUTHOR> http://wordpress.org/news/2014/09/benny/

<comment><USER2> Just to note, WordPress uses x.y.0 for major releases, so this is no more of a major release than 3.9 or 4.1. It's an awesome release, but don't think of it as "major version 4". :)

Congratulations to the contributors on a fantastic release.

</comment><comment><USER3> Interesting to see WordPress (the software) to evolve better in a new world of competitors like medium, svtble, vix, squarespaces, tumblr etc.

The fine balance between the hosted (Wordpress the SAAS) wordpress.com and the open source version running in thousands of hosting providers still works with no big problems.</comment>


SHA-512 is 1.5x faster than SHA-256 on 64-bit platforms - <AUTHOR> http://crypto.stackexchange.com/questions/26336/sha512-faster-than-sha256 <comment><USER2> Similarly:

        BLAKE2s (32-bit words) - 554 MiB/s
        BLAKE2b (64-bit words) - 890 MiB/s

(source: [https://blake2.net/](https://blake2.net/))

The difference is also clear in pure JavaScript implementations — JS doesn't have native 64-bit integer operations yet, so SHA-512 is slower there:

       SHA-256 - 103.17 MiB/s
       SHA-512 -  34.29 MiB/s

Note that since SHA-512 eats 128-byte blocks, while SHA-256 64-byte blocks, hashing very short strings may be faster with SHA-256 even on 64-bit platforms (the same applies to BLAKE2).

<comment><USER3> > in pure JavaScript implementations

Is not JS cryptography a bad idea?

<comment><USER4> No JS per se. In browser client side crypto though...

<comment><USER5> Harder to defend against timing attacks in JS, which are exactly some of the strongest attacks against modern cryptosystems.

<comment><USER4> Do you mean because of the lack of low level control/bit manipulation, vs C/asm, or something else? I would have guessed it was about the same as any interpreted/jitted higher level language (python/php/c#/java).

</comment></comment></comment></comment></comment><comment><USER6> "... amortized per byte."

SHA-512 is in fact slower per iteration, but uses twice the block size as SHA-256. For hashing e.g. files, the per-byte number is what matters. But when doing hash trees, for example, the per-iteration performance is what matters and SHA-256 wins out there.

</comment><comment><USER7> Yep. Taking advantage of SHA512's superior performance while still producing a 256 bit result is the raison d'être of SHA-512/256.

<comment><USER8> Well... only if you ignore the advantages of immunity to length extension.

</comment></comment><comment><USER9> We use this fact in our ID system. Consider bloom filters... so many different 'hash functions' you get for free out of 64 bytes of hash data.

</comment><comment><USER10> As a side note, there are some cryptocurrency project using half of the sha512, since it's faster and using a 256 bit hash saves spaces.

</comment><comment><USER11> I would be curious to see this compared with SHA-384, and across multiple languages.

<comment><USER12> SHA-384 is exactly the same speed as SHA-512. SHA-512/256 is also the same speed -- it's basically SHA-512 with the output truncated to 256 bits.</comment></comment>


Always take the front-row seat - <AUTHOR> http://shadyacres.tumblr.com/post/14861055398/always-take-the-front-row-seat

<comment><USER2> Good for networking, but also forces you to stay off the smartphone and focus.</comment>


Why the Pricebaba offline model failed, Our learnings and journey - <AUTHOR> http://blog.pricebaba.com/pricebaba-offline-model-failed-learnings-journey <comment><USER2> Any ideas on how the assumptions about consumer/vendor behavior could have been tested sooner?

<comment><USER3> Staying to 1 city and testing different business models was one. Also instead of growing organic traffic and then testing could have been replaced with traffic acquired by ads in interest of time.</comment></comment>


My startup was acquired and I want to reward my NPM dependencies - <AUTHOR> how would you go about it? <comment><USER2> Congrats, maybe start with contacting the maintainers. The publishers of npm packages will have an email

<comment><AUTHOR> thanks. some projects have 20+ collaborators/contributors, you're suggesting i'll let the maintainers distribute funds?</comment></comment>


Great experience with Hacker News Community - <AUTHOR> http://blog.cinecandy.com/post/4057640131/great-experience-with-hacker-news-community

<comment><USER2> Did you manage to find a tech co-founder? If you did, that should be another interesting post.

<comment><AUTHOR> Last thing I know is, he is in talks with some good candidates.</comment></comment>


Steve Blank: Vision versus Hallucination - Founders and Pivots - <AUTHOR> http://steveblank.com/2012/08/27/vision-versus-hallucination-founders-and-pivots/ <comment><USER2> _In searching for product/market fit (the right match between value proposition and customer segment) the product should be the last part you think of changing – not the first_

That is _shocking_. I'm glad Steve said it clearly in those words, because I've certainly been believing the exact opposite.

And with that, I'm now more confused than ever by the whole customer development and lean startup way of doing things.

<comment><USER3> I'm trying to stop the needless and constant bad advice of "lets churn through every possible feature without understanding the entire business model." Doing so is a crutch. Tell me you understand your entire business model and that you thought through the rest of the canvas. Then start iterating the product.

A startup think through all the business model will run rings around those who simply think it's about features.

<comment><USER4> People will change the pieces they understand. That means marketers will change the marketing, engineers will change the features, etc. If I don't understand channels, it makes pivoting to a different channel strategy really difficult.

I like the idea of there being an "order of operations" in what to consider changing, and I like it being based on "what brings money in" and "what keeps us from spending unnecessarily". Definitely something I'll put in my notebook!

<comment><USER2> I think you hit the nail on the head. And that raises the question - is Steve more keen on experimenting with the business model because he is more of a business/management guy than an engineer?

<comment><USER5> Doesn't that presuppose Steve is "more of a business/management guy than an engineer"?

<comment><USER2> I'm assuming that based on his roles in his own startups.

</comment></comment></comment></comment></comment></comment><comment><USER6> With this discussion in mind, a concrete case study is "When should RIM have pivoted?" When should they have invested most of their R&D into a developer friendly ecosystem and committed to a well defined strategy like Samsung (a hardware company), Google (ad platform company) or Apple (hardware and content platform) company? I believe RIM is most similar to Apple, but would die a slow death from hardware development costs without the volume support, so should have pivoted and merged with NOKIA while both were strong to leverage RIM's enterprise software expertise with NOKIA's hardware development/manufacturing scale. The pivot occurs when you do the numbers and realize that to master both hardware and software is a rare feat of skill not worth embarking on unless you believe you can beat Apple at its own game.

</comment><comment><USER7> Great post. Thank you. I think it also speaks to the importance of understanding the market for what you're building before you start. Just because a piece of software solves a problem doesn't mean there is a market for it. Some solutions don't translate into $'s.

</comment><comment><USER8> _Find a Brainstorm Buddy_ _Finally, I suggested that he find someone he respects on his advisory board, who he was comfortable brainstorming with and would tell him when he has a bad idea._

That's good stuff. I think I've been guilty of falling in love with my own ideas at times. :-( I need to start doing more of this and leaning on our advisors more.

<comment><USER9> It is funny you would mention this, I've been on the advisory board for a couple of startups and find the ones who do this, actually bounce things off their advisers, are much more successful than the ones that don't. You brought your advisers on board, perhaps you offered them equity, use them for more than networking to other people!

<comment><USER10> I've acted as an informal advisor for a handful of "startups" (in the broadest sense of the word), generally on the technical side of things, but I have _some_ business success behind me (often more than the 'founders').

Now... this might just be me, but I get asked for input, I give it, with rationalization/reasoning, and I get summarily ignored. Almost every single time. Certainly on any issue of substance. As I say, it may be me, or it may be the people I've chosen to give my time to. I think it's a mix of both, but... they tend to only want their ideas validated, not disproven or shot down. My answers in almost all cases are "it doesn't really matter what I say - or you say - you need to try the idea out, and get feedback from the data and customers (or non customers)". And I'm accused of not believing in an idea, or not having faith in people, or being too negative, or whatever. It's become dishearterning, as I generally wouldn't bother donating my time and talents to parties that I didn't think were worthwhile or had merit in the first place.

Additionally, while my successes have been modest, I've also got a wealth of failures and errors in my past to draw on, and it's truly sad to watch some people make the same mistakes I made 10 years ago. The difference is, I had no mentors or people to guide me 10 years ago - I would have loved to have had that sort of input to save me time, money and sanity. I guess some mistakes you have to make for yourself, perhaps?

<comment><USER8> Awesome, Mike, I'm totally trying to recruit you to the Fogbeam advisory board, as of now. You know I'll listen to you! :-)

<comment><USER10> i'd be honored. ;)

</comment></comment></comment></comment></comment><comment><USER11> I had a startup partner who was like this. It was exhausting. The reason a-pivot-a-week is not the same as a lean startup is because with such rapid pivots there is no way your changes are based on _data_. It's not pivoting; it's just churning.

Steve comes close to saying this, but I think it'd help to take all these ideas and gush about them to someone outside the company. (He suggests an advisor; I'd say a spouse or a friend.) Once you get it out of the system and think about it for a few days, then talk about it with your co- founders/employees.

</comment><comment><USER12> You know, pivoting is smart when you're doing the wrong thing, and it's dumb when you're already on the right path, but the path you're on is long and hard.

For example, if you're building yet another iOS Twitter client or instagram clone, pivoting to something else might make sense now that the big opportunities in that space are gone, but if you're building a new search engine like Duck Duck Go, a pivot a year or two ago into something else would have been a bad decision. The tricky part seems to be knowing when you are pushing towards a big opportunity that is hard to break into or when you are pushing towards a gigantic waste of time.

Pivoting when you're going nowhere is smart, pivoting when something gets hard could be a huge mistake. This reminds me a bit of Seth Godin's ideas about "the dip".

<comment><USER13> And the best way to mitigate the risk of making a bad decision is to track the right metrics and know your market.

</comment></comment><comment><USER14> Halluc-in-ation.

#corrections</comment>


London delivery startup Doddle is closing most of its stores - <AUTHOR> http://uk.businessinsider.com/doddle-closing-stores-laying-off-staff-revenues-click-and-collect-2017-4 <comment> k-mcgrady Sad to see lots of people losing their jobs. I know I'm looking at this with the benefit of hindsight (and this is the first I've heard of Doddle) but I just don't see what the value they were providing here was. The number of times you need to get something physical moved across the city you are in and you can't do it yourself (or just do it digitally) must be very small. The idea of having packages delivered at held by Doddle is you aren't home also seems pointless. The delivery company will leave it with my neighbor or RoyalMail will bring it to the local branch where I can pick it up (or I can have it redelivered on a convenient day, for free, and arranged in minutes on the RoyalMail website). RoyalMail works well, is cheap, and has offices all over London and then there are obviously the tons of other delivery companies (DHL, Hermes, UPS, Yodel etc.). Maybe I'm missing it but can someone explain to me what Doddle was useful for that these other established services are not?</comment>


Internet Explorer gains 1% marketshare in March, gaining 2% over last 3 months - <AUTHOR> http://marketshare.hitslink.com/browser-market-share.aspx?qprid=1&qpcustomb=0

<comment><USER2> I haven't used IE in 4 years (Firefox in 2). I think the only time I actually need to use it is for site testing.</comment>


Classic review of "The Story of Ping" - <AUTHOR> http://www.amazon.com/review/R2VDKZ4X1F992Q/ref=cm_cr_dp_cmt?ie=UTF8&ASIN=0448421658&nodeID=283155

<comment><USER2> It appears that the original source is here <http://ftp.arl.mil/~mike/ping.html> (see "Customer Comments"), and the Amazon reviewer reproduced it without attribution.

</comment><comment><USER3> It's too bad this didn't make it into the 4.4BSD Programmer's Supplementary Documents. :/

</comment><comment><USER4> Ah... so what is the plot in The Story of Ping?

<comment><AUTHOR> The Story of Ping is a classic children's story from the 30s. When people had a very different attitude about, for instance, corporal punishment.

The summary is that Ping is a duck from a family where the last duck home every night gets beaten. Ping is going to be the last duck one night, so decides to run away. He has a series of scary adventures, learns that home is best of all, and is happy to go home the next day, even with the beatings.

<comment><USER5> I misread "beaten" as "eaten" the first time, and was shocked at the "different attitude about corporal punishment", then even further shocked when I read that he was happy to go home, until I got to the final word...

<comment><USER6> Yeah, what you describe sounds more like _The Story of Nineteen Eighty-Four_.

Which, though terrifying, could also be pretty funny in the right hands. ( _Terry Gilliam_ )</comment></comment></comment></comment>


Announcement on planned withdrawal from exodus - <AUTHOR> https://blog.ethereum.org/2014/08/08/announcement-on-planned-exodus-withdrawal/

<comment><USER2> I like this transparency. I still have doubts about whether this project will succeed but at least they are keeping their investors informed.

While it smells of vapourware these kinds of actions will help to dull those fears. It was no doubt done exactly for this reason.</comment>


Seo optimization: How to optimize your site for seo - <AUTHOR> http://www.jamesken.club/2017/04/seo-optimization-how-to-optimize-your.html <comment><USER2> SEO = Search Engine Optimization.

Therefore, your title reads:

Search Engine Optimization optimization : How to optimize your site for Search Engine Optimization</comment>


What if we're living in a computer simulation? - <AUTHOR> https://www.theguardian.com/technology/2017/apr/22/what-if-were-living-in-a-computer-simulation-the-matrix-elon-musk <comment><USER2> What if common cosmological subjects of inquiry of bong-inspired geeky 18-year olds were to be published in major outlets?

<comment><USER3> The final sections "Five other mind-bending theories" is very bad, but at least it's short and clearly bad.

It mix some theories that are weird but with a lot of evidence, interesting theories that are dubious, and crazy ideas that are borderline crackpotology. Each one with the same mix of credulous/weird tone and in each one uses "Evidence?".</comment></comment>


Americans are suckers who have themselves to blame for crappy broadband - <AUTHOR> http://venturebeat.com/2014/11/12/what-france-has-taught-me-americans-are-suckers-who-have-themselves-to-blame-for-crappy-broadband/

<comment><USER2> American free market baby. No regulations and allowing the market to determine the price. The market is an oligopoly btw so prices are driven up just like oil is. We are the only economic power that is not a type of social democracy, meaning private companies provide all services, including health care, energy, education and a myriad of other industries that would produce more at a lower ccost if the government took it over. But here in America we are led to believe competition in all markets is the great equalizer. People that say this dont include vertical and horizontal price fixing, legal monopolies and other waste economic practices. Will we ever learn? Prolly not. Democrat are pro-business as much as the GOP and the American electorate is just plain dumb. Easily fooled by ads or FUD to distrust any kind of populist movement as movement into Sharia law. Pissed off at Corporations America? Too bad you voted the jerks in that made America into an Oligarchy which means a small group of people have control of the country. Those peole are the wealthy. but year in and year out you vote to give tax breaks to these "job creators" because you fear you might lose your job. So suck up that American democracy people, you paid for it.</comment>


Falling in Love for the First Time - <AUTHOR> http://www.jamesaltucher.com/2012/02/falling-in-love-for-the-first-time/

<comment><USER2> Nice story! I can sense the strong optimism of the writer. I agree that everything happening is good. Even bad things happened, it is still good because it has a connection to a future occurrence to happen which is good. We may not understand it today, but in the future, we will realize that if the bad thing didn't happened, our good opportunity or luck will not come to us.</comment>


JavaScript eval: direct vs. indirect call - <AUTHOR> http://blog.klipse.tech/javascript/2016/06/20/js-eval-secrets.html <comment><AUTHOR> Every javascript developer knows that eval is evil.

But eval is really powerful and from a theoretical perspective eval is very interesting.

For instance, did you ever ask yourself in what context does eval run?

This article features live & interactive code snippets.

</comment><comment><USER2> example 1: yes, ok

example 2: umm ok

example 3: WAT

<comment><AUTHOR> In javascript (1, eval) returns eval. But this is indirect. This is why `eval` runs in the outer scope.

The whole point of this article is to demonstrate how weird is `eval`.</comment></comment>


T-Mobile CEO: "Stop the bullshit" - <AUTHOR> http://www.theverge.com/2013/3/26/4148836/stop-bullshit-says-tmobile-ceo-john-legere

<comment><USER2> The biggest "bullshit" is that I have to pay extra to tether.</comment>


The Next Model for Voice – How Platforms and Builders Can Work Together - <AUTHOR> https://bespoken.io/blog/the-next-model-for-voice/ <comment><USER2> Good article, and I'm not saying that solely because it has a callout to Bixby, which I think is doing more interesting stuff than it's often given credit for (full disclosure: I work on Bixby's documentation).

I think, though, the article dances around the real elephant in the room rather than addressing it head-on: the lack of an open, non-proprietary protocol coordinating IoT controllers and devices. Because my iPhone uses Bluetooth, it can "speak" to my car, my A/V receiver, my speaker, and my headphones; they don't have to be "iPhone-ready" to work. If I bought a Galaxy S11 next year, all my Bluetooth products would still work. It's all Bluetooth. That should be essentially the same for IoT devices: if I buy a thermostat or a wireless lighting fixture, it shouldn't matter whether I want to control it with Alexa, Siri, Bixby, or even something that isn't a voice assistant at all. Yes, I understand the market reasons why this hasn't happened, but I suspect it's a necessary step for the envisioned IoT future to really take off.

<comment><USER3> Well said.

I'm just starting to get some IoT devices -- mostly because that is the only way certain things I want come -- but I would really rather have localized control of these devices in my LAN than have them go out to the internet. (If my house is cut off from the 'net, but there is still power, I should be able to turn my light on and off! Extrapolating to a world where everyone has IoT devices and they work like today, it is more than a little disturbing to me that a third party could turn off people's HVACs, plunge them into darkness, and taunt them over their speakers).

Devices in my home should be under my control. No one else should be involved. I grant the expedient part where these things all talk to the internet, so that they are easy to use, but there is every reason to believe that I should be able to control it on my own network, without it talking to the internet, and without having to resort to hacking my own hardware.</comment></comment>


Show HN: Hypewatching – crowdsourced, geolocated trends around the world - <AUTHOR> http://www.hypewatching.com <comment><USER2> I like the idea but was expecting it to pull data from various sources like Twitter instead of just showing what people enter into it.

<comment><USER3> Same here, entered Germany and didn't get much results

<comment><USER4> Ebenso.

</comment></comment></comment><comment><USER5> Interesting, but what is the incentive to contribute?

<comment><AUTHOR> Currently not much, that will be one of the challenges. Later on – gamification, how well are you at predicting upcoming trends in certain cities/categories.

<comment><USER6> Would over-incentivising lead to more scatter-gun contribution and make the real trends hard to surface?

<comment><AUTHOR> You'd probably have to limit the allowed number of "guesses" per day/week. But even then there's a risk of people trying to game the system (creating multiple accounts etc)

</comment></comment></comment></comment><comment><USER7> Deez nuts is trending big in the US

<comment><USER7> Now it's big in Ireland

<comment><USER8> Deez Nuts are big Worldwide

</comment></comment></comment><comment><USER9> Neat - I'll need to play with it some more. Any plans to auto-import data so you don't need to rely on people inputing 'what' , 'where' , 'why' ? eg. recent facebook/twitter/browsing history.

What's the stack look like?

<comment><AUTHOR> Thanks :) I feel like it will only become useful if lots of people start using it. For example now local trends show up on the "worldwide" page, which won't happen anymore once there's enough input.

I'm thinking about how to automate this input process but currently I don't see an easy way of doing it. That info is not freely available anywhere.

Stack is Python/Flask/Javascript/JQuery/MySQL/SQLAlchemy/Bootstrap

</comment></comment><comment><USER10> Nice straightforward UX. My first thought was to search for some trends about weather (everyone's talking about how hot it's going to be in southern california today) - but I didn't see that category.

So I'd suggest to consider including a section about weather/natural phenomena.

</comment><comment><USER11> Cool concept. Do you plan to ingest data from anywhere other than manual user input?

<comment><AUTHOR> Def thinking about it but not sure how. Maybe Twitter API. Google trends does not have a public API I believe.

Other than that I'm planning to reward people based on their predictions of what could become a trend. The earlier they are and the bigger the trend the more points they get. Then votes from these people would weigh more in the algorithm which could potentially increase the accuracy and also incentivise people to input data :)

<comment> wu-ikkyu >Maybe Twitter API

Perhaps it has changed since I used it last, but Twitter's API will give you a very limited amount of data unless you're prepared to fork over the big bucks.

<comment><AUTHOR> true, I completely forgot about that. Twitter is out then, maybe Reddit API as someone else suggested :) I'll look into it.

</comment></comment></comment></comment><comment><USER12> Seems interesting, nice interface. But why would I use this then google trends?

</comment><comment><USER13> Aaaand it's down

<comment><AUTHOR> back up! Sorry

<comment><USER13> Yaaaaay !

</comment></comment></comment><comment><USER8> This is cool, I added some hot celebs because I am shallow.

It is quite open to abuse though and how can this be addressed I wonder? (There is a url in the celebs).

Thanks for sharing.

<comment><AUTHOR> For now, manual moderation against the trolls, recaptcha against bots. I realise it's quite open to abuse right now.

<comment><USER8> A pity it has to be that way.

<comment><USER14> Just paywall it, or require a Facebook account to sign in first. That way you get the exact audience you want. ;)

</comment></comment></comment></comment><comment><USER15> Seems to already be filling up with jokes and memes.

</comment><comment><USER16> Great start! I like the heatmap.</comment>


Reid Hoffman Blitzscaling – Class 1 Notes Essay - <AUTHOR> https://medium.com/@mccannatron/reid-hoffman-john-lilly-and-allen-blue-s-cs183c-technology-enabled-blitzscaling-class-1-notes-a93b119a51b9 <comment><USER2> Thanks for posting my notes! Happy to answer any questions if anyone has any.

Also the recorded video of the class will be posted soon. Will share link once I get it.

<comment><USER3> Thank you so much for sharing this. I was avoiding some work for the past week but that video really turned around my perspective and perhaps my future now.

Cheers

</comment></comment><comment> Alder- I enjoy the notes, though its definitely targeted specifically at software startups. How applicable would you say this course is to hardware?

<comment><USER3> I'm not huge in the computer business but there are strong takeaways in this first video as far as a C-Level perspectives. Hopefully the future classes will be as helpful.</comment></comment>


Grazing the Net (1994) - <AUTHOR> http://www.fno.org/grazing1.html <comment><USER2> I am intrigued by the copyright notice: "A single copy may be downloaded and read but not printed or distributed in any manner without express written permission."

I'm not sure what that even means for a document these days. I can't remember the last time I printed something other than an official document (e.g. passport application) so I'm safe about that. Linking to it must be fine; that's no different from telling a friend (various European publishers notwithstanding). But downloading it makes all sorts of temporary copies these days; does this mean I can't open two tabs on the same document? I have a proxy for all http{,s} connections; it and my browser have caches so have I violated this notice?

<comment><USER3> I guess it's a heavy-handed way of discouraging third-party distribution as a printed or electronic book. Legalese is bad for transparency, but oversimplification can be harmful too.</comment></comment>


Sex in Space - <AUTHOR> https://en.wikipedia.org/wiki/Sex_in_space <comment><USER2> One problem that I envision with sex in space is space adaptation syndrome, i.e. space sickness. I imagine there are few things that spoil the mood faster that vomiting on your partner.

On the other hand, I believe that sex in reduced gravity (e.g. on the moon or Mars) would have significant advantages. Reduced gravity would mean less effort required to keep ones weight off of ones partner, and could make some positions that are difficult in one gravity, easier.

<comment><USER3> Gravity actually makes it easier to go back and forth, no?

</comment></comment><comment><USER4> The idea that they should stay on a fraternal basis was big at NASA: out of the 1,348 pages of the tome NASA had compiled called _Human Relations in Transit to Mars_ , only a single page was devoted to the subject of sex; and that page advised against it.[1]

[1] Red Mars, Kim Stanley Robinson

</comment><comment> 0-_-0 Come on, if it's possible under water [1] it must be possible in zero gravity.

[1] pornhub.com</comment>


Ask HN: Alternatives to Productized Consulting - <AUTHOR>

Brennan Dunn has an excellent post [1] today on a productized consulting offering (high value services)
The example given - and that of many on his Freelancer's Guild forum - is they're selling revenue enhancing solutions: remarketing, landing page optimisation, CRO. All things that have a direct "Makes you more money" link once you get people to see the benefit.
Productized Consulting seems to work very well at this: a stated ROI (how is that guaranteed for each client?), a cost, and more money in return.
For people like myself who have no skill in offering services like these, who write like 8 year olds and create A/B tests that are solidly inconclusive - what alternatives to productized consulting are there?
1. http://doubleyourfreelancing.com/guide-to-selling-ecommerce-clients/ <comment><USER2> Find out what you're good at and can package up. And if you're not good at anything, practice, I guess.

</comment><comment><USER3> I have two questions for you:

a) What do you have going for you? b) Other than "make money," what do want to do? What are your interests?

If you can answer those two questions here, you might get more and better feedback than what is currently happening.</comment>


Regex Cheatsheet – I Hate Regex - <AUTHOR> https://ihateregex.io/expr <comment><USER2> Thanks for sharing! Maker here!

<comment><USER3> I especially love that it explains _why_ each regex snippet works. Super useful reference - thanks for making it.</comment></comment>


NPM user nj48 steals "liberated" module names - <AUTHOR> https://www.npmjs.com/~nj48 <comment><AUTHOR> I wrote a small paragraph about the warning [1] and how the new modules look like.

[1] : [http://www.drinchev.com/blog/alert-npm-modules- hijacked/](http://www.drinchev.com/blog/alert-npm-modules-hijacked/)</comment>


A PHP syntax highlighting engine that rivals any full blown editor - <AUTHOR> https://github.com/brandonwamboldt/PHPLighter

<comment><USER2> This is great, should be useful if it works as described, thanks for sharing it!</comment>


I Love Pair-Programming - <AUTHOR> http://www.nomachetejuggling.com/2009/02/21/i-love-pair-programming/

<comment><USER2> Aside from physical, eyesight, accessibility, noise, etc. problems, I pretty much can't stand pair programmming. It's good for social bonding and instructing noobs, but my work is hardly up to snuff.

I can't "navigate" someone moderately competent because it takes me forever to stuff a pile of someone else's code into my head. I have to keep scrolling here and looking there, which I can't do without a separate keyboard and monitor. I want to navigate from an extra computer so I can flip through the code, look up docs, and so on. But, by gum, that's not "pair programming." Hence, the only thing I'm good for as a navigator is catching syntax and spelling errors, which is something an appropriate editor or IDE can do.

And I can't accomplish much while I'm "driving" because either I have to spend all my time explaining everything to the noob, or I'm not allowed time to think. If I stare into space or scroll around a bit, the navigator thinks I'm stuck and feels compelled to chatter away with advice or questions or something. And unlike the author's "Progammer Man," the code I produce solo in the Zone is better than the code I produce in a pair out of the Zone. The best "navigator" is someone who watches awhile then gives up and "pairs" with someone else! No, I take that back. Apoorva is a decent navigator. He mostly just sits there and makes a few pleasant quips, occasionally raising an insightful question. I guess I'm very, very finicky about navigators.

<comment><USER3> Seems like your main criticism revolves around being chained to a newbie as half of the pair - I'm not sure pair programming is designed to work well in that setup. It's pair _programming_ , not pair _mentoring_ , and if there's a huge disparity in skill level, then it'll feel like a drag. Yes there's an amount of mentoring in good pairs because everyone's at least slightly better in at least one different area than their partner, but similar enough in skill sets that you can build upon the differences when needed, rather than constantly bringing the partner up to par.

The places I've seen it work seamlessly has been where it averages out the work to a consistent level, whether all intermediate coders that no longer make rookie mistakes or all advanced ones that no longer slow down for newbie speed bumps. I've even seen pairs attack projects in programming languages they've never worked with before. I was brought in to Pivotal for an afternoon or two to give Flex/actionscripting advice to the programmers working on a friend's prototype site and they didn't need my help at all, I was happy to see that they knocked it out just fine.

On a side note, I just tried out pair designing this week (instead of programming) and it was a really interesting experience. You could see that we each had different focus (me = interaction designer, partner = visual designer) and that helped compliment our work rather than act as a source of friction. And not to get into a toolkit debate but we also shared similar philosophies about hating Photoshop and long design cycles, loving Fireworks and quick clickable prototypes, etc.

<comment><USER4> Pair designing/programming/whatever seems to work best when the pair has complimentary skill sets rather than different competency levels of the same skill set. We have been "pair designing" for a while with much success.

<comment><USER3> Who's "we"? I'd like to collect stories of pair designing in action.

</comment></comment></comment></comment><comment><USER5> Does it make you more productive or do you just find it more fun?

I suspect companies that institute pair programming because employees are less likely to goof off when they have another set of eyes on them. I have a hard time believing that it actually makes motivated people more productive.

<comment><USER6> When our manager discovered us pairing, we had to defend the practice against the objection that it would surely halve our productivity.

I think those of us who initiated pairing on our team were the _most_ motivated programmers, and those who wound up pairing regularly were likewise the most enthusiastic about the project and about professional development too. I'll admit that it's hard to separate causes and effects here, but I do believe that on our project, pairing was more of an effect of our desire to improve our productivity.

<comment><USER5> Yes but the question is did it increase your productivity? If so, then why do you think it did?

<comment><USER7> Nobody knows a good way to measure this and you know it. Just because we can't measure it doesn't mean it is not real (I'm not claiming either way).

<comment><USER6> Right.

I was tempted to say that our pace was somewhat reduced (not to 50%), and our code was greatly improved, because that was our impression. We did not adjust old estimates to account in any way for pairing, and we saw a trend toward improvement in |actual - estimated| costs.

Then again, every feature/bug and programmer is different. We didn't have many old estimates for unfinished work. We didn't consciously account for pairing in new estimates, but we didn't have any sort of experimental rigor. The non- pairing programmers definitely wrote worse code, but they were the weaker programmers in the first place. Maybe our improved estimation accuracy was because our product was maturing.

There are some reviewed papers covering experiments on pairing. Laurie Williams [<http://collaboration.csc.ncsu.edu/laurie/>] is an author of many of them. Here's one not by her: <http://portal.acm.org/citation.cfm?doid=1145293>.

</comment></comment></comment></comment></comment><comment><USER8> I pair programmed with a friend all the way through my graphics class. It worked out really well because my linear algebra was really strong and his C powers were unstoppable. We easily finished in half the time of other groups. I'll provide more detail when I'm not on my ipod.

</comment><comment><USER9> The vi analogy was really stupid. If you know Vim(not Vi) well enough, you probably won't need an IDE to be effective(unless you are using an IDE dependant language, which is bad). And yes, your IDE is bloated.

<comment><USER10> I don't want to start an editor war, but...

If you know your IDE well enough, you probably won't need a powerful text editor to be effective (unless you are using a language that is not toolable, which is bad). And yes, your powerful text editor is feature poor.

You like what you like. He likes what he likes. You are in a mutually recursive Bulb paradox.

This, of course, assumes your IDE doesn't suck. Most do. If your IDE isn't powered by JetBrains, chances are it actually does suck.

<comment><USER11> If my text-editor has tight unix integration, smart-completion, a repl, and good build integration... what am I missing out on?

<comment><USER12> You are "missing out" on "code generation".

Apparently some languages have so much verbose boilerplate that the only way to be productive in such a language is to pick the boilerplate out of a menu when you need it. Or so the IDE folks say. (Other problems include insane organizational schemes that require the computer to move code between specifically-named files in order for your app to run.)

Anyway, the IDE thing is a classic example of a "local maximum". The language made a bunch of bad decisions, and the only to get productive again was to invent an incredibly complex tool to abstract away some insanity. Sure, it's kind of good. But if you threw both away and started over, you'd get a better maximum with less complexity. The word "blub" comes to mind.

So in the end, you are exactly right -- if you are using a reasonable programming language. If you are using Java, you need all the help you can get. (And yes, I mean that in two ways.)

<comment><USER10> Personally, as a heavy IDE user, I practically never use any code generation (unless you count token completion, but text editors do that too). Additionally, I don't really code much Java (haven't in years). Most of the time I use Visual Studio and Resharper for C# 3.0. C# 3.0 has a lot of advanced functional features and the code that you write really doesn't have all that much boilerplate compared to Java. However, in the real world, people don't always get to pick their programming language. But let's say you do: Do you consider Ruby to be an unreasonable programming language?

For me, the three biggest IDE feature areas I love are navigation, refactoring, and code analysis.

Navigation: Jump to type or method (super and subclasses or by name), find usages (filtering by callers or assignments), and especially "go to definition". All things that help me spend more time reading code and less time reading code to find the code I want to read.

Refactoring: the power to rename an identifier across my entire project in half of a second is sorely missed when I work on Python stuff. Never underestimate the productivity gains of one keystroke method extraction or safely safely rearranging parameters. Make those changes you are afraid to make with confidence and without manually fixing in a long list of text search results.

Code analysis: finds compile and runtime errors before ever even compiling. Little colored squiggles under my code have saved me so much time, it is not even funny. You'd be surprised at the level of support these things can offer. Resharper, for example, lets me know when I use method overloads that don't pass an optional culture parameter. My code never has a localization bug with list separators such as commas and periods because Resharper warns me when I am not specific about what the correct behavior is.

<comment><USER13> For navigation, at least, see <http://ctags.sourceforge.net/>

</comment></comment></comment></comment></comment></comment><comment><USER14> I've learned programming this way with a good friend, even 28 years later we're still in touch.

It's one of those things where you can see how much it matters that you can rely on each other to catch stuff before it becomes a dead end, when you're programming on your own it's very easy to waste some time every now and then, and to have to backtrack later.

If you can't actually program pair wise I'd certainly recommend that you go over your design with somebody competent before you commit to code, you'll be surprised how much time that will save in the long run.

</comment><comment><USER15> My theory on pair programming: a good pair is _more_ productive than two individuals on hard tasks, and _less_ productive on easy tasks.

Basically, when you pair, you get one better programmer instead of two lesser programmers. Think about the old 10x/100x developer question ([http://c2.com/cgi/wiki?DevelopersWithHighProductivityTenxHun...](http://c2.com/cgi/wiki?DevelopersWithHighProductivityTenxHundredxThousandx)). In reality, it isn't that simple. A 10x programmer won't write simple code (Hello World) 10x faster. On the other side, a mediocre programmer may be unable to do some of the things that a better programmer can do, no matter how much time you give them. So it's silly to compare productivity along a linear scale like this.

Pairing is similar. It's meaningless to say that a pair 2x as productive as 2 developers, or 3x, or 1.5x, because it depends on the task. They might work far faster at a complex problem, but no faster one programmer at an easy one.

That's why my preference is to pair on anything that is moderately challenging (or harder), and to work separately on the easy stuff.

</comment><comment><USER11> I really think that tangentially attacking the vi(m) strawman at the end really hurt your credibility and focus.

<comment><USER12> Maybe. It is just an under-education type of thing. If all you've ever seen is Java and the IDE world, it's hard to imagine anything else. "blub" is the usual word.

(I could rant on and on about this, but I won't. Basically, if you haven't programmed seriously in a dynamic language, a functional language, Smalltalk with Squeak, Lisp with Emacs/SLIME, and Java or C# with an IDE, any commentary you have on programming languages and tools is worthless. You haven't experienced enough yet.)

</comment></comment><comment><USER16> Interesting analysis. Have any of you pair programmed? Did you find it as useful as the author of this article did?

<comment><USER10> I also love pair programming.

It usually begins with about 5 minutes of joking around and wasting time, but it takes only a minute or two to achieve flow. Individual programming can take 30 minutes or more to achieve flow. Once in flow, it is much harder to come out of it because you aren't tempted to browse to Hacker News. Also, no one will stick their head in your office and bother you because it looks like you are in a meeting.

Partners are incredibly helpful spotting errors and act as an extra cache for all the little details you need to keep track of. Usually the person not typing has a lot more capacity for those details because they don't need to spend the energy operating their editor and manipulating code (no matter how good you get at it, it still requires some brain power: a limited resource).

Also, when all is said and done, you now have TWO experts on a topic. Redundancy is a good thing.

</comment></comment><comment><USER17> Having another programmer around to talk me through a gnarly bit of code is often enormously helpful.

This tends to happen organically.

When it comes down to the heads-down time necessary to plow through some changes, a second pair of eyes hovering over my shoulder becomes a distraction and a productivity killer.

There exist shops where the mantra is "Pair Programming = Good" and you are encouraged (and socially pressured) to do most or all of your coding at a single screen with someone else. I tend to do not so well in these.

</comment><comment><USER18> Personally, I love pair programming because I feel like i'm learning more faster. Some of the more experienced engineers I've worked with passes some insight and knowledge, which has been a huge benefit to me.

</comment><comment><USER19> I never really pair programmed but I'm going to give a try :P</comment>


What designing software for product teams taught us about collaboration - <AUTHOR> https://medium.com/clew/what-designing-software-for-product-teams-taught-us-about-building-great-teams-87107fbda509 <comment><USER2> Maybe I'm missing something, but if you only talk to "A*" teams, aren't you running the risk of confirmation bias? Maybe there are groups/companies out there doing the things you recommend, but not succeeding. Did you look for any of those?

<comment><AUTHOR> Not saying it's definitive. It's just what we learned from a bunch of product teams that owned a single product or scoped our feature-set. Thanks for bringing up the point though, I made it clearer on the post.</comment></comment>


How We Manage the Android Client App State - <AUTHOR> http://blog.getprismatic.com/android-state-saving/

<comment><USER2> well written, very informative and helpful.</comment>


Show HN: Thredded Forums Engine - <AUTHOR> https://thredded.org/?hn <comment><AUTHOR> We wrote the Thredded forums engine focusing on these things:

1\. Client-side performance. Little JavaScript and lean CSS. Even the KaTeX math plugin renders math server-side.

2\. Clean but discoverable UI. The focus is content. Not a single dropdown nor a hamburger menu.

3\. Extensible, but critical features are built-in to provide a foundation for plugins. Features such as notifications, moderation, permissions system, and full text search.

4\. Pleasant on mobile for both browsing and content creation. This means a textarea instead of a rich text editor (by default).

5\. Everything degrades gracefully when JavaScript is off. For example, preview-as-you-type becomes a "Preview" button if JavaScript is disabled.

6\. The relational database for everything, including full text search. Data integrity is easy, no out-of-sync elasticsearch databases here. Runs on Postgres, MySQL, and SQLite.

Boring technology => easy to deploy and run in production.

The codebase is written in Ruby, has slowly developed over the years, and has extensive test coverage.

I am very curious to hear what you think, and whether you've ever felt a need for a forum like that.

<comment><USER2> > _1\. Client-side performance. Little JavaScript and lean CSS. Even the KaTeX > math plugin renders math server-side._

> _5\. Everything degrades gracefully when JavaScript is off. For example, > preview-as-you-type becomes a "Preview" button if JavaScript is disabled._

Especially those sound great!

Some feedback from poking around the demo a bit (on Desktop):

 __* It has _a lot_ of whitespace, to the point that it forces a lot of scrolling. The "front page" with the list of existing boards is particularly bad, with only 4 cards fitting on my 1080p screen, where a typical phpBB fits 10 or more. And the layout of the cards is still quite busy, with 5 text styles close to each other. Your demo hasn't got any posts with long texts, so it is hard to judge how big an issue this is in the threads themselves. Still, on a desktop you have the space to the side, maybe put the name besides the post instead of on top?

 __* A lot of elements have dynamic positions (e.g. the date, the author) which makes it quite hard to quickly scan the overviews for them.

 __* Image support? Something a lot of forums have issues with, which leads to various hacks, images not visible to visitors, and often broken images from external hosts. This is an area where you easily can be better than many existing boards.

<comment><AUTHOR> Thank you for your feedback!

> _It has a lot of whitespace [...]_

Whitespace can be reduced across the board by adjusting a variable:

[https://github.com/thredded/thredded/blob/1a60bcc7618270afeb...](https://github.com/thredded/thredded/blob/1a60bcc7618270afebdbdb9557b3e2df563399fe/app/assets/stylesheets/thredded/base/_variables.scss#L15)

For the homepage, I'm going to try removing the vertical spacing between the cards.

> _on a desktop [...] maybe put the name besides the post instead of on top_

Definitely going to try that!

> _A lot of elements have dynamic positions (e.g. the date, the author) which > makes it quite hard to quickly scan the overviews for them._

I didn't realize there is a use-case for scanning through these. No good ideas yet on how to improve this.

> _Image support?_

By default only externally referenced images are supported, but integrating with third-party uploading services is easy. For example, here is how to do it with Shubox.io:

[https://shubox.io/blog/2016/08/05/how-thredded-uses- shubox](https://shubox.io/blog/2016/08/05/how-thredded-uses-shubox)</comment></comment></comment>


Data: Best programming talent in the world is not in California - <AUTHOR> http://venturebeat.com/2015/04/05/data-best-programming-talent-in-the-world-is-not-in-california/

<comment><USER2> Bad article premise. Most likely, the very best coders in the US don't waste time on stackoverflow, rather they are actually working on their projects for pay.

<comment><AUTHOR> That's how I read it as well.</comment></comment>


[Ask HN] Good book about functional programming? - <AUTHOR>

Hello all.<p>What would you recommend me to read if I want to dive deep into the functional programming paradigm? There's plenty of this kind of material for Object Oriented programming (of course, given the hype.), but i dunno about FP. <comment><USER3> Maybe it's too obvious but someone's got to mention Structure and Interpretation of Computer Programs (aka SICP). It's not strictly about functional programming, but it starts with functional programming and then discusses the implications of adding mutable state. I think it's a good idea to get that under your belt before diving into Haskell where it's already taken as a foregone conclusion that the negatives of mutable state outweigh the benefits.

<http://mitpress.mit.edu/sicp/>

</comment><comment><USER4> They're both designed to teach specific languages, but I found both _Real World Haskell_ and _Programming Erlang_ conveyed a lot about practical functional programming. You can read RWH for free online (but it seems to be down as I type this): <http://book.realworldhaskell.org/>

<comment><USER5> I also found Armstrong's Erlang book excellent for an intro to functional programming (but it's not particularly advanced). I got the pdf-only version, which is a bit cheaper.

The obvious recommendation for fp (functional programming) on HN is SICP (Structure and Interpretation of Computer Programs). The full text is free online <http://mitpress.mit.edu/sicp/>

_Everyone_ raves about SICP, from top to bottom of the fp world.

However, some objections: 1. it purports to be an introduction to programming, but it assumes a lot of background knowledge (so that's fine if you have the background, but the inconsistency irritates my inner pedant). 2. the authors don't use it themselves anymore in their programming course (they switched to python, for variously debated reasons).

<comment><USER6> _it assumes a lot of background knowledge_

What kind of background knowledge is required?

<comment><USER5> Some examples from chapter one: the concept of local variables (used but not explained); the conventional meaning of recursion (when they argue that TCO only applies to iteration despite having the form of recursion); and (and IIRC) approaches to mathematical proofs that it argues against (there are also some mathematical examples, like implementing Newtons method, but I think that's OK).

There's also a bit of imagery that only makes sense if you already know what it means. As someone who's taught at Uni, I think that's pretty poor in an "introductory textbook". However, the simple truth is that it isn't an introductory textbook at all, but something more advanced and arcane.

<comment><USER6> Thanks for the response. So, what would be a good book _before_ SICP?

<comment><USER5> Are you asking about fp, or programming books in general?

One approach I took was to go to the (University) library, and find the section on the programming topic of interest. Then grab a few books, and read a paragraph at random. Then borrow (or read there) the one that appeals to you - the writing style that makes sense to you, that addresses the issues that come to you as you read, that communicates to _you_. You can do the same at Borders, but the books are more vocational and less textbooky.

If some particular part is unclear, you can compare it with other books - <USER2> now have a resource.

Every book has something to offer. The biggest factor is what you put into it. Therefore, it's more important to pick a book that you like rather than the "best" one. Otherwise, you can get into a kind of McCarthyism where there are good books and bad books, instead of each book having strengths and weaknesses.

To put this in perspective, I personally really liked "Java in a Nutshell", because Flanagan's writing is brilliant. It's very succinct, yet covers all the cases, has a joie de vivre about it, and yet is so transparent it's easy to not notice it (Douglas Adam's prose also has this quality). Revealingly, Flanagan loves writing; and is very well read himself. Most writers of programming books are not. Now, to me, being well-written is very pleasing; but I can imagine it not mattering at all to the next programmer.

</comment></comment></comment></comment></comment></comment><comment><USER7> Larry C. Paulson - "ML for the working programmer" will have you thinking for years to come. It is meant for people who do know a programming language, but none of those an FP-lang.

It covers Standard ML, but you will find that the ideas of FP are easy to move around from language to language.

</comment><comment><USER8> Bird and Wadler, Introduction to Functional Programming is a classic. They have a more recent book, Introduction to Functional Programming in Haskell, which I haven't seen.</comment>


Show HN: Our email productivity tool - <AUTHOR> http://handyelephant.com/

<comment><AUTHOR> This is what I've been building at the startup I joined a few week ago. Thanks to all you guys for pushing me towards startups and we'd appreciate any comments on our MVP for improving email!</comment>