Ask HN: What are you working on? - <AUTHOR> In the thread about Oracle rdtsc observed that 'the crowd who picks and buys Oracle doens't hang out on HN'.
https://news.ycombinator.com/item?id=9703603
That's most likely true, but I suspect that we do have some people from that crowd and from plenty of other interesting niches in IT as well as well as lots of non-IT people that somehow are attracted to HN.
So hence my question, What are you working on?
What field would you consider your niche and how is it working out for you? <comment><USER3> LIMS - Laboratory Information Management Systems.

Definitely Niche. I've been doing it for about 15 years and I keep seeing the same consultants over and over again.

Here's the deal. Most manufacturing companies (think Big Pharma, Petrochemical, Chemical, Widget manufacturing, anything really) measure quality. Those quality measurements are probably done in a laboratory. Every laboratory generates data. All that data needs to be managed well so that the laboratory can maintain its accredidation.

Basically, LIMS systems manage samples and lab result data. In addition, they probably integrate with Instruments and instrument software to automate some of that data entry.

Other industries besides manufacturing are Govt (waste and wastewater treatment labs), Third-party labs (labs that do testing for other companies), Healthcare (clinical labs), Forensic Labs, and more.

Bottom line, there are tons of laboratories and they all need to manage their data.

The players in this space are downright stuck in the last decade. There is so much opportunity here for a few new players to come in and make a step-change.

I'm currently working on creating a modern LIMS to manage Laboratory data.

<comment><USER4> That's awesome. Would love to know more. I was (only tangentially, really it was my manager) involved with (one of many) LIMS evaluations at CSIRO. I'm under the impression that "Generic" LIMS have awful track records in Australia at universities and research orgs like CSIRO: despite custom software projects also having poor cost/performance outcomes generally, historically it seems there aren't any great examples of LIMS aimed at diverse multidisciplinary research environments which have delivered better outcomes at less cost than even the most horribly expensive over-budget bespoke systems places like this churn out. There is a trail of train wrecks that is failed LIMS projects in this sector, largely from manufacturing/forensics sector thinking their LIMS fits all...

The most inspiring thing I saw was work on automated high-throughput materials discovery (I believe the examples at the time were polymers). Instrument operation, experiment design and results capture was done with OWL/RDF... And off it goes: repeatable results where the software drives experiment parameters until a goal or properties are reached. Semantic web tech has a lot of failed promises to answer for but those guys really seemed to make this stuff sing. Seeing what they're modeling/capturing, graph data models might not be such a bad fit, after seeing the contortions we went through in genetic studies trying to capture every facet of every piece of data and its provenance and the provenance of its methods and materials and specimens and specimen preparation and specimen identification and splitting and cloning and so on ad nauseum

Better stop ranting. I do software defined radio at dayjob and some silly osint graph-db driven thing I'm playing with at home to help security audit all packages, binaries and hopefully one day in-memory processes in linux/containers :)

<comment><USER3> You are totally on point about the one-size-fits LIMS for QC Labs not working in the research lab. It's my observation that research labs need a solution that is much more dynamic than the traditional LIMS.

I like your comments regarding OWL/RDF. I will have to look into that. I know of a few Chemical / Polymer mfg. companies who are still using their homegrown LIMS-slash-PLM systems to manage new materials research.

The thing I love about this field the most is working along side very intelligent chemists and engineers and helping them automate their labs. The appreciation factor is through the roof when you can remove manual data entry and help them advance their laboratory throughput.

</comment></comment></comment><comment><USER5> A medical device startup, based on a technology platform I invented in grad school. The startup part is what started me hanging out on HN, but I've found that there is very little overlap between what I'm trying to do and what startups on HN do. Still, things are interesting enough here that I keep checking in.

edit: I missed the "how's it working out?" part.

Not great. Cash starved from day 1. Funding for medical devices is quite, quite different than software (i.e., bad but getting better recently). We don't fit the model for many VCs, so that limits potential sources, and being in medical devices means that we need to deal with sophisticated investors that can run proper DD on us, further limiting potential sources. Funding has been (and still is) a struggle! It's also a little bit "lonely": we run into a lot of problems unique to this industry, but often we can't talk about it in detail, and even when we can, there aren't many people around to talk to.

Project management has been interesting. There's quite a number of consulting and industrial design groups out there, which helps to bring in expertise when needed and keep things lean overall. A big challenge has been in setting up the supply chain: it's not something I've done (or thought of) before, but consulting has helped out here as well. Basically, we'd be dead in the water without outside consultants.

Regulatory affairs is a pain, but I appreciate why it's there and it's not onerous per se, just slows everything down (not necessarily a bad thing). It more or less distills down to documenting "say what you're doing, and do what you're saying".

The technology side is a bit boring, honestly. We need to design things conservatively, unless we have a really, really good reason not to. We also need guaranteed years of availability for parts, which additionally tends to lead to conservative designs.

Surprising lessons learned: cable management (i.e., in the device) is a nightmare, and packaging is anything but a simple problem to solve. Also, may have learned more in 6 mos. tilting at these windmills than my entire undergrad + graduate career.

<comment><USER6> What kind of consultants do you typically find yourself needing?

I've been in the Medical Device field as a software engineer for almost 20 years and I'm beginning to look for other ways to leverage that experience. Most of my background in the field is in software/firmware development but I've managed to learn bits and pieces of Supply Chain, Regulatory, Manufacturing, Field Service and related subjects to get my job done.

Cable management: yeah. Our previous instrument had over a mile of wire & cable in its first iteration.

<comment><USER5> Inexpensive ones.

Kidding aside, as a startup, our needs and capabilities are quite different from a more established company. We can't afford to pay for consultants to fly business class, nor expensive per diems. We can't afford to implement heavyweight development processes, nor should we since being nimble is one of the few advantages we have as a startup. Software licensing costs is a concern at this stage, so we'd rather do a subscription for a (for example) CAD package even if it's not the industry standard over buying a license for the industry standard package. Also frustrating in general is that as a medical device, our volumes are never "large" in the consumer sense and so many common manufacturing processes (e.g., injection molding) are not practical, nor are companies excited to supply parts in our expected volumes—our consultants need to consider what are sometimes less common processes or smaller, "hungrier" suppliers. For many things, the budget is driving the bus, and it's within reason acceptable to need to spend more in the future if it means we can spend less now.

It can be hard to find the a consultant at an experienced group (and domain expertise is what we need) that is willing to work with us. Our future business is not guaranteed (statistically we are likely to fail), the business we will be bringing is small, and we're pinching pennies on what we bring. What seems to have worked is to find a "hungry" associate-level consultant (keeps costs lower) at a larger group who can tap into the experience of senior/principal-level consultants on demand. We point out that, if successful, we'll be able to bring more business to the associate-level consultants, so we both will grow together.

I'll give a specific example, stream of consciousness style partly out of laziness. We have a software component, and a portion will be safety- critical... crap, things just got more expensive. We know we need to develop the device under a risk-management plan (ISO 14971), so we don't need consultants to tell us that, but we may need them do to a design review because we don't have enough in-house experts (how many do we need?). We know that the software component must be developed under a SDLC (ISO 62304). Should we do it agile (as per AAMI TIR-45, not cowboy agile nonsense), or a more traditional V-model? Does CMMI or PSP apply to us? Should I listen to the nice people at IBM and use Harmony, or are they preying on a poor (emphasis on poor) innocent startup? It'd be nice to have a consultant advise us, based on their experience, that one or the other works better _for a startup_. Have we properly identified the safety-critical portions of our design? What should the development environment look like: is MISRA-C everywhere the right answer? Probably not. So MISRA-C for the safety-critical portion, and regular C everywhere else? Or should we do Java/RTSJ with a fancy JVM? Ada/SPARK? We could justify any of these, and probably others. What are the costs of tooling for each choice, licensing costs, how hard will it be to find employees/contractors (should we use contractors? how many will I need to hire?), and what will productivity look like? What about maintainability? Is QNX better than VxWorks? Is model-based systems engineering worthwhile, or is it an expensive buzzword? Those nice people at IBM said Rational is great, and it'll tie into DOORS! And they said DOORS is great! Maybe I should use Excel instead of DOORS, I heard from a guy on the internet that works just fine. And so on...

So for much of this, we want an experienced consultant that can review case histories and show us that in the past, comparable companies were successful by doing X, and so it makes sense for us to go that route too. Many times we know we need to do something, and frequently how to do something at a larger company, but not the optimal way to do it _at a startup_. I can do a decision matrix, but without the case histories, there's too many gaps in the matrix to be useful. We also need to have external people for design reviews, and figure out when we need to pull in those external people, when we don't, and when we should. I need to be able to tell the regulators that our processes were based on industry best practices. I need to be able to tell board members the same, and be able to tell them that our processes and plans have a successful track record at comparable companies to justify the time/cost/etc. I want to be able to show shareholders that we're being good stewards with their investments, and we're doing that by making careful, informed choices.

<comment><USER7> I was working for an avionics startup that was facing the same problems. The necessairy ingredients to get a system certified were all just way out of reach for us. For example, the asking price for the DO178 certified operating system was around 200.000 Euros. Then another 200.000 for the safety critical OpenGL drivers. And so on and so forth. In the end, we went with a Linux based noncertified system which could be used in the aircraft via an expensive "minor change". We sold exactly one device an went bancrupt. Killed by IPad & Co.

</comment></comment></comment></comment><comment><USER8> I'm a software developer working on point-of-sale at one of the major companies in this field. I've worked at the same company for my entire career, and have no plans on leaving. I've found that the retail software industry seems to be very "sticky" \-- lots of people with 20, 30+ year histories at the same company (or sets of companies). Even those who leave seem to stay in the general industry, sometimes even returning to the same company. The company I work for gives plenty of opportunities internally to transfer between projects and teams, and there are many different software stacks in use, so there is always something interesting to work on.

<comment><USER9> It sounds like a really great place to be and I am curious as to why it's as "sticky" as it is even for software developers. Would you mind sharing more details? I'd be happy to chat on HN or email.

<comment><USER8> That's a good question, and probably one I don't truly know the answer to. I've been here my whole career (~11 years), so I simply don't have any experience outside my company or industry to compare against.

