Ask HN: Good Microservice framework/toolkit for golang - <AUTHOR> I'm trying to convince my management to switch to microservices for which I need a POC (Proof of Concept) of the same. I need a good starting point to build microservices using Golang. I've come across 3 of the same during my searches but I'm not sure which one should I choose:
1. Go-Kit (https://github.com/go-kit/kit) 2. Kite (https://github.com/koding/kite) 3. Go Micro (https://github.com/micro/go-micro)
I'm really interested in experiences of others with the above frameworks/toolkits. I know about gRPC and ProtoBuf but I believe it's a bit cumbersome to integrate with other systems especially for beginners.
Here are a couple of things that I need: 1. Simple integration with other systems 2. Simple Development process 3. Kubernetes Deployment
Also, I would like to know what type of development and deployment process do you use. For e.g should I be using a build system like bazel, pants etc or are there other ways to achieve the same.
I don't have any experience in the area of microservices (at least professionally). Any pointers and personal experiences will really help in making correct decisions.
PS: Currently we use PHP in an almost monolith type of system. <comment><USER2> You're trying to add a massive amount of complexity and new technologies. That makes it much more likely this process fails, and is the opposite of what a proof-of-concept will give you.

A build system like bazel or pants is not really related to deployment. You're overthinking this.

As alternative, try to do a _small_ proof-of-concept: take one feature from your monolith and move it out. Can use PHP, doesn't have to be new language. Don't pick tools in advance, instead just go and do it and pick tools based on the problems you encounter. This will give you a much better and realistic sense of what problems are relevant in _your_ particular setup. And will also make it much more likely your project will succeed and get management buy-in.

</comment><comment><USER3> > I'm trying to convince my management to switch to microservices.

I hope for your own sake that management will refuse your request.

</comment><comment><AUTHOR> After going through all the comments I believe it's better to try and break the monolith application into smaller services rather than going for microservices. I'll approach the management with same, rather than with microservices. Appreciate the advice from everyone.

</comment><comment><USER4> You probably don't want microservices, just small, normal, sane, "context bound" services.

Microservices come at a huge cost if done well. Just watch a talk from netflix/uber/... method calls become remote requests, so you need fallback strategies, log tracing, service discovery, circuit breaking, ...

As long as you can do merges on your codebase without horrible problems, you almost certainly don't need microservices.

Splitting a huge laravel/symfony/cakephp app into a few smaller ones, that is probably a good idea, and you don't need any particular tooling to do it.

</comment><comment><USER5> Without building anything yet, can you articulate why you're requesting the switch to microservices?</comment>


Ask HN: One-way live video interview tips? - <AUTHOR> Hi,
Recently, I applied for a job but was given one-way video interview link - with sonru (https://www.sonru.com/).
I've never done one-way interview (live and recorded). I feel like I will likely be judged on my reaction to questions - hopefully not with some ML
Any tips for this sort of interview, how have you experience something like this? <comment><USER2> If you have the means, I suggest declining this interview. This is disrespectful to the candidates and speaks to a lack of care on the part of the hiring company.

That said, I recognize that you may not be in a position to decline, so I'll give the best advice I can. The closest I have done is a set of coding exercises while on the phone with a recruiter, but they knew nothing about the coding exercises - they were basically just on the call to supervise. I wasn't recorded on video, but the text editor and audio were recorded. It was intensely uncomfortable and felt like I was talking to myself the whole time, and I ended up stumbling all over myself trying to explain with zero feedback, trying to ask clarifying questions to the recruiter and getting "I'm sorry, I don't know" every time. The only thing I can think of that would have really helped is to practice monologueing while doing hackerrank problems.

</comment><comment><USER3> Is this a regular job, contract job, or remote job?

For a regular job, when I interview for a position, typically, I ask a lot of questions, as I assume most people do. The primary objective is to determine if it is somewhere you would be happy with.

For a contract job, that is less important, you are a hired gun to get the job done.

IMHO I would go with the attitude: I do not want your POS job if this is how you treat me. If you get an offer, then turn it down, and tell them they are too rude to work for.

<comment><AUTHOR> The company is in Canada (engineering consulting firm, large-scale infrastructure projects - mining etc)

Role is mainly around data/modelling work in water resource group. I have done bunch of tech jobs (from backed development, modeler-ml) - so this is relatively new industry for me.

<comment><USER3> I assume you are in Canada too?

I looked at the company you linked, seems like an interesting idea, I am curious what your results are. Does that 'interviewing company' provide valuable information about the company that they are interviewing you for?

</comment></comment></comment><comment><USER4> This type of interview seems tremendously disrespectful to the candidate. You can tell a lot about any company that thinks this is a remotely acceptable thing to subject a candidate to.

Unless you are very interested in the particular company, or your situation is dire, I would suggest declining this sort of "interview."

</comment><comment><USER5> This sounds terrible. If you decide to participate, please share your experiences (if you can <3)

good luck !

<comment><AUTHOR> I asked HR, if I can avoid the sonru interview, and do phone call instead.

The HR team accommodated me.

<comment><AUTHOR> I learned from the colleague that this is the standard practice in the industry - engineering consulting at big firms</comment></comment></comment>


Firebird from the beginning: 3 decades of innovation - <AUTHOR> http://www.youtube.com/watch?v=jLG3I57XwHw

<comment><AUTHOR> To have some background material to read before/after this presentation

<http://www.firebirdsql.org/en/historical-reference/></comment>


Imperio – open-source JavaScript library to Control Laptop browser using mobile device - <AUTHOR> https://www.imperiojs.com/ <comment><AUTHOR> imperio is an open source JavaScript library (name inspired by Harry Potter) that enables developers to build web applications that harness the power of mobile devices communicating sensor and gesture data to other devices in real- time. imperio provides developers an easy-to-use API, configurable middleware to easily set up device communication rules, and automatically initiates optimal data-streams based on browser compatibility with minimal code to get started.</comment>


Post-Apocalyptic Radio from the Future - <AUTHOR> https://frequency2156.com/ <comment><AUTHOR> Something to listen to, an audio project. Upload to contribute or search the World to discover potentially interesting messages / audio snippets.</comment>


VMware to virtualize Android smartphones for business users - <AUTHOR> http://www.networkworld.com/news/2010/120710-vmware-virtualizes-lg-android.html

<comment><AUTHOR> Does anyone know if modern ARM designs include hardware virtualization extensions along the lines of vt-x and vt-d? It seems like a pure software virtualization approach along with full device emulation like vmware had to use in the dark days would be too heavy on a 1ghz/512mb platform. Maybe this is one of the drivers of the dual core arm adoption.

It's interesting that vmware is clear to say that they'd be guest agnostic - allowing whatever the user wanted to be emaulated. So while the use case here is android on android, I could see a real use for running a slimmed down but industry standard linux guest that could provide a standard dev/test environment for development. Sure the ui wouldn't be phone oriented, but plenty of LAMP installations run headless anyway. What other OS's have ARM support?

<comment><USER2> The Cortex-A15 (Eagle) design will have the option of hardware virtualization support ( [http://www.arm.com/products/processors/technologies/virtuali...](http://www.arm.com/products/processors/technologies/virtualization- extensions.php) ). No word on exactly what that means yet.

ARM's lower IPC and frequency may increase the time overhead of pure host-side virtualization or paravirtualization slower, but ARM is also a less convoluted architecture from a system software point of view, and may well have less state to virtualize, so the two may cancel each other out to some extent.

As for other operating systems with ARM support: iOS, several BSDs, RISC OS ( <http://www.riscosopen.org/content/downloads> ), Haiku ( <http://www.haiku- os.org/> ), and all manner of RTOS and other embedded operating systems. Oh, and Windows CE, Windows Embedded Standard, Windows Embedded for Point of Service, Windows Phone 7, etc.

</comment></comment><comment><USER3> My N900 is dual booting Maemo and Android. It totally makes sense to have two operating systems on the same phone and I could certainly see many advantages to being able to quickly switch between the two.

</comment><comment><USER4> ... This is totally stupid.

Issues; 1) Battery life 2) Heavy CPU/Memory Usage 3) Decreased device life (due to heavy usage) 4) Potential of overheating -- heavy usage combined with no fans 5) Most smart phones don't support it 6) Most phones have small storage capacity 7) Who wants their company running all their stuff on their phone then having to switch to a different VM to use your phone?

Companies stop being cheap and just give the staff that need it a phone with remote wipe just encase. Problem solved.

<comment><USER5> I think this is brilliant... but only if engineered correctly. Why carry around two devices: personal and work? If you have the need for a work phone with remote wipe, you'd be stuck carrying around two different phones. I'd much rather have one physical device, but then a second virtual phone built-in with a different number, address book, and possibly apps. Battery life/CPU/memory usage should be the same as any smart phone. There are no moving parts in a phone, so you wouldn't have a problem with life or overheating.

I think that you're thinking about this in the wrong way... this is a first step towards a good goal: minimizing the stuff you have to carry in your pocket. Your personal phone would be the primary phone. But then a managed "work" phone would be the virtual one. Your company would be in complete control over the virtual phone, but you could still have your personal email, apps, etc...

This also could solve the problem of the employee who wants an iPhone, but their company has standardized on BlackBerries.

</comment></comment><comment><USER6> There is always the battery life issue but a hypervizor that recognized the limitations of a mobile phone (it will never run something like VMware Unity) it would certainly be able to perform pretty nicely. Looking forward to this.

</comment><comment><USER7> How did they get two numbers at once to work? Does one just run off the SIM, and the other (presumably business) run off a VoIP/SIP thing? GSM only allows one number per SIM right?

<comment><USER8> There is a growing number of dual-sim mobile phones on the market. The chief players are Samsung and LG, the latter of which is named in this article.</comment></comment>


A Stick Figure Guide to the Advanced Encryption Standard (AES) (2009) - <AUTHOR> http://www.moserware.com/2009/09/stick-figure-guide-to-advanced.html <comment><USER2> This is GREAT.

Does anybody know of / have a collection of explainers like these?

I've made a few myself:

\- How Cryptography Works [https://gun.js.org/explainers/data/security.html](https://gun.js.org/explainers/data/security.html)

\- How distributed systems work (Master-Slave vs P2P, CAP Theorem, CRDTs, etc.) [https://gun.js.org/distributed/matters.html](https://gun.js.org/distributed/matters.html)

Has anybody made their own / have some good ones to add?

<comment><USER3> Not exactly what you asked, but you may be interested in this blog post and the list of technical illustrations given at the end of it: How to teach technical concepts with cartoons ([https://jvns.ca/teach-tech-with- cartoons/](https://jvns.ca/teach-tech-with-cartoons/)).</comment></comment>


Ask HN: Help with survey about programmer job switches ($5 to charity for each) - <AUTHOR>

I am doing some research about why programmers switch jobs.
I would appreciate the HN community's thoughts in this survey. I will donate $5 for each one to your choice of (Girls who Code, Watsi, Kiva or Heifer).  I will post results somewhere and optionally email you if you want.
https://docs.google.com/forms/d/1VGgNA7lUKZl3Anl0AVqfMzG8R7nKSOos9DnWlSB0Dqw/viewform <comment><AUTHOR> Clickable: [https://docs.google.com/forms/d/1VGgNA7lUKZl3Anl0AVqfMzG8R7n...](https://docs.google.com/forms/d/1VGgNA7lUKZl3Anl0AVqfMzG8R7nKSOos9DnWlSB0Dqw/viewform)</comment>


Your Social Media Hashtags May Make You Legally Liable to Delta - <AUTHOR> http://viewfromthewing.boardingarea.com/2017/12/20/social-media-hashtags-may-make-legally-liable-delta/ <comment><USER2> Lol well I'm sure they had tons of people using those hashtags before...I'm guessing the like 8 people not being paid by Delta will stop now. Seems like kind a failure at marketing to me. Dissuading customers from using a tag that gives them advertisement.</comment>


2014's JavaScript versus today's – How things were before and how they are now - <AUTHOR> http://ejb.github.io/2016/05/09/how-my-code-has-changed-since-2014.html <comment><AUTHOR> I would like very much if someone could write how we were writing JavaScript in the 90's compared to 2016. That would be awesome!

<comment><USER2> This is how I learned (and wrote) JS around then. (I don't know when this originally existed, but I discovered it after switching from Prodigy.net to AOL):

[http://www.webmonkey.com/2010/02/Advanced_JavaScript_Tutoria...](http://www.webmonkey.com/2010/02/Advanced_JavaScript_Tutorial_- _Lesson_2)</comment></comment>


John Conway – The world's most charismatic mathematician - <AUTHOR> http://www.theguardian.com/science/2015/jul/23/john-horton-conway-the-most-charismatic-mathematician-in-the-world

<comment><USER2> (inventor of Conway's Game of Life)</comment>


Why We Should All Be Scared Of Lulu App - <AUTHOR> http://www.forbes.com/sites/kellyclay/2013/11/24/why-we-should-all-be-scared-of-lulu-app/ <comment><USER2> This is a stalking app, pure and simple. As the author says, it is for shallow people who are only interested in shallow relationships. Sooner or later, this app will lead to physical violence.

No need to be scared of Lulu unless you are one of the fools who actually uses it. For most people, this is nothing and in a couple of years it will be forgotten as one in a long string of silly hot or not apps.

</comment><comment><USER3> What if I create a female account, then Rate myself? Can social hacking get me laid?

<comment><USER4> IIRC you need to have a certain number of "real" fb friends (I'm assuming they judge this by connections to one another) to access it. A female friend of mine told me about it and showed me my ratings a few months ago. Cringeworthy.

<comment><AUTHOR> And the worst part is you can't get your profile deleted. I've had several male friends personally email the founder and she won't delete ratings or profiles.

<comment><USER5> Your friends should create a similar app for men to rate women they've dated. Whether it gets accepted or rejected, it'll provide an interesting insight into the minds of feminists(anti-sexism, equality, true feminists. not women- are-better-than-men wannabes).

</comment></comment></comment></comment><comment><USER6> Lulu for guys, can you see that? www.beasnitch.com

</comment><comment><USER7> This point could have been made more effectively without the typical self- congratatory Millennial bashing.

<comment><AUTHOR> It isn't bashing; it's highlighting some very relevant psychological truths about millennials as it relates to this app.

<comment><USER7> >"This demographic "dates" less and increasingly relies on social media to communicate."

This is at least a quantitative and verifiable claim. But similar statements could be made about the rise of the telephone, or the cultural/temporal shift from courtship to long-term relationships that aren't marriage. What of it?

>"As a result, the depth of their relationships is relatively shallow compared to those of older generations at the same point in their lives."

Categorically dismissing an entire demographic's ability to care about other human beings is kind of a big deal. This is a non-obvious and offensive claim. It could be true, but it definitely requires support; instead, you treat it like it's self-evident.

It's a favorite tidbit of conventional wisdom among columnists, sure. It has truthiness and makes its audience feel good about themselves, kind of like "the terrorists hate us for our freedom." That doesn't make it a psychological truth.

I also believe Lulu is a Bad Thing - people change, have different tastes, behave differently under different circumstances, are unduly influenced by others' opinions, could be mysteriously and permanently cut off from any chance at a relationship literally overnight by pissing off one articulate and/or creative Lulu user, etc. These are merely practical problems, before you even get into the ethical concerns of treating people like mass-produced goods.

But people who need to hear that are not going to be terribly interested in what you have to say after you openly insult them.</comment></comment></comment>


GDPR and Aggregated Contact Info - <AUTHOR> Hi! A bit confused about GDPR, so any insight would be very welcome. Let's assume I want to build a platform that strives to gather contact info of all the plumbers in the US. In order to do that I let clients who've hired plumbers in the past upload the plumber's contact info. After, say, 10 former clients have uploaded contact info for the same plumber the platform will then aggregate that data, publish it and make it available for everyone who's a registered user of the platform (basically, crowdsourcing).
Question: am I allowed to do this under the GDPR rules and how do I comply with them? <comment> Lorenz-Kraft I also think you are allowed to gather and publish those publicly available infos about a company, but why don't you just take existing informations (like from yellow pages) and use them? Also, why would someone upload those infos?

<comment><AUTHOR> The example with the plumber was for illustrative purposes to show that: 1) It's not company info, but a person's. Generally, this person wouldn't be opposed to having his info crowdsourced as it means more business. 2) Verifying if this information is publicly available can be time-consuming and tedious, so not something I'd want to get into. I.e., if this plumber walks around handing out flyers it's public, but you can't google him as he's not really into expanding his online presence.

</comment></comment><comment><AUTHOR> UPD: EU, not US!

</comment><comment><USER2> GDPR covers how to treat personal information for EU citizens. The US and it's citizens are not covered.

<comment><AUTHOR> sorry, meant to say EU:) good point, though!</comment></comment>


The Maps That Prove the Daylight Saving Cycle Is Ruining Our Lives - <AUTHOR> http://www.citylab.com/weather/2015/11/the-maps-that-prove-daylight-saving-is-ruining-our-lives/417600/?utm_source=wire <comment><USER2> The only thing the map proves is that the author's data is phony.

For example, El Paso TX is shown in the map as almost ZERO days having a sunrise time before 7AM. This is utterly phony. In the entire month of June, for example, the _latest_ sunrise is 6:03AM CDT... which is _5:03AM standard time_. (Source: [http://www.sunrisesunset.com/](http://www.sunrisesunset.com/))

In fact, sunrise was 7AM CDT or earlier from March 28 through October 3rd... _more than HALF the year!_

Nothing is _proven_ using phony data.</comment>


A central repo for sharing Meteor smart packages - <AUTHOR> https://atmosphere.meteor.com

<comment><USER2> How can I declare dependencies on node packages?

<comment><AUTHOR> You would have to manually curate the node package to work with Meteor and repackage manually. We're looking into ways Meteorite and Atmosphere can help with this, Thanks!</comment></comment>


King's Assembly is now wireless – a keyboard, mouse, and joystick in one - <AUTHOR> https://www.kickstarter.com/projects/70308014/kings-assembly-a-computer-mouse-full-of-awesome/posts/792935

<comment><USER2> I was cautiously optimistic about this device until they made it wireless. Now, I'm worried that it won't be responsive enough for its intended use, gaming.</comment>


This is the Modem World: The sinister side of the '80s BBS - <AUTHOR> http://www.engadget.com/2013/07/31/the-sinister-side-of-the-80s-bbs/ <comment><USER2> After acquiring an APPLE ][+ with also a Novation AppleCat][, a few months later I was able to get a super deal on a 64k ram card through a CALL A.P.P.L.E.group purchase for only $110.00. It astonishes me today I can get entire dated 9" netbooks on eBay for less with so much more living room.

CALL A.P.P.L.E.'s Val Golding, lived in a basement with many cats and dreamed 6502 assembly and would welcome anyone's voice calls.

I had the 15(?)th BBS in Seattle listed in the back of that freebie computer newspaper you could find on ferries(NW Computer User?).

Same here, the whole BBS social thing was accumulating vast index rows of copied 5.25" floppies.

The university had the unix shells and emacs, so ftp and telnet about brought us up today facile wise though we watched individual remote characters stream along at 300 baud.

Maybe why my favorite comfort space is still simple monochrome tty console.

I also had H19(~Z21) terminal and a 300 baud wooden phone handset box. The H19 was heavy as a populated desktop, and likely would still be functional if you could find one. I miss that modem handshake babble.

</comment><comment><USER3> Maybe I'm just jaded, but none of that sounds particularly sinister compared to what a few hours' work could net you via Tor or other deep web portals.</comment>


Shooting in SOMA 1 Block From Zynga, 2 Dead - <AUTHOR> http://abclocal.go.com/kgo/story?section=news/local/san_francisco&id=9170923

<comment><USER2> Not sure what relevance a shooting in a jewelry store has to do with HN...</comment>


How to Grow Old (1951) - <AUTHOR> https://sites.google.com/site/gobenyan/essay <comment><USER2> Great read, I just sent the link to some non-HN reading friends and my brother.

I am turning 68 in a few months and I try to do most of what he recommends. Enjoy younger family and acquaintances but also leave them to their lives, being satisfied to just enrich their lives materially and give them space. I had to think about the wording of his advice to persue 'impersonal interests' which for me is studying Go with a Korean Go master and learning those aspects of (general) artificial intelligence that most interest me, without much thought to practical considerations.

<comment><USER3> What exactly are those aspects of general artificial intelligenxe, and how does learning Go relate?

Any advice for those curious and interested but inaccessible to an instructor?

Thanks in advance, and happy 68!

<comment><USER2> As interesting as Alpha Go is, for me studying Go as a game and my interest in AGI (fusion of classic symbolic AI with deep learning, and deep learning in general) are separate interests for me.

Advice for learning Go without an instructor: buy a Go playing program (I like CS Pro on my iPad) that can analyze your games, showing you what your bad moves are and showing an alternative.

<comment><USER4> Curious what you're working on and if you have any specific references - I'm also interested in fusion of classic symbolic AI with deep learning

</comment></comment></comment></comment><comment><USER5> The last paragraph, to me, is most poignant:

"...in an old man who has known human joys and sorrows, and has achieved whatever work it was in him to do, the fear of death is somewhat abject and ignoble. The best way to overcome it -so at least it seems to me- is to make your interests gradually wider and more impersonal, until bit by bit the walls of the ego recede, and your life becomes increasingly merged in the universal life. An individual human existence should be like a river: small at first, narrowly contained within its banks, and rushing passionately past rocks and over waterfalls. Gradually the river grows wider, the banks recede, the waters flow more quietly, and in the end, without any visible break, they become merged in the sea, and painlessly lose their individual being. "

<comment><USER6> This goes with the adult/parent step. Your ego usually takes a deep hit. I'm sure lots of guys I've seen refuse to make babies did so because they knew it was the end of a side of them. They wanted to keep playing longer. Ego decrease is probably hardcoded for social purposes.

<comment><USER7> I'm 41 and I have still not managed to really confront the question of having children despite my wife being in her late 30s.

> I'm sure lots of guys I've seen refuse to make babies did so because they > knew it was the end of a side of them.

Well, yeah...that sounds plausible. So how do they solve this?

<comment><USER8> What solved it for me was my partner. She wanted a kid (I was 41, she was 36), I just kind of went with it - screaming inside - but when she was born everything changed. That was a few years ago now and I'm still coming to terms with it. Just let it happen.

I _never_ thought I'd have kids, but the right woman will overrule you. It's a much better experience than I thought, and sure, there are days when I think - this wasn't a great idea - but once your child is born, you're programmed to care for it - and it's nowhere as bad as I thought it would be.

<comment><USER9> > once your child is born, you're programmed to care for it

Someone should let my parents know that.

<comment><USER8> Yeah, I know what you mean. For myself, I find it helpful to remember that everyone is doing the best they can do to survive. And this can mean simply trying your best to look after yourself, if you aren't doing that well then you don't have much left over for anyone else.

<comment><USER9> I have no idea what you're trying to say or how it relates at all to my parents being abusive pieces of shit.

You're simply dead wrong that every person is somehow "programmed" to care for their offspring; don't go around spreading dangerous falsehoods.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> "An individual human existence should be like a river — small at first, narrowly contained within its banks, and rushing passionately past rocks and over waterfalls. Gradually the river grows wider, the banks recede, the waters flow more quietly, and in the end, without any visible break, they become merged in the sea, and painlessly lose their individual being."

I think he's describing Ego Death [https://en.wikipedia.org/wiki/Ego_death](https://en.wikipedia.org/wiki/Ego_death) it reminds me of this quote from André Gide:

"But, above this, there is still a higher state, to which Goethe achieves, the Olympian. He understands that originality limits, that by being personal he is simply anyone. And by letting himself live in things, like Pan, everywhere, he thrusts aside all limits until he no longer has any but those of the world itself. He becomes banal, but in a superior way.

It is dangerous to achieve too early that superior banality. If one does not absorb everything, one loses oneself completely. The mind must be greater than the world and contain it, or else it is pitifully dissolved and is no longer even original."

<comment><USER11> "Croyez ceux qui cherchent la vérité, doutez de ceux qui la trouvent."

\- André Gide

</comment></comment><comment><USER12> Bertrand Russell is awesome, there are quite a few good interviews with him on the youtube, my favourite is this one, on philosophy itself: [https://www.youtube.com/watch?v=gvOcjzQ32Fw](https://www.youtube.com/watch?v=gvOcjzQ32Fw)

</comment><comment><USER13> Being in the company of your child's family is indispensable in late old age(part of life when one is physically and mentally incapable of excising things OP mentioned). Joy that old folks gets by spending time with grandchildren is irreplaceable. Witnessing the daily life of child's family and being part of it is excellent for psychological health, helps mind stay in present and not drift back to past or other unnecessary worries.

What your child feels about you staying with them is something that you inculcate in them when they are young. If you didn't bother sharing space with your parents in the time of there need then your child won't either.

<comment><USER14> What if you don't want children? Hence, you'll have no grandchildren.

</comment></comment><comment><USER15> > But if you are one of those who are incapable of impersonal interests, you > may find that your life will be empty unless you concern yourself with your > children and grandchildren. In that case you must realise that while you can > still render them material services, such as making them an allowance or > knitting them jumpers, you must not expect that they will enjoy your > company.

Quite practical.

<comment><USER16> Unfortunately, "you must not expect that they will enjoy your company" applies to lots more than "children and grandchildren". That is, I mean, age discrimination.

</comment></comment><comment><USER17> > As regards health, I have nothing useful to say as I have little experience > of illness. I eat and drink whatever I like, and sleep when I cannot keep > awake. I never do anything whatever on the ground that it is good for > health, though in actual fact the things I like doing are mostly wholesome.

This is terrible advice fwiw. It might have been less terrible in 1951 before the explosion of terrible food choices. Science shows the benefits of exercise and proper nutrition + calorie restriction. You are very likely to age better if you avoid bad lifestyle decisions.

Eat well. Sleep lots. Exercise.

We really shouldn't be spreading messages to the contrary. Look down at your gut. It's killing you. It's destroying your organs with high blood pressure, insulin resistance and fatty liver tissue and likely doing so without causing any discernible symptoms. You won't know you're dying until it's too late.

<comment><USER18> > As regards health, I have nothing useful to say as I have little experience > of illness.

I interpreted this sentence as a disclaimer that what follows is explicitly not advice.

</comment></comment><comment><USER19> >I should wish to die while still at work, knowing that others will carry on what I can no longer do and content in the thought that what was possible has been done.

I fear death because I fear no one will look after the things that I cared about in the same passion and in the same way that I do. I guess I am too sentimental for what I've done to the things I love.

<comment><USER17> I think you have a solvable problem. Just find people who do care about things as much as you do.

<comment><USER20> This is IMO the directly wrong approach.

Realise instead that no-one, not even your own offspring (see comments elsewhere on that one), will share your exact approach, your exact balance of desires, your exact passion. Give it up. Death will come and force the situation; don't be beholden to that which can never be achieved.

</comment></comment></comment><comment><USER21> "Of remoter ancestors I can only discover one who did not live to a great age, and he died of a disease which is now rare, namely, having his head cut off."

</comment><comment><USER22> Russell published "The Conquest of Happiness" 26 years before this essay. I spot all of the causes of happiness from "The Conquest" in this essay: Zest, Affection, Family, Work, Impersonal Interest, Effort & Resignation :)

Check out [https://happy.runningroot.com/](https://happy.runningroot.com/)

HAPPY is a modern and visual journey through The Conquest of Happiness, Bertrand Russell's age-old advise on happiness. It provides a convenient framework that helps establish mindfulness towards the causes of unhappiness and understanding while embracing the causes of happiness.

HAPPY provides concise notes on what to look out for using many examples from philosophy, history and art. Given that happiness is a vast subject, the framework in HAPPY is a practical way of embedding Russell's ideas in your life without going too deep into the science, psychology and philosophy. It helps you benefit from these understanding with a constant mental awareness that sustains your happiness for productivity and health.

</comment><comment><USER23> This struck a chord, in simple terms he's saying develop interests which you can pursue for the sheer joy they give you. Unfortunately, most people are always looking for a net benefit from everything - relationships, work, hobbies

</comment><comment><USER24> This is nice and I like the advice to not dwell on the past. I can see the temptation to do this as I grow older.

One sentence, though, I disagree with is "One's thoughts must be directed to the future." I understand what he is saying, but I think better advice would be "One's thoughts must be directed to the present." His main advice seems to be to find something that interests you enough so that you are happy to do it every day - to me, something like this keeps you focused on the present and not the future.

</comment><comment><USER25> Russell's thoughts on ego-recession remind me of yesterday's AMA with Jason Rohrer, where he talks about how his shifting sense of place in the world informs the design of his latest game, "One Hour One Life". The game is a survival/crafting MMO where you start as the baby of another player, completely helpless, and try to do as much as you can to move civilization forward before you die.

It's interesting to compare this to one of his earliest games, Passage, which deals with a similar theme but from the perspective of a single individual.

[https://www.reddit.com/r/IAmA/comments/a67qi1/im_jason_rohre...](https://www.reddit.com/r/IAmA/comments/a67qi1/im_jason_rohrer_solo_dev_of_one_hour_one_life_and/)

</comment><comment><USER26> [https://aeon.co/videos/a-fanatic-against-fanaticism-and- othe...](https://aeon.co/videos/a-fanatic-against-fanaticism-and-other- pleasures-of-bertrand-russell-in-his-own-words)

</comment><comment><USER27> What does he mean by this "My first advice would be to choose your ancestors carefully." ?

<comment><USER17> It's a joke. You can't choose your ancestors, what he's saying is that the experience of getting older is dictated in no small part by the genes you inherited. Looking at your family's medical history will inform you of what might be in store for you.</comment></comment>


Nine paradoxes with a statistical theme - <AUTHOR> http://andrewtmckenzie.com/2015/12/28/nine-of-my-favorite-statistical-paradoxes/ <comment><USER2> > You have access to planes that have returned from military missions and the > distribution of the bullet "wounds" on the planes. Which areas should you > recommend to have extra armor?

I feel like this is more obvious in software. Errors are handled and reported in the logs, but it still works. Sure they, the errors, need to be fixed. But problems that cause things to crash (contextual pun) need to be fixed first.

Though I did like that post :D</comment>


Honeybees can surf to safety - <AUTHOR> https://cosmosmagazine.com/biology/honeybees-can-surf-to-safety <comment><USER2> "Surfing" makes for a cool headline, but I would call this swimming. A surfer stays on a single wave.

This might be an especially efficient form of swimming, though -- one where the paddles move at the waves' resonant frequency.

</comment><comment><USER3> non-paywall source: [https://cosmosmagazine.com/biology/honeybees-can-surf-to- saf...](https://cosmosmagazine.com/biology/honeybees-can-surf-to-safety)

<comment><USER4> Ok, we've changed to that from [https://www.nytimes.com/2019/11/18/science/bees-surfing- wate...](https://www.nytimes.com/2019/11/18/science/bees-surfing-water.html). Thanks!</comment></comment>


Wordpress: A Step by Step Tutorial - <AUTHOR> http://www.pfnp.me/wordpress

<comment><USER2> I really like the way you break everything down, will check your site often :)</comment>


PC Keyboard: The First Five Years - <AUTHOR> http://www.os2museum.com/wp/pc-keyboard-the-first-five-years/ <comment><USER2> > _That the function keys (only F1-F10) are organized in two columns on the > left is a comparatively minor difference._

Minor to you maybe. Not minor to anyone like me who baked the two column layout into their user interface! What was I thinking?

[https://archive.org/details/byte- magazine-1983-11-rescan/pag...](https://archive.org/details/byte- magazine-1983-11-rescan/page/n201)

<comment><USER3> That is amazing! Are you the author of the software? Amazing scan, and the comment is fascinating: "Editor's note: the figures accompanying this article are screen dumps from a monochrome display".

<comment><USER4> >Amazing scan, and the comment is fascinating

There is an entire Byte magazine archive, which will either blow your nostalgic mind, bring a smile or just make you ponder ─ how much/what has really changed?

[https://archive.org/details/byte-magazine](https://archive.org/details/byte- magazine)

<comment><USER3> Wow, I didn't know that archive.org was so high-quality. You can just flip through the pages. Extremely well done, I've blocked an evening just for going through that -- thanks for pointing it out.

</comment></comment></comment></comment><comment><USER5> Does _anyone_ like having CAPSLOCK to the left of A? Indeed, does anyone ever actually use CAPSLOCK? I loved the CNTRL to the left of A that I grew up with, and have remapped to get that position, ever since. I don't think I have ever used CAPSLOCK; I've used upper-case several times in this, and I simply hold down the SHIFT key while I type ... doesn't everyone do that?

<comment><USER6> I use caps lock anytime I have to capitalize more than 3 characters in a row. I just type way faster with it on instead of switching between the two shift keys.

<comment><USER7> I've been typing for 35 years and in all that time I don't think I've ever once touched the right-shift key.

<comment><USER8> Impressive to write for 35 without needing to capitalize any of "qwertasdfgzxcvb"... ;)

<comment><USER7> The thing is - I have more than one finger on each hand.

<comment><USER9> I only use left shift, too. I think it's just that right shift is way over to the right compared to left shift. Though I did take a proper typing class in high school, so I wonder how I managed to get away with that... :)

</comment></comment></comment></comment></comment></comment><comment><USER10> I feel that moving the fn keys to the top was a mistake. The use of fn keys with the AT keyboard was natural and for me an extension of touch typing. On the top row they are hard to hit accurately and lose their utility.

<comment><USER11> A good thing about their being on top is that they allow for a smaller laptop form-factor. Of course, back then that was probably not the intention.

</comment></comment><comment><USER12> I have a tangential question: why were × and ÷ not included in keyboards and ASCII standard?

It would make sense for them to be. For one, they already have + - = < > % etc. It would make sense to add signs as fundamental and as frequently-used as × and ÷.

Also, some of the signs that were included do not seem to be remotely as important. Do we really need 3 different quotation signs (" ' `), 3 bracket styles ({} [] ()), 2 different newline characters (CR and LF), and various somewhat obscure symbols and many more non-printable characters? It doesn't seem like the address space was too small and they had to make hard choices about which symbols to include. It looks like they had all the capacity they could have wanted, yet decided not to include × and ÷.

Does anyone know why?

<comment><USER13> ASCII was designed for typewriters, not video terminals.

"×" is the same as "x". "÷" can be made by overstriking ":" and "-". The quotation marks needed to also function as accents, by overstriking: "ë é è".

CR and LF are separate operations on a typewriter. You might want to simulate bold type by sending CR and retyping part (or all) of a line.

[ and ] were added for the benefit of Algol, and other programming languages with an Algol-derived syntax. Though it was recognized that these characters were less essential, and these code points were left undefined in ISO 646, the international version of ASCII. This is also why the brackets were put in the alphabet part of the ASCII table, in other countries these code points would've been used for letters that weren't part of the English alphabet.

It was anticipated that some manufacturers would use a 6-bit subset of ASCII. (Even 5-bit and 4-bit subsets were considered.) This would mean that the lower case block would be collapsed on the upper case block. So they needed to find characters that could be useful but would still make sense when rendered as [ and ]. Hence { and }.

Hope this helps. A lot of thought went into ASCII, but many of the considerations became obsolete during the 70s. And you could say that any terminal that does not support overstriking, does not properly support ASCII :)

<comment><USER14> > It was anticipated that some manufacturers would use a 6-bit subset of > ASCII.

Not only anticipated but quite common on 36-bit machines where you could put six characters in a word. In those days "byte" meant a contiguous string of bits so a byte pointer could point to one, two, ... 63 bits in some architectures so SIXBIT characters were not at all inconvenient

> You might want to simulate bold type by sending CR and retyping part (or > all) of a line.

Some video displays ("glass teletypes" — these took character data and were not pixel addressable) supported this feature. Printers pretty much all did — tolerances were not great so overprints were always darker. Backspace (^H) was used for this too. This is one reason why backspace and delete have been different characters to me.

Note that the 0xFF value for delete goes back to paper tape: it punched out all the holes in a column so could overwrite any other character. Yes, you deleted by doing backspace delete.

</comment></comment></comment><comment><USER15> Loved the Model M [1] keyboard supplied with PC AT and the RS/6000\. A colleague had one recently; we had to rig it up with a DIN/USB converter. Then it was a pleasure to use, but very loud with its clicketty clacketty action. Let everybody know that I was hammering out the code like unrolling a carpet! So instead of getting an old Model M I bought a Corsair K70 for my home rig. Great solidity and tactile feedback. Audible too, though not as loud as the Model M. Recommended for old school devs like myself who want that 80/90s keyboard feel.

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

</comment><comment><USER16> I once worked on a UNIX machine that had F keys at the top, but a separate block on the left with keys for things like cut, copy, paste, save, close etc. I found this incredibly useful and I wish it were still a thing, it saved a lot of time when I was working on documents where I could keep my right hand on the mouse, and use the left one to press these keys with one finger rather than have to "chord" Ctrl+C, Ctrl+V etc.

I realise this is what the F keys were originally meant for, but somehow we never standardised on them in the way that we did for e.g. Ctrl+S = save.

<comment><USER17> That was probably a Sun machine. I used it them at university and liked the copy/paste-keys too.

I had a PC keyboard (Kinesis Freestyle 2) for a while which had this setup with copy/paste as separate keys. Unfortunately for me, these keys were macro keys which sent "CTRL plus the key at position three on line two" etc, and since I use dvorak layout, the C,X and V keys are mapped to Ä,Q and J, which meant "cut" became "quit" (CTRL-Q).

I don't know how Sun handled this, if the edit-keys sent some specific keycode that the program interpreted like "cut" and not just "CTRL-X"?

</comment></comment><comment><USER18> > Ctrl key is where Caps Lock is now and Caps Lock is where the right Ctrl key > is now

Vim users concur

<comment><USER19> Wouldn't vim users put Esc where Caps Lock is instead?

<comment><USER20> I have caps lock mapped to ctrl when holding the key down and esc on tap.

<comment><USER21> I do the same with enter, as I like having 2 control keys! enter is control when held down and enter on tap.

</comment></comment></comment></comment><comment><USER22> I hadn't realised the first iterations of the PC keyboard used the tall Return key even in the US layout. I wonder why they changed it. (In my view the tall Return key is far nicer to use than the little flat one)

<comment><USER23> Same. I wish I could find a US-ISO hybrid keyboard.

<comment><USER24> The Cherry G80-8200 is sometimes available in that layout, although newer ones went full-ANSI.

</comment></comment></comment><comment><USER25> What do you think the _last_ five years will look like?

And when do you think it'll happen?

<comment><USER26> There is still no input methods that beats touch typing in speed _and_ accuracy. In my opinion the only serious contender is voice input but considering the time needed for corrections it is still not there.

When it comes to ease of use this is a completely different story though...

<comment><USER27> > There is still no input methods that beats touch typing in speed and > accuracy.

Stenotyping. It's also a win if you're prone to developing RSI (which is a big problem, specifically for touch typing).

</comment></comment></comment><comment><USER23> It's from before I was born but I know and miss the 1984 layout. Give me back that fat enter key!

</comment><comment><USER28> what about non IBM keyboards ? I remember seeing wildly different keyboards at my father's job.</comment>


Ask HN: How to find best book on a topic? - <AUTHOR> Today's digital world, everyday new eBook, paperback book, or article is popping up. I prefer books for in-depth knowledge. So how you choose your best books?
Sorry for my English. <comment><USER2> Essays and Papers - For deep knowledge!

Goodreads and Reading list of someone - whom we know! [https://news.ycombinator.com/item?id=13235767](https://news.ycombinator.com/item?id=13235767)</comment>


Unicode Graphics for Legacy Computing Proposal [pdf] - <AUTHOR> https://www.unicode.org/L2/L2017/17435-terminals-prop.pdf <comment><AUTHOR> Thinking about it, I assume that Commodore, Atari, Tandy, etc never participated in the Unicode Consortium, right?</comment>


Ask HN: How do you search through your files? - <AUTHOR> Backing up files is great. But how do you index and search through files; i.e. not just the titles, but suppose you were looking for a document that had a certain topic.<p>Is there a Google for searching files? <comment><USER2> ls -lR > INDEX for file names then use glimpse software to create a full text index.

Move these to the root of the volume you are backing up and burn dvd or whatever.

You can keep these indexes together on your live volume somewhere and search them all together

Glimpse indexes text files. Other files require preprocessing. There are solutions for this too but it's more complicated.</comment>


Show HN: GitHubQL – GraphQL-like Queries for GitHub API - <AUTHOR> https://hueyql.herokuapp.com/

<comment><USER2> At this point, I'm pretty sure HN will blow up when FaceBook releases their implementation of GraphQL.

Heck, I'm pretty much ready to storm the beach and rewrite the current app I'm working on when Relay and GraphQL[0] gets released.

[0] [https://facebook.github.io/react/blog/2015/02/20/introducing...](https://facebook.github.io/react/blog/2015/02/20/introducing- relay-and-graphql.html)

</comment><comment><USER3> There is also the Github Archive, where you have the ability to analyze Github event data with BigQuery, enables you to run arbitrary SQL-like queries over the entire dataset in seconds - i.e. no need to download or process any data on your own. [https://www.githubarchive.org/](https://www.githubarchive.org/)</comment>


The most surprising thing I've seen in 2009, courtesy of Etherpad - <AUTHOR> http://etherpad.com/ep/pad/slider/13sentences <comment><AUTHOR> I've been wanting to play back the writing of an essay for years. Since Etherpad saves every keystroke, I convinced the founders to add a way to play them back. "Startups in 13 Sentences" was the first essay I wrote on Etherpad. Now I'm going to write all of them on it.

Playback is just one little feature of Etherpad, but think of the implications of this alone. Among other things it will make cheating impossible in classes where students write papers, because now you can finally "show your work" in writing the way you do in math.

<comment><USER2> _I convinced the founders to add a way to play them back_

You often talk about releasing early, building something people want, etc. Since you carry a lot of influence, and (I guess) invest in Etherpad, and they've adjusted it to your personal request - do you worry that this effect might give you a distorted view of how well Etherpad specifically, and YC startups generally, are building what people want?

<comment><USER3> Convincing someone of something you believe in and abusing your influence are two very different things.

I don't think pg implied that he bullied them into implementing this, only that he talked them into it. And I can't imagine that YC would last long if pg got into the habit of bullying its start-ups into implementing his personal requests.

<comment><USER4> I think it would last an even shorter amount of time if he never talked anyone in the YC program into anything.

</comment></comment></comment></comment><comment><USER5> This is so hot. I'm really blown away.

It's also really interesting to watch a good writer go about editing. This is certainly a way to teach writing, besides the obvious method of practice.

<comment><USER6> i'd love to see how a piece of legislation gets written with something like this.

<comment><USER7> "To retain respect for sausages and laws, one must not watch them in the making."

      -- Otto von Bismarck.

<comment><USER8> That's a great quote. Seems like the original version is by John Godfrey Saxe though, and reads "Laws, like sausages, cease to inspire respect in proportion as we know how they are made."

Source: [http://www.nytimes.com/2008/07/21/magazine/27wwwl- guestsafir...](http://www.nytimes.com/2008/07/21/magazine/27wwwl- guestsafire-t.html)

</comment></comment></comment></comment><comment><USER9> I'd been kicking around the idea of doing something like this in Javascript for a while. My working title was 'TimeWriter', but I never got beyond some notes on delta formats and UI, and discussions with friends.

There's lots more potential in the graphical dimension: sliders, text color/weight that varies with age/volatility; timelines of activity (gross keystrokes or net adds/deletes) that go by either keystroke-time or clock- time.

Also an interesting thing to think about: how to build an efficient text index that can find any word or phrase that was ever present, even momentarily (or as the prefix of another word mid-typing) -- and plot its positions and lifespans.

Of course with smallish works just replaying every tick and grepping every frame could work. However, my initial inspiration for the TimeWriter idea was hosting an indefinitely lengthy personal journal. Each day, you could edit with abandon, knowing that instant search could find any fragmentary thought (and surrounding context) you'd ever jotted. The freedom of a clean sheet of paper, whenever necessary, with the confidence of perpetual perfect recall, when desired.

<comment><USER10> I would pay for a black board with history.

</comment></comment><comment><USER11> Thanks for that. I built this same thing into Twiddla (to replay meetings), but never released it because I didn't like the interface.

I had always assumed that nobody would get it unless I built a silly little mp3/cd player timeline with sliders and buttons. This changed my mind. Simple works just fine. Gimme a couple days and I'll polish it up and throw it live.

Thanks again!

<comment><USER11> Followup: Done and launched.

<http://news.ycombinator.com/item?id=496331>

</comment></comment><comment><USER12> Great site. Interesting biz related side topic: Have sites like this trended too far towards the policy of "no account required"?

This is a service I actually want to sign up for and I wasn't able to find a sign up link after looking around for 30 seconds or so. Surely there would be some benefit to EtherPad to have me sign up for an actual account and collect data on me.. which in this case I am happy to have them do since they are providing a solid service..

<comment><USER13> We're thinking of charging for having accounts.

<comment><USER14> This might be a silly question, but could anyone recommend a solid resource on case studies of _fairly_ recent startups?

...wait a second, a stupid detector is going off in my head, let me check something real quick... (googles "founders at work")... well that's the one -- curiously I hadn't read it's synopsis before...

I would still be interested in further reading suggestions though if other books come to mind.?

</comment></comment></comment><comment><USER15> What exactly about this makes it the most surprising thing you've seen in two months?

<comment><AUTHOR> Being able to watch how I write. It's like seeing a photograph of oneself for the first time. I had no idea how often I restarted sentences, for example.

There's other stuff I want to see that should be even more interesting. When it's replaying, I want to be able to see characters that make it into the final version in one color, and others in another. Then I'll be able to tell when I'm writing well and when I'm writing badly.

<comment><USER16> I tend to frequently restart sentences as well. I have found that pushing myself to quickly get an extremely rough draft down makes me more efficient. This rough draft helps me focus my thoughts in the beginning on what I want to say. I can come back later and change how I say it.

If I don't do this--and I frequently don't--I find my output grinds to a halt with my brain both creating and editing sentences at the same time.

What are your thoughts on this?

<comment><USER17> I do something similar; get a first draft out quickly so I'm not inhibited by grammar, sentence structure, logical flow etc.. then perform a second parse to tighten everything up. Interestingly, I sometimes find I almost completely reverse the passage I've written! It's as if my brain performs some sort of initial stackdump to convey my thoughts.

</comment></comment></comment></comment><comment><USER18> i thought about doing something like this in javascript for the comment or feedback boxes on websites, so you could see what people really think

This web site sucks and you are a moron\b\b\b\b\\\b\b\b\b\b\\\b\b...\b\b\b\b\b\\\bb\bGood day sir, I can't seem to find how to cancel my account. Thank you and I hope you are having a pleasant evening.

</comment><comment><USER19> This is interesting to watch. I notice you type something, you delete it, and then type something different quite a bit. When you write on paper, how do you deal with this constant deletion?

<comment><AUTHOR> I think more before writing when it's on paper. The medium has more friction. But I haven't written anything for publication on paper since 1991, when I finished writing _On Lisp_ on a stack of legal pads.

<comment><USER20> You wrote an _entire book_ on legal pads?!

I mean, I guess people wrote books before there were computers, so I shouldn't be that surprised, but I just realized I can't imagine writing anything longer than a couple pages on paper.

I remember arguing with English teachers in middle school that I thought better while typing. They insisted that I hand write my rough draft anyway, and I hated it.

<comment><USER21> J. K. Rowling did most of her draft work on lined paper:

"There is only one thing that annoys me about living in Edinburgh - well, two, but I'm pretty much resigned to the weather now. Why is it so difficult to buy paper in the middle of town? What is a writer who likes to write longhand supposed to do when she hits her stride and then realises, to her horror, that she has covered every bit of blank paper in her bag? Forty-five minutes it took me, this morning, to find somewhere that would sell me some normal, lined paper. And there's a university here! What do the students use? Don't tell me laptops, it makes me feel like something out of the eighteenth century." -J. K. Rowling

Source: <http://www.writerswrite.com/wblog.php?wblog=410061>

According to Wikipedia, she did the manuscript for Harry Potter and the Philosopher's stone on a manual typewriter.

</comment></comment></comment></comment><comment><USER22> What does the [xfs] annotation mean? I like seeing how other people write. :)

Edit: Nevermind. I see they're the references at the bottom! Why xfs and xtc?

<comment><AUTHOR> I try to use strings of chars that don't naturally occur in English so I can find them by searching.

</comment></comment><comment><USER23> I might implement an emacs minor mode that does this.

<comment><USER24> You're probably thinking of an emacs mode that does this on its own, but it would also be excellent to have an emacs minor mode that integrates with Etherpad. Ideally, you just do M-x etherpad-buffer and emacs tells you a URL that you can then send around and let other people watch / co-edit whatever you're editing in emacs.

To make this work, Etherpad would need to provide an API, though not necessarily a well-documented one. A supported API might make sense for Etherpad, though. Imagine being able to load a Wordpress plugin that enables playback of your blog posts. Or something that lets you co-author blog posts on etherpad. Oh, and greasemonkey scripts that let you co-edit any elements in a web form. OK... let's not get ahead of ourselves...

<comment><USER25> Even without an API he could probably hack something with lynx and term-mode.

<comment><USER26> Not so sure; if I'm not mistaken Lynx javascript support is rudimentary (if not non-existent). Doing Comet on that would be somewhat challenging, I guess.

An API to etherpad would realy help, IMO.

</comment></comment></comment></comment><comment><USER27> A few years ago I stumbled on a wonderful art project where people used a similar technique to record world class poets as they wrote for 15 minutes. The site is still live at <http://quickmuse.com/> if you want to see a poet laureate or two write poems. Robert Pinsky's poems are particularly fascinating to watch because he never makes a single edit or mistake.

</comment><comment><USER28> Etherpad technology marks the Beginning of the End of comment spamming, although that is not what it is intended for.

<comment><USER29> Wouldn't that penalize people who write comments in their editor, then copy- paste into the comment box?

<comment><USER28> Wow. Who does that? I do not mean this in a sarcastic manner, but this is the first time I hear of it.

<comment><USER29> Many people. There's even a moderately popular firefox plugin to automate the process (the name escapes me) - it invokes your editor for you, then when you save and exit it copies the temp file into the textarea.

</comment></comment></comment></comment><comment><USER30> As others have mentioned - a great experience to _watch_ PG writing essays. However, I was put off by the speed. Is this because PG was typing so fast or is it the player? Is it possible to control the speed (other than the Prev/Next link at the top)?

<comment><AUTHOR> It's the player. Controllable speed is high on the feature list.

<comment><USER30> Great! Good luck to the team.

</comment></comment></comment><comment><USER31> I'm self-critical enough as it is just realizing that someone else is going to read the finished product, let alone everything I wrote before exposing it. I would have a hard time letting my thoughts flow.

In addition, for school papers I would type in sarcastic or snarky sentences just for fun about what I really think of the subject matter or whatever book I was forced to write an essay for at the time. Sometimes I'd go so far that I would save a different copy of the paper just so that I could go back and laugh at it years later.

It looks like a great way to gain insight into how you or someone else writes, but I think it should always be opt-in.

</comment><comment><USER32> Interesting - this is exactly how journal recovery used to work on VMS. I remember watching my mother edit documents in the MASS-11 (<http://www.stanq.com/blog/?p=11>) word processor on a VT-100 terminal. If her session fell off she'd ring an operator and he'd play her session back on the screen; it looked exactly like this!

</comment><comment><USER33> how long did that take in real time?

<comment><AUTHOR> It's so hard to guess. I remember it taking about 3 days, but not working all day. I know there were 5400 half-second intervals when I typed at least one keystroke (that's what the numbers at the top mean).

<comment><USER34> It would be really interesting to see timestamps, particularly in longer works.

Two reasons: 1) You could see when the Eureka! moments occur. 2) To easily get a real measure of how long it really takes to write.

I have a real problem with 2), both with underestimating how long it will take to do things I think will be easy to write, and overestimating things I think will be hard. Of course, there's a lot more to writing than typing, but it could provide important information that is tedious to track at a high level and impossible to track at the level of granularity that this app could.

</comment></comment></comment><comment><USER35> I'd like to see this applied as an embeddable feature in hacker news. see who writes comments, which comments get commented on and what people really have to say before they hit that 'add comment' button

</comment><comment><USER36> This is very cool stuff. I wish it had existed before. One small wish/request: can we have a slider that we can use to control the speed? I'm guessing that would be very helpful.

</comment><comment><USER37> This is really amazing. It's interesting to watch you experiment with many PG- esque phrasings before settling on the final one, especially in the introduction.

</comment><comment><USER38> I'm in love. This is like seeing conversations in GMail for the first time. Of course you should be able to do this. I want this function everywhere.

</comment><comment><USER39> There's huge potential here, especially if there's some sort of even imperfect high-level 'glomming'. How often have you written a clever turn of phrase, an insightful paragraph, or a poignant witticism, gone back and removed it to fix flow, and then re-wrote it, not getting the phrasing quite right?

The ability to fix those types of changes, or to revert back to a paragraph "somewhere in the middle" would be huge.

</comment><comment><USER40> An incredible website. Finally I have found the motivation I need to write my IB Extended Essay (days before it is due).

How do you get the play back link though?

<comment><AUTHOR> For now they just hacked together something custom for me. However, Etherpad saves every keystroke, so once they enable this for everyone, you'll be able to replay stuff you wrote with it.

<comment><USER40> Incredible. I was talking about my teacher about how a transition away from paper to tech is great and all but we have lost the sense of keeping drafts. Drafts have a very high value. I don't know how you are connected with the folks @ Etherpad but if there is anyway I can help, let me know.

</comment></comment></comment><comment><USER41> Would be interesting to see the same for code, with a high-level AST representation, and with different coders shown in different colors.

</comment><comment><USER42> A similar project for sending email has existed for a few years, created by the MIT media lab. Check it out at <http://www.fuzzmail.org/>

</comment><comment><USER43> This is amazing. I can't wait to have syntax highlighting for code. I am imagining this as a "live"/"real-time" paste2.org

This would make collaboration much faster.

</comment><comment><USER2> You make so many spelling mistakes (compared to making none, not compared to me), would a good autocorrect save you enough effort to be worth it?

</comment><comment><USER44> I have been dreaming of all this stuff, unfortunately i don't have skill for this. Thank you God someone made this happen

</comment><comment><USER45> It might be helpful to get some visuals on time lapses, e.g. breaks and perhaps multi-day sessions.

</comment><comment><USER46> This is great, I would love the same for Emacs and coding, I'd love to see how great hackers code.

</comment><comment><USER47> it would be awesome to be able to specify a rate of change as changes/second or something

</comment><comment><USER48> Cute use of a Lisp comment as a temporary placeholder towards the end.

</comment><comment><USER49> Spectacular! Reminds me of of Le Mystere Picasso eh, PG?

</comment><comment><USER50> Eh. Welcome to the past. The copious version changes to Beethoven's 9th have always been available, for instance. Pen and paper and scratch-marks...</comment>


Test-Driven HTML: Why and How - <AUTHOR> http://www.daviddripps.com/2012/08/09/test-driven-html-why-and-how/

<comment><USER2> Can't say I've ever done (or would) do TDD for HTML, but I have made copious use of wget, Watir, and Selenium to do sanity checks.

For example, I use wget to spider a site then check both the Web server and wget logs for signs of trouble (404 or app server messages).

Watir is very handy for making sure things are OK on IE; I've hooked in calls to screenshots so I can crawl a site then look at a gallery of pictures for obvious rendering issues.

<comment><AUTHOR> My reason for TDD HTML: I'm a firm believer in "form follows function". I'm trying to employ test-driven principles to design by forcing us to think about the function of the UI by writing tests first. Once the features are well defined by tests, we start writing our CSS and Javascript.

I'm not a Ruby guy so I've never used Watir. You pass the HTML string into Watir and it parses it in a headless web browser. Then you use Selenium WebDriver for generating screenshots to manually review? Makes sense.

My only concern is that it's not test-driven. My next post will be on browser testing as verification, but the reason I like TDD so much is because it forces me to think through the problem before writing code.

<comment><USER2> _I'm not a Ruby guy so I've never used Watir. You pass the HTML string into Watir and it parses it in a headless web browser. Then you use Selenium WebDriver for generating screenshots to manually review? Makes sense._

No, Watir scripts a running instance of IE. I have code in my Watir scripts that call out to a 3rd-party tool for taking screenshots. This is how I get a gallery of images showing all the pages in the app as actually seen in IE.

I also use Selenium to script a running browser instance; I do most of the heavy UI testing with that because I can run it on Ubuntu. It's with Selenium that I interact with forms, make sure ajax calls return correct values, pages have the right content, pages aren't giving me error messages, etc.

Some of this is also doable headless, and for many things headless (or just hitting the code via bacon or something) is of course faster, but using Selenium IDE I can record my interaction with a page then edit or expand the recorded script. So it's fairly trivial to create tests.

But I rarely do it test-driven. It's mainly to ensure that while I'm changing something in one place I don't inadvertently screw up a page someplace else that I may forget to check.

I think there was one app I tried to do the HTML TDD, but I soon found that it was much better for me to sketch out page design and flow and add tests as a I went.

<comment><AUTHOR> Gotcha. I run VirtualBox with an IE8 and IE9 VM for JsTestDriver, BusterJS, or the like. For Selenium though, I use SauceLabs to run it on all sorts of browsers and they actually provide you with a video of the test too. It's not free, but it's definitely worth the money.

"It's mainly to ensure that while I'm changing something in one place I don't inadvertently screw up a page someplace else that I may forget to check."

It all comes back to design by testing. Personally, my apps use a lot of layouts, views, and helpers so an automated way to check that a change in one place doesn't affect my UI somewhere else is paramount.

The key here is that it's automated. I use continuous integration, and introducing even one human element breaks the flow of quick pushes and updates.

As for sketching out page design, "form follows function." I'm not thinking about the look of the app at all. I'm not a designer, but once my HTML is written I can show a talented designer exactly what they have to work with to create the best UI/U possible. Basically, I'm not a fan of design-driven development.

I wish I could attach an image so you could see where I am with my current project. It's a logo at the top, followed by a list of links, a dropdown, another list of links, some content, etc. One on top of the other, no design at all. Black text, white screen. It is very clear though what the page is suposed to accomplish. Let the designer do their job, and I'll TDD my CSS when I turn their vision into code.</comment></comment></comment></comment>


RacketCon - <AUTHOR> http://con.racket-lang.org/

<comment><USER2> Free to register plus complementary breakfast/lunch? I can't tell if it is just a very nice community or if Sam Tobin-Hochstadt is an evil witch, luring programmers to his conferance like so many Hansels and Grettels.

<comment><USER3> You'll have to come to find out. :) We don't bite, but the language is addictive ...

<comment><USER4> I hope some parts of the conf will find their way online!

</comment></comment></comment><comment><USER5> CCIS student here. I've only taken Fundies 1, but I really enjoy working in Racket so I'm kind of stoked for this.</comment>


Alaska satellite broadband project scuttled by coronavirus[NOT] - <AUTHOR> https://www.adn.com/business-economy/2020/04/16/alaska-satellite-broadband-project-scuttled-by-coronavirus/ <comment><AUTHOR> there is a problem with alaska if you want to try making money by supplying broadband, and that is the consumer demographic.

either you must limit to government and institutional consumption or you must supplement the retail level home users of alaska so that they have hardware; have hardware that is capable of consuming broadband; and have the need and purpose for it.

this is why it fails at the home consumer level. it actually has nothing to do with coronavirus.</comment>


Program FPGAs with Go - <AUTHOR> https://reconfigure.io/ <comment><USER2> This being the internet, let me preface this with this being honest questions, rather than attacks. I did try to read through the docs before asking but I don't see the answers directly.

Especially on the FPGA side, how does this interact with all the features of Go that seem ill-suited to an FPGA implementation? Can I write functions that generate and consume closures? Where is my garbage going on the FPGA side and how is it collected? Or is the FPGA code being written only in a subset of Go?

I understand the idea of wrapping the primitives offered by the FPGA hardware itself into channels, but I'm unclear on how one can sensibly implement a Go runtime on top of that in the FPGA without making it too difficult to understand the cost model of your Go code.

<comment><USER3> might be like OpenCL: a subset of C99 with some extensions works for parallel hardware including FPGAs already so why not a subset of Go targeting FPGAs?

<comment><USER2> "A subset of Go" is certainly one sensible option, but I don't see it documented. The obvious subset that one could get with the least effort is a rather brutally cut down subset of Go, to the point that I'd consider claiming it to be "Go running on an FPGA" to be nearly a lie. On the other extreme, you've got a full FPGA on hand, so nothing stops them from bringing up a simple ARM CPU die and putting a bit of general-purpose RAM there, so it's theoretically possible that you could write general-purpose FPGA code and have that FPGA-CPU gloss over any runtime issues, but that's where I get my question about how a programmer would be expected to model the costs incurred by given constructs sensibly. (Presumably, if performance is not a big deal to the programmer, they're not using FPGAs at all, so I'm going in assuming performance is at least in the top 3 concerns of anyone who might use this, if not #1.) (Also I'm not 100% sure about the intersection of what ARM cores might be available vs. what Go runs on; IIRC Go does ARM but only very high- end ones. So, take the principle of my point rather than the literal text. With enough work they can do "anything" with the FPGA code.)

</comment></comment></comment><comment><USER4> Congrats!

We, a stanford lab, are pursuing similar goals but opensource and from a Scala DSL although our doc ([http://spatial- lang.readthedocs.io/en/latest/tutorial/starti...](http://spatial- lang.readthedocs.io/en/latest/tutorial/starting.html)) is not that up-to-date:

[https://github.com/stanford-ppl/spatial-lang](https://github.com/stanford- ppl/spatial-lang)

<comment><USER5> I'll RTFM later, but in the meantime : how to you compare to Chisel [https://chisel.eecs.berkeley.edu](https://chisel.eecs.berkeley.edu) ?

<comment><USER6> Spatial is built on Chisel, and from what I can tell, basically offers you an "SDSoC" experience for Scala.

In Chisel, you write Scala that is compiled to Verilog(?) and you put it into your synthesis toolchain. But Chisel is mostly just that: it's a HDL, and not much more. And if you want to talk to an FPGA, especially from software, you still have to write another pile of glue that does interfacing to your device, over your peripherials, etc.

Spatial gives you more on top of Chisel. Instead, you simply write a single program and say "Accelerate this bit", and it generates both the hardware _and_ software _and_ glues it all together. This means you write a single program once and the compiler generates all the glue for you, so the usage is more seamless.

This is what "SDSoC" from Xilinx does, but for C/C++. You simply write a C program and annotate functions as "Accelerate" and it compiles both the hardware and software for you and generates the interconnections. Spatial is like that, for Scala.

<comment><USER7> > In Chisel, you write Scala that is compiled to Verilog(?)

Berkeley grad student here. The current Chisel compiler generates an intermediate representation that can be compiled to any target. Our Verilog backend is definitely the most developed, but we also have an interpreter that can directly simulate the IR.

<comment><USER6> Thanks! Is this a reference to FIRRTL that I've seen some light references to (e.g. Yosys's experimental FIRRTL backend)? I was under the impression FIR was somewhat new and wasn't sure if it was used in Chisel (yet).

(To be clear, I figured you compiled to _a_ generic IR before lowering onto some chosen HDL, regardless if it's FIR or not, but wasn't sure if Chisel had multiple HDL backends strictly speaking).

<comment><USER7> Yes, I'm talking about FIRRTL, which is used in the latest version of Chisel (Chisel 3).

There aren't official releases of this version yet, but you can get snapshots (if you don't mind some API breakage now and then). It works fairly well now and we use it in all our RTL designs.

</comment></comment></comment></comment></comment></comment><comment><USER8> Interesting. This is a neat approach to building a register-transfer language using some high-level bindings. Go (at a very high level) seems to have a pretty good match with the async nature of transistor-level bit-flow operations when you use channels. In theory you could map this to any language with strongly-typed async operations.

You get advantages of Go's type-checker, though you're probably limited to a _very_ small subset of the language. Note that you won't be able to use a lot of third-party languages unless their translation is _really_ good or the third-party package code is _very_ simple.

Docs seem to be available here (thanks to another comment in this thread): [http://docs.reconfigure.io/welcome.html](http://docs.reconfigure.io/welcome.html)

I think the approach of mapping a high-level language to a CPU is not necessarily novel, but using Go for it is.

I used a different approach to build a bit-flow graph in Java for a project in the past. Rather than map the whole language to the circuit, I created some APIs that would generate the graph and export it. It looks fairly similar to what you see here.

</comment><comment><USER9> The website in itself does not give me an understanding of whatever the hell they're doing. I'm a computer engineering undergrad and I've done FPGA's before. I don't see what's "code in go and deploy FPGA's to the cloud". I think that putting some code and other actual use cases to the website would be nice.

Looking at some of the examples it seems to me that you'd still need to know hardware programming, memory etc. Now my comment seems very snarky, but I still think that it's a huge achievement to have gotten this far with this and I wish them luck! I just don't get the target user base.

</comment><comment><USER10> docs: [http://docs.reconfigure.io/](http://docs.reconfigure.io/)

github: [https://github.com/ReconfigureIO](https://github.com/ReconfigureIO)

</comment><comment><USER11> This is great, I've waited 20 years for this (computer engineering degree 1999). For all the naysayers - what has gone wrong with computing, why Moore's law no longer works, etc etc is that we've gone from general purpose computing to proprietary narrow-use computing thanks to Nvidia and others. VHDL and Verilog are basically assembly language and are not good paradigms for multicore programming.

The best languages to take advantage of chips that aren't compute-limited* are things like Erlang, Elixir, Go, MATLAB, R, Julia, Haskell, Scala, Clojure.. I could go on. Most of those are the assembly languages of functional programming and are also not really usable by humans for multicore programming.

I personally vote no confidence on any of this taking off until we have a Javascript-like language for concurrent programming. Go is the closest thing to that now, although Elixir or Clojure are better suited for maximum scalability because they are pure functional languages. I would give MATLAB a close second because it makes dealing with embarrassingly parallel problems embarrassingly easy. Most of the top rated articles on HN lately for AI are embarrassingly parallel or embarrassingly easy when you aren't compute- limited. We just aren't used to thinking in those terms.

* For now lets call compute-limited any chip that can't give you 1000 cores per $100

<comment><USER12> I would argue that Elixir is far closer to being a "JavaScript-like language for concurrent programming" than Go, due to it's dynamic typing and relative freedom it affords in comparison to the others you mentioned (except for Clojure, which is actually quite similar in a lot of ways).

Although it is technically a purely functional language, you can almost mutate variables (in reality it is creating a new immutable variable with the same name, which takes precedence)

      a = 1
      # a == 1
      a = 2
      # a == 2

Concurrency feels very natural:

      # concurrent
      numbers = [1,2,3,4,5]
      doubles =
        |> numbers
        |> Enum.map(fn(n) -> Task.async(fn -> n * 2 end) end)
        |> Enum.map(&Task.await/1)
      # doubles == [2,4,6,8,10]

      # consecutive
      numbers = [1,2,3,4,5]
      doubles = numbers |> Enum.map(fn(n) -> n * 2 end)
      # doubles == [2,4,6,8,10]

<comment><USER13> > Although it is technically a purely functional language [..]

This (purity) stirred my interest, but as far as I can see it's incorrect. This[1] Wikipedia page on pure languages does not list Elixir, and the Elixir Wikipedia page itself does not mention purity at all.

Can anyone clarify?

[1] [https://en.wikipedia.org/wiki/List_of_programming_languages_...](https://en.wikipedia.org/wiki/List_of_programming_languages_by_type#Pure)

</comment></comment></comment><comment><USER14> Let me be a bit pessimistic amd ignorant here.

People who want to use an FPGA should learn VHDL or verilog. There have been a lot of projects to make C compile to VHDL/verilog, and it's generally accepted that it does not work very well.

What is the advantage of using Go for the same purpose?

<comment><USER15> As a long time HW FPGA guy, I think you might want to take a look at the C projects again. I don't know whether Go has any advantages but the concept of a higher level language for development is being used by the major FPGA companies.

Both Xilinx and Altera have High Level Synthesis (HLS) tools. These use C or C++. If you know how FPGA work is generally done, you can separate the hype from the reality and you can understand how to use it for a real application.

The vendors have lots of libraries for IP. You don't write RTL from scratch. It would take too long to verify. You tie IP together. It can be DSP or generic maths or a video codec thing. The VHDL is done for you.

You write your algorithm in C++ in a particular format using compatible data types and calling HLS libraries. You run it all in C++ first and make sure it does exactly what you want in SW. This is where the algorithm is developed.

THEN you fire up the HLS tool and a couple of hours of synthesizing later (lol) you get to load a bitstream onto a FPGA to verify it.

Of course there can be problems in that translation. It takes good engineering to dive down into the design and find the issues.

My current work does not touch any HLS. I am doing the VHDL stuff. But I know the algorithms all started from SW first. It always does. For the bulk of the work, verification, it is somewhat irrelevant whether it is manually converted to RTL or done via tools.

<comment><USER16> Another HW FPGA guy here. Albeit one who has never used HLS. My concern with the whole idea of HLS is that it fails to take advantage of the parallelization capability of FPGAs, which in my opinion is one of the main reasons to use an FPGA in the first place. It sounds great for designs that are linear in nature, that is, putting data through a bunch of sequential processing blocks and then outputting some result. But for most of those cases, why not just use a processor + DSP SoC? Or even something like a Zynq? It will probably be faster.

Seeing how FPGAs do not operate in a linear way the way that software does on a processor, why are we trying to make them work that way? It would make more sense to me to design a high-level synthesis language with a paradigm that is also not imperative: functional programming. Like, for example, how would this kind of C code even be synthesized in hardware?:

      A = 5;
      B_out = A + 3;
      A = 6;
      C_out = A;

"A" is used as two different things, which is totally fine when the code is run sequentially, which must be what is happening when code like this is synthesized, but that's wasteful on an FPGA, because B_out and C_out don't actually have dependence on each other and could be computed concurrently, which is what would happen if we used VHDL to do something similar. We need a high-level synthesis language that describes a _system_ which solves the algorithm we want, the same way VHDL does, except with more abstraction capabilities. In my opinion this could be a functional language.

<comment><USER15> I agree about the parallelism but you have to understand the design methodology.

Your example is somewhat pointless. The code is written to create the HW not the other way around. I can't feed it just any crap.

You want parallelism you have to code it.

Zynq would actually be what I use! You start with SW. The ARM core is not that quick. You will use the FPGA to accelerate the tough parts. You may think you will have throughput issues but you have options via the high performance AXI ports. Your FPGA modules access the data in memory via DMAs.

KNOWING what part of the algorithm you need to accelerate actually suits FPGAs, you grab the HLS and start coding.

You have to look at some of the libraries to understand what abstraction level you are working at: [https://www.xilinx.com/products/design- tools/vivado/integrat...](https://www.xilinx.com/products/design- tools/vivado/integration/esl-design.html)

Video, matrices, linear algebra, encoders/decoders. Etc. I can string them together in the same way I would string HDL IP.

The advantage is I can run the algorithm in C++ first and test it all, under the assumption that the HLS library has the equivalent HW version for synthesis.

There is still a lot of HW work involved. For instance in your example with A used twice. One module would calculate B_out by reading A prior to changing its value then you would have to start the C_out module. You would need a way to coordinate the two modules to share the same memory at A. But they would be running in parallel, just not started at the same time.

</comment></comment></comment></comment><comment><USER17> Some great questions (and some other really exciting projects m!)

It's early days for us at reconfigure.io, we're just working with a few core early users at the moment and we'll be bringing more examples, benchmarks and increased access over time.

<comment><USER18> How are you dealing with GC issues? Is there a paper or docs?

</comment></comment><comment><USER19> Are they using soft-cores on a fpga or actually synthesizing a design specific to one's go code? Am I blind or is is the website not very clear?

<comment><USER20> you're not blind, i was expecting some code samples to make this clear. I assume its actually synthesizing a specific design because otherwise it isn't really noteworthy, but its not clear.

</comment></comment><comment><USER21> This isn't quite the same thing, but it kind of reminds me of Altera's Nios soft processor: [https://www.altera.com/products/processors/overview.html](https://www.altera.com/products/processors/overview.html)

In one of my previous lives doing embedded development, we were able able to program the FPGA using pretty plain looking C on the Nios, which just dedicated a portion of the FPGA's gates to running a simple, ARM-like processor.

It was cool for us software dudes because we could just do general-purpose computing (mostly) on the FPGA, and the verilog folks would wire it up for us to work right. It's not the cheapest way to design a product, but the stuff I worked on had crazy high profit margins, so it was a fair trade-off for better productivity.

</comment><comment><USER22> FPGAs are worth studying in case anyone doesn't really know them. I once had an interview question right out of uni, and it was about FPGAs and I didn't know what they were. The interviewer really looked down his nose at me after I told him that.

<comment><USER23> Ask HN: What's an inexpensive set-up for learning? I've done a lot of work with microcontrollers, but never FPGAs. Is there a cheap development board with software, that I can try out at home?

<comment><USER22> I'm not up on a lot of the hardware stuff. Raspberry Pi? Beagleboard?

<comment><USER24> So you would fail that interview again :-)

<comment><USER22> No. I would not take a second interview from them.

</comment></comment></comment></comment></comment><comment><USER25> This looks awwwwfully nonfree...

<comment><USER26> In what sense? Target is an FPGA, so the point strikes me as moot.

<comment><USER25> Investing time in writing your complex code in their Go dialect may leave you in shackles and at the mercy of their pricing plans.

<comment><USER26> I completely agree with your point.

To wit, pushing the performance of any FPGA with _< insert_favorite_hdl_here>_ will inevitably result in a high degree of technical debt and/or vendor lock- in, e.g. instantiating device-specific hard IP.

At the end of the day, we--as developers--aren't quite at that point where we can have our cake and eat it too, making this solution yet another product lifecycle trade-off decision.

</comment></comment></comment></comment><comment><USER27>
      >> expensive, hard-to-source hardware engineering skills.

If only that were true.

Lots of hardware engineers have moved into software.

<comment><USER28> If it was more practical to source hardware skills and develop fpga components there are quite a few companies and academic institutions interested in exploring direct hardware acceleration. In particular seeing examples of matrix operations carried out on fpga or graph traversals would be an excellent starting point to driving adoption

</comment></comment><comment><USER29> This is cool but where are the metrics, examples?

</comment><comment><USER30> Someone needs a tool chain with chisel as the target.

<comment><USER31> Why not target verilog directly? Chisel is just a verilog generator in the end.

<comment><USER32> Because of ML and neural networks hype. No one wants to learn VDHL or Verilog, they want OpenCL or something similar.

<comment><USER33> I hear what you're saying, but Chisel is a lot closer to an RTL like Verilog than it is to OpenCL.

</comment></comment></comment></comment><comment><USER34> This post is peak 2017 Hacker News</comment>


Howie Mandel revealed NBC studio's wifi password live on the Today show - <AUTHOR> http://pic.twitter.com/lbW3sXuF

<comment><USER2> It's WEP. You wouldn't have needed Howie Mandel to get on it :P

<comment><AUTHOR> haha Very true!</comment></comment>