I imagine that some of it probably has to do with the large amount of domain- specific knowledge you gain when you work in the retail software business, although I'm sure that is true to some extent anywhere. That knowledge is very valuable when looking to hire someone into the business, but may not translate to anything tangible outside of it. It is actually something I worry about a bit, so I try to keep my skills sharp in other areas as well, playing with other software stacks and keeping up with the latest trends. I really enjoy programming, and problem-solving in general, so luckily it doesn't feel like a chore. I've always joked that if I won the lottery and could quit my job programming, I probably wouldn't because I enjoy it so much.

Speaking specifically about my employer, there are quite a few reasons why I have no intentions to leave even after more than a decade. Our cost of living is pretty low here, so the salary for an experienced software developer is sufficient to support a family of four comfortably, including owning a 2000+ sq. ft. home and putting away a good amount for retirement. That means that I do not need to look for "outside promotions" to increase my salary. It also gives me some hope that I won't run into some of the difficulties I hear about older software developers getting hired later in their careers. I personally work on a mature product, so there are rarely "crunch times". I generally work 40 hours a week +/-, some of them from home. Travel is minimal, and I do not have to carry a company phone, so I feel that I have a very good work/life balance. There are advancement opportunities available within the company, both for the technical and management track. I've seen people hired in as call center employees progress through to senior project management and technical experts.

Sorry that I don't have a simple answer to your question, but maybe explaining what keeps me here explains some of it.

<comment><USER9> Thanks - no apologies needed. It's good even if you do share your own personal opinion. I'm just interested in how I can build an organizational like that where software developers are happy. I've observed how project/tiger teams can stimulate enthusiasm but eventually, it fizzles out, the product gets shoved into the face of other developers who really don't want another new thing to maintain and everyone's just unhappy. Anything you can share on the culture side or what your company does to help keep software developers motivated?

</comment></comment></comment></comment><comment><USER10> I'm working on what I currently call "IMDb for Drones", although I really need a better way of describing it! Here it is: [http://www.RCPartRatings.com](http://www.RCPartRatings.com)

<comment><USER11> If you haven't heard of it, have a play with PC Part Picker. Making something like this for your site would be really interesting IMO.

</comment></comment><comment><USER12> I'm working with two SaaS startups to build analytics-driven marketing platforms based on an open source CMS. Both clients create tools for technical teams, and both are solidly profitable. One of them is from the Bay Area and on Series D. The other if from Scandinavia and on series A. In both instances, the previous version of their web presence was developed by the same dev team as their core product, and their marketing/growth team was competing for development time from the same devs who were building their core product. The platform we've developed enables non-technical marketing teams to easily push out new initiatives and new content, rapidly measure their results and correcting course. At the same time, their team can be confident that their site will work smoothly across a broad range of devices and platforms. By combining software development skills with knowledge of marketing tools and best-practices, we've created a nice niche for ourselves.

I'm also working with a Fortune 100 client to develop an intranet platform for them. It's an awesome project, and I wish I could say more than that, but we're under a rather restrictive NDA. We're working on producing a case study, and getting it approved by their legal department. We've done some other large intranet projects before (federal agencies and global NGOs) so this is another strong niche for us.

I often encourage developers to combine their technical skills with another domain-specific specialty to create a compelling value proposition. It's great to be a "Javascript developer" or "Python developer" but with that positioning, you are easily commoditized. By combining technical skills with a non-technical specialty you are much more resistant to commoditization.

</comment><comment><USER13> I am working on wrinq[1] an application that helps people manage their rental property. Not a niche domain (or maybe it is since I don't see many applications for the real estate sector except for listings) but we are using niche technologies.

It is built with openresty and couchdb both of which I feel are terribly underrated technologies.

"How is it working out?"

On the technology side. Everything is going great. I read a thread on micro- services a while ago and with couchdb (if you take time to think through) it is really easy to have micro-services that can be distributed. We've got 5. While they are not independently deployed yet they can be at any time. It's only a mater of replicating the existing data(very easy) and changing the urls(easy but needs some thorough testing).

openresty makes it really easy to communicate to in house as well as some third party services we use. I smile every time I write:

`local res1,res2,res3 = ngx.location.capture_multi{{"url1"},{"url3"},{"url3"}}

It is very satisfying to see the results of different independent apis coming together in a single call.

Both of these technologies are very resource efficient,openresty in particular. And we have tested high loads of traffic on cheap servers without making any effort to optimize.

On the business side. We are doing okay. Making sales is always a challenge but people are interested in talking to us which is a good sign, I feel. Only a matter of time before we perfect our product and pitch. We are in no hurry :)

[1][https://www.wrinq.com/](https://www.wrinq.com/)

<comment><USER11> I would definitely invest in a better landing page, especially one with some screenshots of the software. I googled 'landlord software' and found a fair few - [http://www.landlordvision.co.uk/](http://www.landlordvision.co.uk/) seems to be the most popular and their landing page looks pretty decent.

I am, admittedly, surprised by the lack of SaaS landlord sites. There are a fair few but most look very dated and uninviting.

<comment><USER13> Thanks! and yes we could do with a better design. The challenge for us has been to find a good arrangement of all the text that we have (may be we should cut some of it out?). Landlord vision looks beautiful.

</comment></comment></comment><comment><USER14> Think my niche is programming in news. Something between a programmer, an editor and a reporter. I don't work on the core CMS because we have dedicated teams for that. What I specialize in is all the things the CMS can't do, won't do, or isn't designed for, like interactives. Or this [http://projects.voanews.com/ebola- tracker/](http://projects.voanews.com/ebola-tracker/) ; the tracker data is updated manually because it has to be reviewed (sudo vi ebola/data) but an automated watch script alerts me when the World Health Organization updates their ebola stats every few epidemiological weeks. I like using RaphaelJS for making graphics.

Currently, working on 3-4 editorial projects. First one is a bit dry, a metrics dashboard done in Node.js that gets top pageviews from our articles and then scrapes titles, number of article comments, facebook shares, tweets. Some real surprises there - an article can have 10x number of fb shares than pageviews. As in, the teaser photo + summary is enough for people to share and not read in entirety. I like node. Also (probably unsurprisingly) but facebook is faster than our own sites for scrapes, even though we use akamai / CDN.

Next up is a parallax-y report on fourth of July for our Learning English division. It's a longform writeup laced with some cinemagraph-style looping videos and embedded quizzes explaining the constitution and a bunch of Americana to our international audience. The internal tool we generate these projects with (tool separates content and programming/design) are a mix of PHP / Smarty templating that I want to convert to node with some realtime collaboration features, but once baked the final reader-facing stuff is HTML/JavaScript. Looks kind of like this [http://projects.voanews.com/central- african-republic-diamond...](http://projects.voanews.com/central-african- republic-diamonds/) project. Funny thing is the internal tool is called "timeline editor" and it does everything except timelines. It should be called interactive editor.

Also, oh boy, I made that map in the article and am so proud of it. It remixed a bunch of complicated and overwhelming data points and simplified it for the reader. Had to do some lat/lng to pixel conversions, some point-in-polygon checks, got the CAR shape polygon list from a UC Davis site and then used inkscape to simplify the shapes because it had millions of points. So guess this kind of programming is a niche specialization for news agencies, and it's worked well for me, going on 7-8 years now.

Damn, I'm a nerd.

<comment><USER15> Very interesting tidbit about the 10x number of FB shares. I sometimes wondered why FB keeps showing me so many news on sites outside of FB, sending me away from their site. But I guess they don't send away quite as many people as I assumed.

<comment><USER14> Yeah, participation from any kind of passive teasers or pushed content is a lot lower than you'd think. If we launch a new project and post a teaser about it on our very homepage, it's a coup if we get a 10-15% click rate. Think that low clickage number is pretty standard across news sites, and well, sites in general.

Anyhow the part that's interesting with facebook is that there is no homepage on facebook. Everything's fairly temporal, so you only have a brief period of time to capture interest. On top of that, it's a hit/miss possibility that you'll start a chain reaction of interest, so I'm amazed when there's a 5:1 or 10:1 or 20:1 ratio of shares to pageviews. It means that facebook as a content platform is totally plausible, which I don't like.

</comment></comment></comment><comment><USER16> An new programming language paradigm: [https://vimeo.com/107069470](https://vimeo.com/107069470)

Really tough going, but have a first customer in its initial incarnation: brodlist.com

</comment><comment><USER17> just finished working on my first real fully automated + autoscaling + distributed application environment a few weeks ago. The the definition/spec for all of it is on source control; nothing is done manually at go-time.

It gives you the same type of confidence about your application environment that you experienced for the first time when you switched to automated application deployments.

the various "click the build button" workflows that are implemented so far:

1\. base images for all the different server types get built/updated. any future environment updates will upgrade machines to the new images.

2\. an entire new named application environment (minimum ~15 VMs) gets created (webservers, background services, cache servers, database servers, etc..), configured, and applications deployed to. creating a new environment for, e.g, performance testing is as simple saying "build: performance-test-env"

3\. an entire app environment (any of them) gets updated based on any configuration changes made since the last update/create.

4\. various normal application deployment automation

<comment><USER18> Yo Davis! Shoot me an email about that sometime, I'm actually setting up something similar-sounding at my current company (though not at scale yet).

</comment></comment><comment><USER19> A new methodology, agile/scrum but more humane.

Been an IT developer for most of my life but always found humans and how they work more interesting than computers and finally I figured out how to do something good with that interest.

[http://timeblock.com](http://timeblock.com)

</comment><comment><USER20> [http://Gamedevr.com](http://Gamedevr.com) \- Links and resources for game developers.

Im trying to get into game development, and decided to create a website listing alot of tools and resources that i think are usefull.

The main objective is to be community curated, by adding your own links via Github. The problem is that im also a newbie webdeveloper and havent spent alot of time learning about source control and Github especificaly.

Im learning as I go, thats why i havent realy posted it anywhere.

Im planning on adding alot of resources, fix alot of stuff and then realy tell people about it.

Ill just leave it here, for some feedback from you guys.

Ps: Sorry for my terrible english.

</comment><comment><USER21> At the moment my niche is 'game development'. Specifically the development of a web based game at a medium sized (400-500 employees I believe) game company. So nothing really out of the ordinary there.

Our tech stack is also pretty standard for a game of this era PHP and MySQL backend, frontend is HTML, CSS and JS. Version control with SVN.

It's definitely been eye opening for me, debugging old code that hasn't been touched since the mid-noughties can be a real challenge. However this has taught me to be more thoughtful about how I code, and to plan out how I'm going to build something efficient and maintainable.

</comment><comment><USER9> Market Intelligence as a Service - <USER2> ([http://getinsightico.com](http://getinsightico.com))

Exploring if we have a viable business after several people have told us that it's useful. We're still trying to land our first customer though the challenge is focusing on the right customer segment since it spans multiple industries.

Funny enough, I did have a job choosing and picking technologies such as Oracle/Microsoft/etc. I worked at a high growth startup at the beginning and then went to work at large corporations to get a balance of both worlds.

<comment><USER22> site not working when entering email, getting error about CSRF?

</comment></comment><comment><USER23> Chirp - A new smart notification center.

It's still being developed but here's the landing page to give an idea: [http://welcomechirp.com](http://welcomechirp.com)

</comment><comment><USER24> SETaaS - Software Engineering Teams as a Service

Trying to find out if the bootstrapped productized service at [http://www.thinkbridge.us/setaas.html](http://www.thinkbridge.us/setaas.html) is viable.

Targets are businesses with software systems and applications that are to be developed and maintained at a smaller scale but need continued access to technical talent.

After being a Software Developer for 15+ yrs, learning marketing & sales :)

</comment><comment><USER25> [https://askpatron.com](https://askpatron.com) fast single screen customer feedback with rewards for small local businesses. It's a work in progress and I am doing things that don't scale right now. I have four businesses that are helping me beta test. I am looking for more. The overall goal is to improve the customer experience using a system that is super fast and super simple to use.

</comment><comment><USER26> Refitting the architecture boat to sail seas of information instead of motoring commodified ponds of construction? So far, it's not appreciably less successful in real terms and even if my valuations and probabilities are each off by an order of magnitude or two in bad directions, the expected return is higher per time unit of effort simply because piece work cannot scale well.

And writing.

</comment><comment><USER27> My niche is training sysadmins on CFEngine. Been doing it part-time for 5 years; just got a full-time gig as a CFEngine consultant for a year and wondering when I'm going to have time to continue developing/expanding the training but happy to be working on CFEngine full-time as it'll help raise my expertise.

</comment><comment><USER6> Niche: embedded systems Working on - "at work:" a large medical instrument; "at home:" an industrial monitoring platform with a web interface.

I really like my niche. I've believed that merging embedded control systems and "the web" was long overdue, and finally industry is catching up with that belief.

</comment><comment><USER28> Modelling religion and extremism using a combination of behavioural economics/psychology, AI and a few other snazzy buzzwords.

We believe that if we build on this framework correctly it is possible (maybe not probable) to eliminate major extremism and are about to kick off our seed round to scale it..

Frighteningly ambitious, but fun

</comment><comment><USER29> Previously i had worked on a mobile app product Tweelerts (tweelerts.com) and now i am working on a Parse like service which let you share you static data ( text, json, XML, files or any other data) over API. No coding required you just need few click to set up and server data over API

</comment><comment><USER30> i'm working on automating texture compression for game authors. i'm imagining a tool that automagically compresses assets for best quality and size, and very quickly, in a way a game author wouldn't have to even know it's happening. At this point i'd like to talk to game authors about their texture compression pains.

</comment><comment><USER31> I work on a lot of projects and love doing the concepts. in parts I consider myself an Artist and Explorer. My qualities are a good sense for abstraction and having a broad knowledge (as opposed to specific expertise) and knowing how to communicate between people. The tech side is often too much work and to complicated for me to go beyond a proofs of concept, but as I do most just to satisfy my own curiosity I'm feeling great with this.

My Passions are structuring knowledge, perception, society, art, sound, music and love.

I'm not so much career focused, but I'll see what opportunities I can find, once I finished my Diploma:

.

1\. PostPriori - combining news aggregation with twitter like personal subscriptions, exploring weighting of content beyond:

\- a suggestion engine (not yet good enough for the finesse of a personal taste, scary because out of direct control, biased towards easily digestible content)

\- democracy (simply does not scale. Might work for niches, but look at the shift in reddits audience. It has to become mainstream. Subreddits are a fix, but not a very elegant solution I think)

\- doing it chronologically (one needs to filter the mass of input, making actuality so important is not the right way I think and a huge problem in the media. I'm also incapable on using twitter as is because of this.)

I have a few things to try on how to keep all the ratings very human and hand- choosen by those you personally trust. I also want to try to enhance viral distribution and allow for semi-classical editorial institutions.

Further discussions about it are very welcome!

It will become my Diploma in Arts, so I'm free for now from commercializing it. You can subscribe to a newsletter which I will send out once beta-testing starts:

[http://signup.postpriori.com/](http://signup.postpriori.com/)

.

2\. All of It - A personal, local Wiki.

I recently started making a wiki out of my notes. I will yet have to see on how to cramp the naturally ribosomal information there is in to some hierarchy with cross links.

To stay true to the nature of information I'd need a more associative indexing, but i won't build another google or some other brain. :)

I'm using markdown, [http://wikitten.vizuina.com/](http://wikitten.vizuina.com/) and owncloud.

.

3\. musical experiments

\- I'm writing sort of a firmware for a midi keyboard to play quarter tones. (using this [http://www.keithmcmillen.com/products/qunexus/](http://www.keithmcmillen.com/products/qunexus/) it has 2 pressure sensors per key, so I can split keys easily once I have the raw data)

\- I'm planning a responsive, randomized effect array.

From my instrument (a trumpet for now), I try to extract how I play (pitch, volume etc.) and randomly assign effects to certain locations in this matrix. Once I like a certain location I will fix it and shuffle everything else. Over time a a spectrum of curated effects will be fixed on the range of my playing. I hope for something like bending down a loud C and having it distorted, than when I go silent it suddenly becomes roomy with a reverb and things like that.

.

4\. I'll join another startup on monday. I want to build something to make money, not just sell my time/workforce.

.

5\. I do some freelancing as a web developer, throwing together and customizing CMS'.

.

6\. a relaxing students job at the state television

.

7\. Other small jobs: media installations for exhibitions and artists, photography, proofreading (in german, spare me my mistakes here :)

.

edit: added projects and edited a bit

</comment><comment><USER32> finance + user experience</comment>


Why Mathematicians Can't Find the Hay in a Haystack - <AUTHOR> http://nautil.us/blog/why-mathematicians-cant-find-the-hay-in-a-haystack <comment><USER2> There are lots of examples of this phenomenon connected with "the probabilistic method". There the problem is to prove a certain type of object exists (there is at least one piece of hay in the stack). But it's hard to build one. So what you do is construct one randomly, then prove that on average or with high probability, your construction satisfies the requirements. This proves that at least one thing in the stack is hay, or actually that on average or most of the stack is hay.

I'm thinking of graphs, for example expander graphs; error-correcting codes; and probably lots more I'm forgetting. In these cases it then becomes a research program to construct such objects explicitly (which has a lot of history with expanders and codes).

</comment><comment><USER3> "The algebraic numbers are spotted over the plane like stars against a black sky; the dense blackness is the firmament of the transcendentals."

\-- E. T. Bell

</comment><comment><USER4> >Irrational numbers occupy the vast, vast majority of space on a number line—so vast, in fact, that if you were to pick a number on the number line at random, there is literally a 100 percent chance that it will be irrational.*

The asterisk at the end doesn't seem to lead to an actual footnote. What is meant by this? That irrational numbers are more than 99.5% of all numbers and so it rounds to 100%?

<comment><USER5> Slogan: "rational numbers exist but do not take up space."

This is in a measure-theoretic sense, so literally 100% (not just 99.5%). On the number line, the measure of an interval is the (absolute) difference between its endpoints (the "length" of the interval). For any measurable set, you can approximate its size from above by covering its points with intervals and shrinking them as much as possible.

But because there are only countably many rational numbers, you can cover all of the rationals with a set of intervals with a finite total sum of lengths.

To be a bit more specific, if your rationals are r_1, r_2, r_3, ..., then for any small number e > 0, you can form the set of intervals

(r_1 - e/2^2, r_1 + e/2^2), (r_2 - e/2^3, r_2 + e/2^3), (r_3 - e/2^4, r_3 + e/2^4), ...

which have a total sum of lengths e/2 + e/4 + e/8 + ... = e and contain all of the rational numbers.

So for any positive number e > 0, the measure of the rational numbers is less than e, meaning that the measure of the rational numbers is 0.

To turn this into actual probabilities requires a little bit more work, since the measure of the number line, and hence that of the irrational numbers, is infinite, not "100%". But you could look at the probability of selecting a rational number in the interval [0, 1] and use the same reasoning as above to get a probability of 100% for an irrational number and 0% for a rational number.

<comment><USER6> It's not less then even, it's exactly e.

<comment><USER5> (Edited to try to answer the objection more clearly.)

The intervals overlap heavily. Each of the intervals R_i contains infinitely many rational numbers, and all but finitely many of those will have corresponding intervals which are completely contained within the interval R_i. As a result, the estimate obtained by the construction described is always strictly smaller than the chosen e.

<comment><USER7> I appreciate your careful and patient explanation, and assay a superficial and snarky one of my own: it is impossible for the measure of the rationals, if it is to exist at all, to be _exactly_ `e` for _every_ small positive real number `e`. Even if we didn't know anything about the overlap of the intervals, we'd know at best that we had a (possibly non-strict) upper bound of `e`; but the only non-negative real number that can satisfy such a bound for every positive `e` is `0`.

</comment></comment></comment></comment></comment><comment><USER8> The article points out how rational numbers are the needles amongst the hay of irrational numbers.

In a more discrete setting, we have compressible files being the needles among the hay of incompressible files. Technically; all but a fraction of 2^-k of binary strings of length n need at least n-k bits to describe, but we cannot come up with a single explicit example.

<comment><USER9> For any fixed compression scheme it's trivial to come up with files that don't compress.

<comment><USER10> But any file that is "trivial to come up with" is going to be easy to compress under many other schemes.

<comment><USER8> Indeed; we can't come up with explicit examples for the uncomputable compression to the shortest possible description (corresponding to the Kolmogorov complexity).

</comment></comment></comment></comment><comment><USER11> Which is why in computational, science, and engineering mathematics there is the concept of maximum precision. All measurements have an amount of precision and as long as the precision of how you record and calculate numbers is greater than that, the solution will be correct.

Unfortunately, this was not what I was taught in math class (science classes had to teach this separately.) This lead me (and most everyone else I communicate with) to erroneously believe that "good" math requires infinite precision. This leads to things like junior programmers losing their minds when 0.1 + 0.2 doesn't equal 0.3

<comment><USER12> >This leads to things like junior programmers losing their minds when 0.1 + 0.2 doesn't equal 0.3

Junior programmers lose their mind when 0.1 + 0.2 != 0.3.

Senior programmers lose their mind trying to explain this to the business side.

<comment><USER13> Truly senior programmers use integers to represent money

</comment></comment></comment><comment><USER14> i think a dark side to "finding hay in a haystack" is the risk of building up an elegant theory for e.g. a novel calculus of hay, only to realise after some time that the set of hay is in fact empty, or is isomorphic to some other well understood and hence uninteresting structure.

<comment><USER15> That's why as soon as you come up with a list of properties your hay should have, you construct an example of it.

</comment></comment><comment><USER16> Numberphile did a great video on this topic.[0]

[0]: [https://www.youtube.com/watch?v=p-xa-3V5KO8](https://www.youtube.com/watch?v=p-xa-3V5KO8)

</comment><comment><USER17> Another nice concept: normal numbers. These are numbers which have a very basic property of randomness: getting the block frequencies right. [1]

The strong law of large numbers implies that almost every number in the unit interval is normal.

Giving a simple construction of a normal, and proving that it is indeed normal, is quite difficult.

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

<comment><USER18> In relation to the article posted, there is a conjecture which states all algebraic, irrational numbers are normal.

</comment></comment><comment> 08-15 So much for "mainstream math". There is an alternative take called constructive algebra, which I believe to be more useful to a computer programmer. Briefly:

"There are only finitely many numbers."

That's trivially true, because numbers are man-made objects, and man has only had enough time to make finitely many of them. Integral and rational numbers can be made by writing them down, algebraic irrational numbers can be made by writing down an expression for them. (What language? Lambda calculus, obviously, because according to the Church-Turing thesis, nothing more powerful exists.)

Only countably infinitely many numbers can potentially be made this way, only finitely many will ever be made. Those non-algebraic transcendental numbers? Don't exist, because they can never be made. They may "exist" in a philosophical way, but they no impact whatsoever on the real world in which my programs operate.

<comment><USER19> So you can't imagine a world in which our understanding of pi or e might impact or be useful to the real world?

More broadly, you can surely imagine how the study of transcendent numbers might inform results in other fields? I don't usually try to justify math by pointing at its applications, but for example, the transcendence of pi leads to a proof that squaring the circle is impossible. Even if things aren't constructable, they can still be valuable to think about.

<comment> 08-15 Brilliant, just like the dimwitted TA at university who claimed full of conviction "NO amount of memory can represent pi!" Which is funny, because he represented it with a single character.

Pi and e are both algebraic numbers, there are expressions (algorithms) for both. And guys like you are funny: Faced with proof that almost all real numbers do not have a name, you immediately try to name an example.

<comment><USER20> You contradict yourself: any _given_ real number is, in fact, given by its "name", which, as you said, is either a symbol or an algorithm (which, incidentally, are the same thing - a symbol can be seen as the name of an algorithm, or a function; the TA was probably referring to the fact that the algorithm would have to stop at some point so as to avoid overrunning the memory limit).

<comment> 08-15 > You contradict yourself: any given real number

Err... I didn't say that. For good reason, as you point out. I know that you cannot "give" almost all real numbers. I'm merely pointing out that there are mathematicians who go the extra mile and decide that those don't even exist.

Symbol, name, algorithm; all of those are the same thing. And almost all real numbers (in ZFC aka "standard math") don't have one.

> the TA was probably referring to the fact that the algorithm would have to > stop at some point

Nope, he wasn't. He specifically insisted that no amount of memory can represent pi, while any integer can be represented. He was technically correct, but I have an easier time working with pi (to any desired, even dynamically determined precision) than with Ackermann(4,4).

The dimwitted TA missed the point, and he did so, because standard (not constructive) math creates lots (continuously infinitely many) of infinities, which serve no use but to make irrelevant points about things that cannot occur in actual programs.

</comment></comment></comment></comment></comment><comment><USER21> It's a nice little puzzle to prove that: Irrational number <=> Never repeating infinite decimal representation.

<comment><USER20> > _Never repeating_

Meaning "non-periodic." Repetitions can occur as many times as one wishes, e.g.

      0.1230123001230001230000123...

is irrational.</comment></comment>


Ask HN: What are the best coding practices in research projects? - <AUTHOR> Research environment differs significantly from regular software engineering:<p>- researchers conduct experiments that may fail<p>- they often produce PoC instead of final products<p>- it's tempting to produce tonnes of low quality code (since it just an experiment/PoC!)<p>- often researchers are not software engineers so they don't really care about code quality / tests<p>How to find a good trade-off between high coding standards and not getting in the way of research? Is it possible to move smoothly from PoC to production solution without rewriting everything from scratch? How to share code between experiments / PoCs? <comment><USER2> Used to be a research scientist at a ~3k person Bay Area company. Early versions of a project typically existed outside of the mainline code branch at the company (we usually just tossed it into the company's private gitlab). We tried to keep things reasonably organized and conforming to the company's standards, but as paper deadlines approached the code usually devolved into a mess of technical debt (just like grad school!). After we knew we had some new algorithm or technique that worked, we typically went back and stripped away the cruft, cleaned up the code so it conformed with the company's coding standards, added required tests, pushed to the company's main branch, and began the really hard work: convincing people in the company that what we did was useful for their work to drive adoption.

Addressing the specific points:

> \- researchers conduct experiments that may fail

Very true! Often many, many, many experiments...

> \- they often produce PoC instead of final products

This is going to vary a lot depending on where you are working. We were responsible for developing, deploying, and for some time supporting whatever we developed.

> \- it's tempting to produce tonnes of low quality code (since it just an > experiment/PoC!)

Yep, especially in early stages.

> \- often researchers are not software engineers so they don't really care > about code quality / tests

This really depends on what stage in the lifecycle of a research project we were in. We were responsible for deploying the final code, so at the end of the day it had to be of the same quality as something someone with the title of software engineer would generate.

</comment><comment><USER3> I think the first two are probably the right kinds of problems. Even in normal software engineering, you want to try out PoC's to prove that they are what your customer wants, and that things generally work the way you think they should.

Code quality is another problem entirely. I agree code quality can get out of control as soon as the PoC is promoted to something resembling "production."

My suggestions are:

\- First, if you get frustrated at researchers for code quality, let them calmly know why you are upset. If they are being inefficient, many would love to hear tips to keep it from happening. Let them know when the things they are doing might affect large groups of people.

\- Don't try to write tests for everything. This just slows you down, getting away from the good things above. Write tests for things that are frequently broken, and absolutely required to work, such as core functionality. If something gets broken 2 or 3 times, you should definitely have a test.

\- Make your tests as high level as possible. Compute power is cheap, and despite what you might hear from the TDD/unit testing crowd, your tests don't need to run in 2 seconds to be useful. I like to have tests that emulate users, because as you change the logic of how you're doing things, you still have tests to back you up.

\- Add lots of additional logging. This helps document the code (since the messages should be useful and say what is going on), and provides great info for debugging issues after they've already occurred. I've been saved by good logging more times than I can remember, especially on different OS/environments that aren't the test environment.

\- Don't worry too much about edge cases. Just print a log line or crash out if it's something ridiculous you've gotten yourself into, which is a lot more friendly than figuring out some horrendous bug mired in retry logic that has masked the original issue.

\- Insist on version control, but not code reviews. Code reviews can really slow you down. Instead, fix problems after they come up. You haven't shipped, right?

\- Run the build and tests in a simple CI loop that runs overnight. Don't worry about testing each commit, just know if it works or doesn't work. Fix the problems.

These last two are related:

\- Feel free to just start over. Delete huge amounts of code, and try a different approach.

\- If you have gone past the point of no return (you don't want to start over), then start production-izing the code. Again, aim at the problems to start, not some coverage metric. Look over all the code and reduce redundancy. It's a lot easier to review code once it's all there, rather than bit by bit.

</comment><comment><USER4> I used to be a software lead in a research organization. I have a LOT of opinions on the subject but I'll give you just a few points.

\- I've seen many cases where researchers refused to share their code because they knew it wasn't up to any reasonable standard. This is a red flag. If they are embarrassed by their code, I tend to discount their alleged results entirely.

\- Even in research, people should be required by the organization to follow some kind of process. Use version control (like git or even svn. This basic step is still not universal), put in pull requests, get code reviewed from someone else.

\- For that purpose, every research organization should have someone on staff who can do a competent review. They do not need to specialize in the researcher's field. They just need to know a code smell when they see it.

\- Every researcher I have known will resist this strenuously. That is a sign of how much they need it.

\- When publishing research results, code and data should always be required. Otherwise, the results cannot be judged. (A lot of people like it that way. They should not be accommodated).

I could go on but I'll be nice and stop here.

<comment><USER5> To expand on your first and last points:

Your researcher got a result. Great. What is their objective evidence that the result is real rather than an artifact of a bug in their code? If the code is garbage, _you can 't trust the result_, no matter how much of a breakthrough the result would be if true.

That doesn't mean that the code needs to be production-ready. It does mean that the code needs to be clean enough to be trustworthy. (Tests can be included in this evaluation.)

If the code's going to be product-ized... maybe ask the researcher which parts of the code they think are the most troublesome. Start by re-writing those pieces, from scratch, with production levels of rigor. Then, as other parts prove troublesome, rewrite those too. Don't band-aid them, rewrite them. Keep the interfaces, unless the interface itself is part of the problem.

</comment></comment><comment><USER6> JupyterHub allows you setup research clusters on GCloud, AWS and Azure. You can set CPU / GPU resource utilization limits, disk usage, memory, network. Even limit scaling to your budget. Once your experiment is up and running. It's simply another service running in a container. Have used it for a small distributed team. But can be scaled to corporate R&D teams with 1000s.

Core environment is still the Jupyter Notebook. So should remain familiar to most data scientists.

Zero to JupyterHub with Kubernetes

[https://zero-to-jupyterhub.readthedocs.io/en/latest/](https://zero-to- jupyterhub.readthedocs.io/en/latest/)

</comment><comment><USER7> It's a free-for-all. (welcome to my world :( )

Something small but meaningful that I believe in are tools like versoneer ([https://github.com/warner/python- versioneer/](https://github.com/warner/python-versioneer/)) which bump the version of your code on _every_ commit.

Then, embed this version string in all output. Figures, serialized data, whatever.

It is very powerful to be able to point at a figure and say "this graph was produced by precisely this code". If you're feeling particularly anal, include the hashes of the datasets that generated it too.

</comment><comment><USER8> There is no one answer. The answer will change drastically depending on the sort of research you're doing, and your role in that research.

Are you a mathematician simulating a dynamical system? A theoretical computer scientist exploring the effects of parameters that are difficult to nail down analytically?

Are you a computer scientist working on a new sort of system? Is the point of that system to support a long-running research agenda, or to demonstrate the feasibility of a general notion/idea?

Or are you a software engineer supporting a natural scientist (e.g., in a large bio/neuro/chem/physics lab)?

Are you the PhD student, the research scientist, the supporting engineer, or the PI?

But in any case, the correct answer will start with interrogating the purpose/role of the software in your research project. And that answer could range from "hack out the MATLAB and sanity check" all the way to "lives are on the line; practice extreme rigor". And certainly not excluding "convince your funding agency/PI that it's time to hire a professional"!

</comment><comment><USER9> I've been lead on a few research projects. I found it useful to require that all work be tied to work items in our project management tool. The work item would need to describe the purpose and hypothesis of the work and capture summary results. We then created a file structure that matched to our work item IDs for all work product created while working on that task. Towards the end of the engagements, we go through and find what's relevant and include those artifacts in our report with steps for reproduceability, assumptions, and other clarifying points that may be salient.

We also made good use of tagging features in our project management toolset to make report writing easier at the end of the project.

</comment><comment><USER10> From my experience in knowing a few scientists, the pattern seems to be:

\- Scientists try their best to be good programmers, but are scientists first.

\- Someone the scientist knows, or someone on the team with more programming knowledge, turns what the scientist produced into something maintainable at some point.

\- If they're lucky, the grant will have resources for a script/software maintainer.

Scientists are scientists. I know a few who can do things with awk that probably should never be done, but they use the tools they know to get the data to look the way they need.

</comment><comment><USER11> In an ideal world you start off with loose highly manual code/processes when validating an idea and as you get closer to a publication components are restructured/rewritten to make it easy to replicate results.

Other researchers care about the final code which is used to generate the results. So, in my book it's ok if there's a large gap between the code that lead to the initial idea and the code which was used to show the idea in practice (i.e. the code used to generate all graphs/tables within a submitted publication).

</comment><comment><USER12> > How to find a good trade-off between high coding standards and not getting > in the way of research?

I think you can have both. Unit tests and good coding practices should make you faster once you have more than "1 screen"'s worth of code and you are relying on human memory when navigating and maintaining code.

I'm not a "unit test all the things" kind of person though.

</comment><comment><USER13> researcher should NOT care anything related to "best coding practices", that is engineer's job. if you organization is very cheap, try to put both "researcher" and "software engineer" hat on same person, unless he/she wants to be both, otherwise this organization is asking for cheap research result, very simple, always true.

</comment><comment><USER14> Basics

\- use version control

\- write tests (high level, keep it simple)

\- pull in data as if it was a dependency, versioner and stable

\- use a CI server/service

\- when publishing, code and data goes with the paper</comment>


Myths about /dev/urandom (2014) - <AUTHOR> http://www.2uo.de/myths-about-urandom/ <comment><USER2> I've given up on the hope that these myths will ever die. Every time it's relevant, someone pipes up complaining urandom isn't safe for use, or will run out of entropy. Have a look at the bugs for Node, Ruby and Wordpress.

And inevitably, the appeal to authority ends up referring to these projects.

Serious question, if I submitted a patch for the man page detailing the content of this myths page, is there a chance it might go somewhere and put somewhat of an end to some of this?

<comment><USER3> They got fixed last month.

[http://man7.org/linux/man- pages/man7/random.7.html](http://man7.org/linux/man-pages/man7/random.7.html)

[http://man7.org/linux/man- pages/man4/random.4.html](http://man7.org/linux/man-pages/man4/random.4.html)

[https://bugzilla.kernel.org/show_bug.cgi?id=71211](https://bugzilla.kernel.org/show_bug.cgi?id=71211)

<comment><USER4> Finally!

It would be even better if there was some special file with the same semantics of getrandom, so the advise could be simply "use this file, or the getrandom syscal, whatever is easier". The way it is now, no special file is foolproof.

</comment></comment></comment><comment><USER5> A useful article, originally from 2014 but updated recently.

Previous HN discussions:

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

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

<comment><USER6> I remember seeing it before. It's a good post.

What I think is really interesting is the question: how do you prove something is random. If you take a chunk of data that uses strong encryption, without headers or other identifiers, it should look like it has a random distribution.

That's one of the reasons for the great concern around the Snowden leaks that implied some manufactures had compromised their hardware AES chips:

[https://theintercept.com/2016/01/04/a-redaction-re- visited-n...](https://theintercept.com/2016/01/04/a-redaction-re-visited-nsa- targeted-the-two-leading-encryption-chips/)

</comment></comment><comment> Paul-ish While it may be generally better to use /dev/urandom, what about the Mining Your Ps and Qs paper?[1]. It finds that:

> Every software package we examined relies on /dev/urandom to generate > cryptographic keys; however, we find that Linux's random number generator > (RNG) can exhibit a boot-time entropy hole that causes urandom to produce > deterministic output under conditions likely to occur in headless and > embedded devices. In experiments with OpenSSL and Dropbear SSH, we show how > repeated output from the system RNG can lead not only to repeated long-term > keys but also to factorable RSA keys and repeated DSA ephemeral keys due to > the behavior of application-specific entropy pools.

This is mentioned a little at the end of the article. Would it be a breaking change for Linux to block urandom at startup?

[1] [https://factorable.net/weakkeys12.conference.pdf](https://factorable.net/weakkeys12.conference.pdf)

<comment><USER7> Read 32 bytes (i.e., 256 bits) from /dev/random, write them to /dev/urandom, and then use /dev/urandom for everything.

And every few months, send an email to Ted T'so with a patch fixing this behaviour. Maybe if every single Linux user bugs him he'll finally capitulate.

<comment><USER8> 1\. That was exactly what I was thinking would work best as a workaround if your program might run at boot-time.

2\. Perhaps somebody could create one of those preloaded email forms like those political organizations do where you fill in your name and email and it does the rest up to and including sending the email?

</comment></comment></comment><comment><USER9> /dev/urandom does have a problem with not enough entropy sometimes. Yes it never "runs out" of entropy when it has enough previously. But when a computer first boots up, sometimes it doesn't have enough entropy yet, and gives bad output.

This causes problems in practice, allowing people to crack RSA private keys. [https://factorable.net/weakkeys12.extended.pdf](https://factorable.net/weakkeys12.extended.pdf)

<comment><USER10> Yes in that case you want to use getrandom/getentropy.

Also note (as TFA indicates) that urandom not blocking on uninitialised entropy pool is mostly a Linux thing e.g. BSD urandom _will_ block until the system the system is correctly initialised.

<comment><USER11> "that case" is _every_ case unless you know and control exactly which OS, on which (potentially virtual) hardware and under which circumstances your code is going to run, now and in the future.

That excludes anything that is meant to be used by other people. Fragile security is no security, and relying on undocumented assumptions like "is not running on Linux", "starts late in the boot process" and "is not running on an VM" is incredibly fragile.

Unfortunately people who really should know better keep writing articles like this one, dispelling the "myth" that urandom works exactly as documented.

Which leads us to situations like this:

      $ dmesg|grep random
      [    0.469142] random: systemd-tmpfile: uninitialized urandom read (16 bytes read, 3 bits of entropy available)
      [    0.470297] random: systemd-udevd: uninitialized urandom read (16 bytes read, 3 bits of entropy available)
      [    0.470325] random: systemd-udevd: uninitialized urandom read (16 bytes read, 3 bits of entropy available)
      [    0.470877] random: udevadm: uninitialized urandom read (16 bytes read, 3 bits of entropy available)
      [    0.470890] random: udevadm: uninitialized urandom read (16 bytes read, 3 bits of entropy available)
      [    0.471936] random: systemd-udevd: uninitialized urandom read (16 bytes read, 3 bits of entropy available)
      [    0.471950] random: systemd-udevd: uninitialized urandom read (16 bytes read, 3 bits of entropy available)
      [    0.471969] random: systemd-udevd: uninitialized urandom read (16 bytes read, 3 bits of entropy available)
      [    0.472132] random: systemd-udevd: uninitialized urandom read (16 bytes read, 3 bits of entropy available)
      [    0.472142] random: systemd-udevd: uninitialized urandom read (16 bytes read, 3 bits of entropy available)
      [    1.909082] random: nonblocking pool is initialized

Oops, hope none of that was for anything important, say generating a long-term cryptographic key! But of course if we're to believe TFA... "Fact: /dev/urandom is the preferred source of cryptographic randomness on UNIX-like systems."

Just use getrandom. If you can, consider using _only_ getrandom. But if your code must work on systems without getrandom or similar, before following the advice of this article, ask yourself if what you are doing is worse of blocking, or reading out a grand total 3 bits of entropy. You'd probably prefer the former.

<comment><USER12> "I don't think systemd is doing anything wrong here, and we really shouldn't change anything." \-- Lennart Poettering, 2016-09-18, [https://github.com/systemd/systemd/issues/4167#issuecomment-...](https://github.com/systemd/systemd/issues/4167#issuecomment-247835419)

The bug report also explains what systemd is doing here.

"systemd starts allocating those hashtables very very early on, before any process is forked off... It's par tof the initialization scheme of systemd really. Hence there's basically nothing else going on in the system, execept what is done by the kernel itself", -- Lennart Poettering, 2016-05-05, [https://lists.freedesktop.org/archives/systemd- devel/2014-Ma...](https://lists.freedesktop.org/archives/systemd- devel/2014-May/019037.html)

"moving that blocking behavior to /dev/urandom simply does not work. The system does not boot. The reason to this issue is actually quite simple. The init process of systemd reads /dev/urandom for whatever purpose. Now, when /dev/urandom blocks during boot, systemd will be blocked too." \-- Stephan Mueller, 2016-10-22, [https://lkml.org/lkml/2016/10/21/982](https://lkml.org/lkml/2016/10/21/982)

</comment></comment></comment></comment><comment><USER13> tldr; just use /dev/urandom --- this should be at the top of the page.

Maybe prefix the bold sections with Myth: so it is easier to read. I was really confused as to which side of the argument the author was on at first...

<comment><USER14> Or better use getentropy(2)/getrandom(2) when it is possible.

<comment><USER15> True, but never pass GRND_RANDOM or GRND_NONBLOCK.

<comment><USER16> NONBLOCK just returns an error code instead of blocking. No harm in that, AFIAK.

<comment><USER4> Just wait until people start using the EAGAIN value in keys.

</comment></comment></comment></comment></comment><comment><USER17> Also Filippo Varsaldo has a nice talk about this:

[https://www.youtube.com/watch?v=Q8JAlZ- HJQI](https://www.youtube.com/watch?v=Q8JAlZ-HJQI)

<comment><USER18> Please don't link to talks from CCCen. They contain adds and is not the offical channel from the C3VOC. Link to the mediacccde channel ([https://www.youtube.com/user/mediacccde](https://www.youtube.com/user/mediacccde)) or better; [https://media.ccc.de](https://media.ccc.de).

[https://media.ccc.de/v/32c3-7441-the_plain_simple_reality_of...](https://media.ccc.de/v/32c3-7441-the_plain_simple_reality_of_entropy)

<comment><USER19> Huh, they do a good job of making it look official. (Definitely more so than mediacccde.)

I'll have to link from media.ccc.de from now on.

</comment></comment></comment><comment><USER20> So what are the cases when you should _actually_ use /dev/random and not /dev/urandom? The article fails to address this in clear.

<comment><USER21> You shouldn't use /dev/random. The article makes that very clear.

<comment><USER20> /dev/random still exists for a reason, and I believe the reason isn't backward compatibility only.

<comment><USER21> " _The /dev/random interface is considered a legacy interface_, and /dev/urandom is preferred and sufficient in all use cases, with the exception of applications which require randomness during early boot time; ..."

From [http://man7.org/linux/man- pages/man4/urandom.4.html](http://man7.org/linux/man- pages/man4/urandom.4.html)

<comment><USER20> OK, "applications which require randomness during early boot time" is one such case. Thank you for pointing out.

<comment><USER22> No, it isn't. During early boot time, you should use the system call interface, not the special files.

</comment></comment></comment></comment></comment></comment><comment><USER23> I am so confused about this all the time. My solution is to go see what Go is using: [https://golang.org/src/crypto/rand/rand.go](https://golang.org/src/crypto/rand/rand.go) Trusting them to do the Right Thing.

Is there a good reason why /dev/random AND /dev/urandom exist?

<comment><USER24> What do you want the behaviour to be when there isn't enough entropy to provide high-quality random numbers? For cases where you need the random number right now, you probably just want the best-quality number available (urandom). For cases where it's an important random number you'll be using for a long time, like SSH/SSL key generation, you probably want to block until more entropy is available (random).

<comment><USER22> There's no such thing as a "low quality random number" from a CSPRNG. The outputs of a CSPRNG are either insecure, because the CSPRNG hasn't been seeded properly, or they're secure --- for all intents and purposes, forever. That's the problem with the old version of the Linux man page.

The new version of the man page resolves this problem, and says outright that urandom is the preferred interface, and that /dev/random is obsolete; applications that run during early boot time should instead use the system call interface.

<comment><USER24> > The outputs of a CSPRNG are either insecure, because the CSPRNG hasn't been > seeded properly

In what sense is this not a "low quality random number"? Every CSPRNG I've seen will output numbers that pass many statistical tests for randomness even if seeded with e.g. zero - is that not a "low quality random number" in the usual sense of those words?

<comment><USER12> What they are getting at is that thinking of this in terms of the "quality of the randomness" is thinking about it in quite the wrong way that leads one right up the garden path; so stop even thinking about it like that. Discard that mental model.

The randomness has the _same_ quality. It's the same pseudo-random number generation algorithm. Only in one case, the world knows your seed value, and can predict anything that you do that derives from pseudo-randomness; whereas in the other case, the world does not know your seed value, should your seed value be discovered somehow you are regularly re-seeding anyway, and the world cannot predict your actions.

</comment></comment></comment></comment></comment><comment><USER25> I bought a TrueRNG v3 [0] a month or so ago and have been using it with rngd / rng-tools.

I wish rngd was easier to use with multiple entropy sources, however. Even w/ RDRAND (times two -- dual CPUs), a TPM, and the TrueRNG, it's difficult to (easily) tell which of these are being used and/or if more than one is being used.

Ideally, I'd like to be able to tell rngd to use/mix the TrueRNG, RDRAND in both CPUs, the TPM, and any other entropy sources I may come up with, such as RTL-SDRs doing funky things [1]. I suppose I could just run multiple instances of rngd, though.

Anyway, I've switched to just using /dev/random for pretty much everything (where it can be configured) since, with the TrueRNG, it never blocks on me now.

[0]: [http://ubld.it/truerng_v3](http://ubld.it/truerng_v3)

[1]: [https://www.google.com/search?q=rtl- str+entropy](https://www.google.com/search?q=rtl-str+entropy)

<comment><USER22> Why would you do this? What problem is a USB hardware RNG solving for you?

<comment><USER25> In this particular case, I'm evaluating it on my workstation. The intended use, however, is for an offline, headless machine (that is normally powered off) that is used to generate cryptographic keys.

Do I absolutely _require_ it? Probably not. For $50, though, I thought "might as well try it".

<comment><USER22> I would recommend you not do this.

</comment></comment></comment></comment><comment><USER26> What I've got from this thread is that you never touch security-related prngs unless you're an expert in security, cryptography and operating systems, _all at the same time_ , and even then you care a lot. Thanks for deeper debunking.

</comment><comment><USER27> The advice on this page is accurate and in line with what cryptography experts will recommend.

That said, if you're looking for more of the _how_ and less of the _why_ : [https://paragonie.com/blog/2016/05/how-generate-secure- rando...](https://paragonie.com/blog/2016/05/how-generate-secure-random- numbers-in-various-programming-languages)

Contains snippets and recommendations for C/C++, Erlang, Go, Java, (Browser) JavaScript, .NET, Node.js, PHP, Python, Ruby, and Rust.

<comment><USER28> Though you're answering a different (more relevant, but different) "how". That's "how do I find a library for random numbers". The article is focused on getting random numbers directly from the Linux kernel, and the "how" there is invoking getrandom(buffer, len, 0).

</comment></comment><comment><USER29> This is really no problem now that Intel chips ship with RDRAND instructions. Linux should follow BSD/Mac's footsteps and incorporate a good CSPRNG non- blocking devices (after seed). I believe BSD is moving towards Fortuna, which is perfect for this use-case.

With these instructions you'll always get a "good"[1] seed for your CSPRNG, and that includes virtual machines and clones.

[1] Of course that depends on how much you trust Intel. Don't ask the crypto mailing lists whether this is a good idea :-)

<comment><USER30> From Theodore Ts'o, 2012:

"Create a new function, get_random_bytes_arch() which will use the architecture-specific hardware random number generator if it is present. Change get_random_bytes() to not use the HW RNG, even if it is avaiable.

...

So it's much better to use the HW RNG to improve the existing random number generator, by mixing in any entropy returned by the HW RNG into /dev/random's entropy pool, but to always _use_ /dev/random's entropy pool."

[http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.g...](http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=c2557a303ab6712bb6e09447df828c557c710ac9)

<comment><USER29> I'm not sure I'd say it's better or worse. I think it's unnecessary. You only need like ~16 bytes of a random seed and your CSPRNG will run forever with unlimited unpredictable stream of bits.

Intels instructions perform the same as a HWRNG only it's built in to every chipset >= Ivy bridge. I actually think Linux's rng-tools incorporates it as a mix automatically.

</comment></comment></comment><comment><USER31> One to add - it's not fast at providing a value

I remember learning this when I found /dev/urandom multiple times slower than /dev/null while writing garbage data to disk.

<comment><USER32> Oh really :)

</comment></comment><comment><USER33> its like aes 128 bit vs aes 256 bit, both are secure but when in doubt me, you and the nsa choose 256 bit

</comment><comment><USER34> "And even if you need that peace of mind, let me tell you a secret: no practical attacks on AES, SHA-3 or other solid ciphers and hashes are known in the "unclassified" literature, either. Are you going to stop using those, as well? Of course not!"

[http://www.pcworld.com/article/3117728/security/why- quantum-...](http://www.pcworld.com/article/3117728/security/why-quantum- computing-has-the-cybersecurity-world-white-knuckled.html)

[https://en.wikipedia.org/wiki/Grover's_algorithm](https://en.wikipedia.org/wiki/Grover's_algorithm)

<comment><USER35> "Practical attacks". "Quantum computers".

I fail to see how these might be related.

<comment><USER34> If you're working on storing cat videos on your personal website, I completely agree.

<comment><USER35> No, I'm storing urandom articles on my personal website.

Cat videos are much too popular and a lot bigger, and since I'm paying for traffic... [0] ;-)

[0] regular traffic: ~30 MB/day, today (projected): ~3.5 GB</comment></comment></comment></comment>


100 Best Websites For Entrepreneurs - <AUTHOR> http://www.forbes.com/sites/natalierobehmed/2013/11/12/100-best-websites-for-entrepreneurs/

<comment><USER2> The list ("standout posts" are according to Forbes):

1\. On Startups (onstartups.com) 2\. For Entrepreneurs (forentrepreneurs.com) 3\. Steve Blank (steveblank.com) 4\. Startup Lawyer (startuplawyer.com) 5\. Rock the Post (rockthepost.com) 6\. Venture Hacks (venturehacks.com) 7\. Dutiee (dutiee.com) 8\. Chris Dixon --> standout post ([http://cdixon.org/2013/06/01/some-thoughts-on- mobile/](http://cdixon.org/2013/06/01/some-thoughts-on-mobile/)) 9\. Quora (I mean, Quora's awesome, but they just phoned this one in) 10\. Ladieswholaunch (Ladieswholaunch.com) 11\. Angel List (angel.co) 12\. First Round Capital (firstround.com/review) 13\. Epic Launch (epiclaunch.com) 14\. A VC (avc.com) 15\. Business Owner's Toolkit --> standout post [http://www.bizfilings.com/toolkit/sbg/run-a- business/exiting...](http://www.bizfilings.com/toolkit/sbg/run-a- business/exiting/tax-aspects-of-selling-business.aspx) 16\. Tom Tunguz's blog (tomtunguz.com) 17\. Chic CEO (chic-ceo.com) 18\. This is Going to be Big --> standout post: [http://www.thisisgoingtobebig.com/blog/2013/7/18/the-hook- th...](http://www.thisisgoingtobebig.com/blog/2013/7/18/the-hook-the-most- important-part-of-a-pitch.html) 19\. All Business --> standout post: [http://experts.allbusiness.com/5-seo-bare-minimums-busy- busi...](http://experts.allbusiness.com/5-seo-bare-minimums-busy-business- owner/11204/#.UoMwjZSkfgF) 20\. Above the Crowd --> standout post: [http://abovethecrowd.com/2009/08/24/what-is-really- happening...](http://abovethecrowd.com/2009/08/24/what-is-really-happening-to- the-venture-capital-industry/) 21\. Forte Foundation (fortefoundation.org) 22\. PG's blog --> standout post: [http://paulgraham.com/ds.html](http://paulgraham.com/ds.html) 23\. Medium --> standout post: [https://medium.com/i-m- h-o/40cf0a8919cb](https://medium.com/i-m-h-o/40cf0a8919cb) 24\. Ben Horowitz's blog --> standout post: [http://bhorowitz.com/2012/10/17/making-yourself-a- ceo/](http://bhorowitz.com/2012/10/17/making-yourself-a-ceo/) 25\. The Boss Network 26\. The Entrepreneurial Mind (drjeffcornwall.com) 27\. A Smart Bear --> standout post: [http://blog.asmartbear.com/unprofitable-saas-business- model....](http://blog.asmartbear.com/unprofitable-saas-business-model.html) 28\. America's SBDC Blog (asbdcbizblog.blogspot.com) 29\. Startup Company Lawyer (startupcompanylawyer.com) 30\. Both Sides of the Table --> standout post: [http://www.bothsidesofthetable.com/2013/05/27/8-tips-to- get-...](http://www.bothsidesofthetable.com/2013/05/27/8-tips-to-get-the-most- out-of-your-investors-and-board/) 31\. Escape from Cubicle Nation ([http://www.escapefromcubiclenation.com/pamela-slims- blog/](http://www.escapefromcubiclenation.com/pamela-slims-blog/)) 32\. Brazen Life ([http://blog.brazencareerist.com/category/entrepreneurship-2/](http://blog.brazencareerist.com/category/entrepreneurship-2/)) 33\. Small Business Labs (smallbizlabs.com) 34\. All Things D (allthingsd.com) 35\. Smarta (smarta.com/blog) 36\. VentureBlog --> standout post: [http://www.ventureblog.com/2013/09/want-to-get-funded-get- an...](http://www.ventureblog.com/2013/09/want-to-get-funded-get-an- introduction.html) 37\. Practice Trumps Theory (originally read this as "Practice (Donald) Trump's Theory" and immediately clicked on the link) (practicetrumpstheory.com) 38\. reddit:startups (reddit.com/r/startups) 39\. Business Opportunities Weblog (business-opportunities.biz) 40\. Copyblogger (copyblogger.com/blog) 41\. Andrew Chen (andrewchen.co) 42\. Crunchbase 43\. Duct Tape Marketing (ducttapemarketing.com/blog) 44\. Entrepreneur.com 45\. Entrepreneurship.org 46\. 500Hats.com 47\. FinSME's (finsmes.com) 48\. FTC - Franchise and Business Opportunities ([http://www.ftc.gov/bcp/franchise/netfran.shtm](http://www.ftc.gov/bcp/franchise/netfran.shtm)) 49\. Freelancers Union (freelancersunion.org) 50\. Harvard Business Review Blogs 51\. Josh Kaufman (joshkaufman.net/blog) 52\. Hacker News 53\. Jonathan Fields (jonathanfields.com/read) 54\. KissMetrics (blog.kissmetrics.com) 55\. Blog Maverick (blogmaverick.com) 56\. Microsoft Small Business Hub ([http://www.microsoftbusinesshub.com/News_and_Updates/Small_B...](http://www.microsoftbusinesshub.com/News_and_Updates/Small_Business_Info_Center)) 57\. Instigator Blog (instigatorblog.com) 58\. Noobpreneur (noobpreneur.com) 59\. National Association for the Self-Employed (nase.org) 60\. Mixergy (mixergy.com) 61\. New York State Society of CPA's (nysscpa.org/glossary) 62\. Marie Forleo (marieforleo.com) 63\. ReadWrite --> standout post: [http://readwrite.com/2013/11/11/how-to-deal-with-the- psychol...](http://readwrite.com/2013/11/11/how-to-deal-with-the- psychological-toll-of-starting-up#awesm=~omWmb7du47qZub) 64\. SBA.gov 65\. RocketWatcher.com 66\. QuickSprout (quicksprout.com/blog) 67\. Seth Godin (sethgodin.typepad.com) 68\. Score (score.org) 69\. Stack Overflow 70\. SaaStr (saastr.com) 71\. Startup Lessons Learned (startuplessonslearned.com) 72\. The Startup Donut (startupdonut.co.uk) 73\. PandoDaily 74\. Startup Meme (statupmeme.com) 75\. Startup Nation (startupnation.com) 76\. TED 77\. Global Small Business Blog (globalsmallbusinessblog.com) 78\. The Funded (thefunded.com) 79\. Tech Cocktail (tech.co) 80\. The Art of Running a Small Business (boss.blogs.nytimes.com) 81\. Twitter 82\. How To Change The World (blog.guykawasaki.com) 83\. Young Upstarts (youngupstarts.com) 84\. Your Success Now (ysn.com/blog) 85\. Women 2.0 (women2.com) 86\. Danny Brown (dannybrown.me) 87\. Under 30 CEO ([http://under30ceo.com/category/entrepreneurship-2/](http://under30ceo.com/category/entrepreneurship-2/)) 88\. OkDork (okdork.com/blog) 89\. Chris Brogan (humanbusinessworks.com 90\. Marco.org 91\. eCorner (ecorner.stanford.edu) 92\. Startup Digest (startupdigest.com) 93\. One Million by One Million (sramanamitra.com) 94\. Innerpreneur (elasticmind.ca/innerpreneur) 95\. Bloomberg Businessweek: Small Business News (businessweek.com/small-business) 96\. The Economist 97\. TechCrunch 98\. Inc. (inc.com/startup) 99\. Fast Company</comment>


80s pool jams + 80s VHS footage = http://poolside.fm - <AUTHOR> http://poolside.fm/

<comment><USER2> Beat the winter blues!

Best part of it is that I get to listen to hot 80s jams while I dissect the web construction of the site.

</comment><comment><USER3> i'd really like an app for this for my phone. i love the music and visuals.

</comment><comment><USER4> I thoroughly enjoyed this.

</comment><comment><USER5> Nice!</comment>


Yahoo Should Buy Microsoft - <AUTHOR> http://www.cringely.com/2009/02/yahoo-should-buy-microsoft/ <comment><USER2> What he's actually claiming is that Yahoo! should buy _MSN_ , so that MSN gets the benefit of Yahoo!'s alleged knowledge of how to make money online, and Yahoo! gets the benefit of having MS as a significant minority owner, which supposedly would stop them doing silly things that, er, stop them making money online. The whole thing seems to depend on two contradictory ideas about the relative cluefulness of Yahoo! and MS.

The nearest I can come to making sense of this is: Cringely thinks that Yahoo! understand _how_ to make money by doing business online, but that the management of Yahoo! doesn't really care whether they make money or not and therefore doesn't bother to do the right things rather than the wrong things. In that case, having MS as a substantial shareholder might enable MS to pressure Yahoo! into trying to make money. But this strikes me as very silly indeed.

Anyway. Can some kind person with the necessary awesome powers please change the HN title to "Yahoo should buy MSN"?

</comment><comment><USER3> What total nonsense. MSN is losing money, sure. But the combined power of MSN and MSNBC give microsoft mindshare that you could only dream of if you had to go and buy advertising to get the same effect.

Last I checked it was Microsoft looking to buy Yahoo, not the other way around. Between MSN and live.com they have traffic galore, and it would certainly help to solidify microsofts position on the internet.

Especially given that long term they will have to go head to head with Google, every little bit will help then. The blatant anti-trust violations that Microsoft practiced in the past will no longer be tolerated, and the opponent is actually 'qualified' this time, and has a very solid business model.

</comment><comment><USER4> Random ramble.. One, a company's assets (let alone possible innovative deal terms where yahoo don't have to spend much) should seem like it can buy another company. Which in this case is a clear no.

Secondly, given the way yahoo screwed up overture and many other great acquired products and people, they definitely cannot run a serious OS or software business, not even half as good as MSFT runs it today.

The only good thing that can happen is someone really focuses on the huge content and community portals that yahoo has been a leader in well.

</comment><comment><USER5> Wait a second... Cringely is concerned about Microsoft screwing up Yahoo?

Yahoo. The company which has been incapable of implementing business-friendly search advertising after more than a decade of trying? _That_ Yahoo?!?

Heck, if Yahoo's Sponsored Search provided the same limited functionality Microsoft Live delivers today, we'd be happy to shovel buckets of advertising dollars their way. Yahoo is definitely not the zombie one would want in charge of that business partnership.

</comment><comment><USER6> The post title is "link bait" to front up the begging letter at the bottom of the item.

</comment><comment><USER7> I read a great article about an airplane manufacturer that had tight operations and grew at a solid, relatively slow rate. They had a really solid engineering corps, and didn't hire new engineers for certain But wasn't hiring much on certain parts of their engineering corps. Then they look around, and realize in a decade, everyone's going to retire and they'll lose all the knowledge that wasn't handed down. All that expertise, know-how, common sense, and hard lessons learned were going to evaporate if they didn't have young people working on it, and veterans handing down the valuable lessons.

Microsoft absolutely needs to be developing and growing online business for the innovation and expertise that come from it. Even if they lose money on most of their online ventures, they _still_ need to do it. Who thinks the desktop OS and business software is going to be a huge cash cow in 20 years? MS needs smart people learning, building, experimenting, and doing cool stuff online to keep going.</comment>


2013 NIPS Proceedings – Advances in Neural Information Processing Systems - <AUTHOR> http://papers.nips.cc/book/advances-in-neural-information-processing-systems-26-2013?

<comment><USER2> Alexandre Passos has an excellent editorial selection of NIPS 2013 papers (along with some comments) on his blog at [1].

[1]: [http://atpassos.me/post/67560831508/nips-2013-reading- list](http://atpassos.me/post/67560831508/nips-2013-reading-list).

</comment><comment><USER3> Now prove each of those titles isn't auto-generated by the HN headline generator.

</comment><comment><AUTHOR> This is an interesting case study in how the submitted headline affects the page's rank on HN.

I'd originally submitted this earlier today, with the headline "Neural Information Processing Systems (NIPS) 2013 Proceedings": [https://news.ycombinator.com/item?id=6815771](https://news.ycombinator.com/item?id=6815771)

It only got one other upvote and never made it to the front page. Meanwhile, another article submitted at almost exactly the same time with far less interesting content but a more provocative headline (on a user getting banned from Uber for API abuse) got ~15 votes, pushing it onto the front page.

I re-submitted this page with a slightly more descriptive (and buzzwordy) headline ("State of the art Machine Learning papers: NIPS 2013"), and it almost immediately ended up on the front page. Since then the headline has been reverted to the page's headline, again slowing the rate at which it's received votes.

<comment><USER4> Interesting, but maybe too much witch-hunting? I mean, the title influence could've had as much impact as the time of posting.

Your first post did not hit HN's RSS feed (IIRC, at least 3 votes are needed for the vanilla feed), otherwise I would've upvoted it. This one did.

<comment><AUTHOR> Ha, potentially. The dangers of drawing conclusions from N=2.

</comment></comment></comment><comment><USER4> while we're at it, here's from ICML2013

[http://icml.cc/2013/?page_id=47](http://icml.cc/2013/?page_id=47) (click on the schedule images)

<comment><USER5> For those of you studying computer vision, the entire CVPR2013 proceedings are released under open access: [http://www.cv- foundation.org/openaccess/CVPR2013.py](http://www.cv- foundation.org/openaccess/CVPR2013.py)

In a few days, ICCV 2013 papers will be published too: [http://www.cv- foundation.org/openaccess/ICCV2013.py](http://www.cv- foundation.org/openaccess/ICCV2013.py)

</comment></comment><comment><USER6> By the way, just this evening I formatted the accepted papers in a nicer way: (okay, I'm biased)

[http://cs.stanford.edu/people/karpathy/nips2013/](http://cs.stanford.edu/people/karpathy/nips2013/)

The page allows you to toggle LDA topics and off to browse the papers, or (my personal favorite) find a paper you like and sort the other papers according to tf-idf similarity, which tends to reveal exceptionally relevant papers.

<comment><USER7> Very, very nice job. Your page is a great is example of sane, simple and functional data visualization.

I've been sifting through these papers trying to prioritize by to relevance to my work so that I can get them into mendeley and dig in. You just made it a lot easier. Looks like a pretty good haul this year, for me :-)

</comment></comment><comment><USER8> Now the game is : Among these tons of (bad/good) applied mathematics , find the maybe existing one paper that will : \- Have a real world application \- Go through the years

More difficult : only by reading titles.

<comment><USER9> This attitude is pretty tedious. In research we can't predict in advance what will have lasting value. That's why it is called research. Same thing in applies in startups.

<comment><USER8> Tons of papers are published every year for the sake of publication, careers, .... absolutely not for the sake of science. Most of them do not even contain any significant delta with previous research.

An important activity of the researcher is to sort between interesting papers and garbage, since the selection process of even high level conference is deeply broken.

Just read SIGIR proceedings where every paper beats the previous baseline by 0.X % on datasets that do not represent the real problem, it's just an example among many others.

Also check this interesting analysis where the authors analyse best vs top cited papers over a span of ten years: [http://arnetminer.org/conferencebestpapers](http://arnetminer.org/conferencebestpapers)

Here you can see that some conferences where able to identify lasting value and others not.

<comment><USER10> So only pure breakthroughs are valued in science, everything else is "garbage?" Interesting perspective you have there.

<comment><USER8> That's absolutely not what I wrote.

I said that the motivations behind academics to publish lead to the publishing of tons of papers that while being scientifically correct (at least for top- tier conferences) bring absolutely nothing to the party.</comment></comment></comment></comment></comment>


Doug Engelbart's Chorded Keyboard now available for touchscreens - <AUTHOR> http://www.geek.com/articles/mobile/one-handed-keyboard-now-available-for-touchscreens-2012029/ <comment><USER2> As these devices get smaller, I can imagine morse code returning to fashion. Seriously: is there any better way to input text to a wristwatch? I'd much rather a morse key than the text entry systems dumb phones have today.</comment>


The Coronation: A thought provoking article on Coronavirus, Censorship & Control - <AUTHOR> https://charleseisenstein.org/voice-recordings/the-coronation/ <comment><AUTHOR> Hi guys! I want to share with you this very thought provoking article on Coronavirus, Control, Censorship, and many topics more written by Charles Eisenstein. I think it's very important to share this kind of work in times where big corporations are pushing the censorship on their big platforms on behalf on the pandemics, governments limiting the civic rights, and there's a lot of information pollution out there.

Hope the enjoyed it as much as I did reading it. Keep the eyes sharp.

Have a nice day! Greetings from Chile</comment>


Legality is no defense: UKNova shuttered despite respect for copyright holders - <AUTHOR> http://www.extremetech.com/computing/135082-legality-is-no-defense-uknova-despite-respect-copyright?utm_source=rss&utm_medium=rss&utm_campaign=legality-is-no-defense-uknova-despite-respect-copyright <comment> steve-howard Just because the content wasn't available for purchase doesn't mean it wasn't copyrighted. I am not familiar with UK law and am open to correction, but it sounds like this was still illegal. Not that I think it's such a bad thing, but "Legality is no defense" is just linkbait.

</comment><comment><USER2> The title doesn't match the story. UKNova's policy may be morally good and "respectful" of copyright holders, but what it isn't is legal; just because the DVDs won't be out for another 15 days doesn't mean you have a license to distribute a copyrighted TV show.</comment>


App that uses face recognition to let you get all the photos friends take of you - <AUTHOR> http://photokharma.com/

<comment><USER2> Will this also track down possible revenge porn? That might be a bigger market than "traditional" social.</comment>


Show HN: Madness, a Powershell GUI for Managment of Active Directory Accounts - <AUTHOR> https://github.com/chair6/madness <comment><AUTHOR> Funny how a simple "what if AD user management looked different" discussion can lead fairly quickly to 700 lines of Powershell that makes ten people's jobs somewhat easier.

I can't exactly say I'm proud of this, but I was somewhat surprised by how relatively easy it was to pull a basic GUI together...

</comment><comment><USER2> If you'd like to look at an alternative commercial solution in a similar vein, we offer Directify. It's offers self-serve management through a web interface. It works with any LDAP server and works on Linux & Windows platforms: [https://www.dirwiz.com/directify](https://www.dirwiz.com/directify)

</comment><comment><USER3> I'll be honest, I had no idea powershell could be used to build GUIs! I found it impressive enough just on its CLI merits.</comment>


iPhone 6 triggers record number of Android switchers - <AUTHOR> http://bgr.com/2015/07/22/iphone-vs-android-switchers

<comment><USER2> It's the perfect old people phone (disclaimer: I wear reading glasses, but I'm not planning to switch ... ever). Easy to use and a big screen. It highlights that some of the "diversity" of android can be, and is, good for Apple.</comment>


FEMA says it may bill fire victims if it can't get $4B from PG&E - <AUTHOR> https://www.sfchronicle.com/california-wildfires/article/FEMA-says-it-may-bill-fire-victims-if-it-can-t-14968147.php <comment><USER2> > FEMA told The Chronicle that it is compelled to seek compensation from PG&E. > Otherwise, individual victims would be on the hook if they get settlement > money that duplicates funds already paid by the federal government, > according to Bob Fenton, the agency's regional administrator.

Seems reasonable.

<comment> java-man We really could have used those 4 trillion dollars we spent on the last two wars...

<comment><USER3> A) How'd we jump from billions to trillions?

B) Is that an argument against not double paying these people?

C) Are you being sarcastic or do you really believe we should be increasing military spending? Poe's Law is rearing its ugly head.

D) If you're not being sarcastic, why do you think we should increase military spending?

<comment><USER4> It's a totally valid point. Our current finances are the result of past financial decisions.

Despitr the magic money machine narratives that are so popular today we cannot just make unlimited more money when we need it without sever condequences. So spending vast sums in the past affects our ability to help us citizens in need today.

</comment></comment></comment></comment><comment><USER5> Interesting, so it sounds like FEMA believes bankruptcy doesn't prevent debt from being recovered, it just means you target the other creditors?

I didn't realize that was an option?

</comment><comment><USER6> Privatize profits, socialize costs

<comment><USER7> You are being downvoted and yet the new PG&E CEO is to get twice the pay: [https://www.bizjournals.com/sanfrancisco/news/2019/04/16/new...](https://www.bizjournals.com/sanfrancisco/news/2019/04/16/new- pge-ceo-salary-double-geisha-williams.html)</comment></comment>