Ask HN: Have you made a software "hub" to manage your personal life? - <AUTHOR> A few months ago, squaresarebetter asked "What are the things that you have automated in your personal life?" [1]
I have a related, but different question. I'm currently juggling a lot of systems like Trello, a static site generator, email, Google Drive, online banks and Facebook to get things done, write, keep track of my relationships and so on. But I never feel quite at home, and whenever I want to do something custom so I'm considering making my own "personal API" in order to organize my life.
Have you done something like this? If so, I'd love to hear about it.
1: https://news.ycombinator.com/item?id=17385291 <comment><USER2> I developed Centask [1] to integrate, in one view, everything I need to complete a project/task, (Gmail emails, files, links, notes etc.) organize it in any way I want, and declutter my task list by scheduling single and nested items to appear only when I need the

Since it is Gmail centric I can email myself links and notes from any app.

It can take Gmail Inbox emails into Centask Inbox so email is just one more task treated exactly the same as todo items and links etc.

Since most of the third party tools I use are online I use Centask bookmarklet to add links to tasks in other apps/sites to Centask Inbox.

What made it stick for me was to process my Gmail inbox within Centask so I must use it, thus my agenda may get longer when I am busy but never gets out- of-date.

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

</comment><comment><USER3> It is a project I am thinking about myself and have made some progress on.

One angle is something like "Lotus Notes" based on modern document databases and with some document classifier capability for automation.

Another angle is IOT, controlling lights and music, using sensors, having weather radar maps already downloaded and instantly visible.

If I could eliminate web browsers from the mix I would but it will be a while... Right now I am looking for a UI framework that _never_ blocks.</comment>


AT&T explains why it blocked Cloudflare DNS: It was just an accident - <AUTHOR> https://arstechnica.com/information-technology/2018/05/att-is-blocking-cloudflares-privacy-focused-dns-calls-it-an-accident/ <comment><USER2> Well that thread of conspiracy theories, hot air and cries of censorship yesterday was instructive.

These corporations have zero benefit of the doubt level of trust.

A few voices to be fair pointed out 18.104.22.168 is often incorrectly used and issues with it becoming 'live' mostly likely caused the outage.

Not judging this response btw, I can clearly see why ATT and other big telco wouldn't get much leeway.

<comment><USER3> I wasn't one of the conspiracy theorists but I do expect ISPs to get these things right. It's literally their job, they should be experts.

<comment><USER4> AT&T has long provided a sub-par Internet connection service.

Their wireless router and DSL modem "U-Verse" gateway device lacks a true bridge mode, has a small NAT table, and you must use it because it contains a 802.1x certificate. You can use your own router with a rather involved hack: [http://blog.0xpebbles.org/Bypassing-At-t-U-verse-hardware- NA...](http://blog.0xpebbles.org/Bypassing-At-t-U-verse-hardware-NAT-table- limits) They instructed customers (including small businesses) to get off 10.X.X.X, presumably because they were considering CG-NAT, although they have since done some IPv6 deployment.

The original AT&T faded away with declining long distance revenue which they milked to the end until cellphones and Internet access became the main market. It took tax credits meant for "video dial tone" broadband deployment and used them to build their cellular network.

Its ADSL deployment use PPPoE and ATM which can cause MTU mismatch. ATM itself is a telco mistake. European access oligopoly members wanted 32 bytes because that suited voice frame transport and they thought data transport would never sell. American counterparts wanted 64 bytes for better data delivery. They compromised on 53: 48 for payload and 5 for header. With newer "U-Verse" ASDL they've finally eliminated this layer of overhead. (But no more 3rd party modems).

It decided to deploy VDSL instead of make the true upgrade to fiber. But they also cut costs by not building enough remote terminals so many customers have slow and unreliable links. Fast VDSL speeds (e.g. 100Mbps) aren't possible if customers are a mile away, or more. How much money have they spent on truck rolls diagnosing issues? Is it less than just building a more robust network to begin with?

Since 2005 they've been complaining that customers are using too much Internet and they need to slice and dice the Internet with data caps, application specific throttling, etc. And get more tax credits and deregulation which they promise will be used for broadband investment.

<comment><USER5> I've had better service from U-Verse and, more recently, AT&T Fiber than I have from Comcast.

But really, the point this thread is making isn't about whether you approve of all of AT&T's business decisions, but rather whether their backbone engineers can properly manage a network.

I'm interested in the opinions of people who have managed default-free BGP peering before on whether AT&T does a good job, but I'm not so much interested in reading another dslreports thread about whether AT&T is a "good ISP".

<comment><USER4> This technical glitch is in their CPE boxes not the backbone network.

<comment><USER5> Good to know! Add to the set of people who's AT&T network engineering opinions are interesting "anyone who has managed a very large scale distribution layer network". :)

</comment></comment></comment></comment></comment></comment><comment><USER6> OK, I'm not sure I buy this explanation. If they want to revert whatever happened to 184.108.40.206, and fix 22.214.171.124, I'm fine with that.

Here's what I do know:

* I am an AT&T fiber customer.

* 18.104.22.168 did not resolve DNS for me any time I tested it.

* 188.8.131.52 did resolve DNS when I first tested it.

* Neither 126.96.36.199 or 220.127.116.11 work from the external interface of my AT&T router now.

* Strangely, 220.127.116.11 responds to ICMP requests from the diagnostic interface of the router, but not from the external interface.

* 126.96.36.199 does not respond to ICMP requests from the diagnostic interface of the router or from the external interface.

It sure looks like something upstream from my router is blocking requests to 220.127.116.11, and that this is new behavior.

Like I said earlier, I don't especially care what the reason is, as long as they do something to fix it.

<comment><USER7> The reason you are getting an ICMP respose from 188.8.131.52 is that _your router_ is responding. This is consistent with the explanation. If you still want to doubt it, clear all DNS and ARP tables, ping 126.96.36.199, and check the ARP entry for it. It will match the MAC of your routers inward facing interface.

<comment><USER6> From the same diagnostic interface:

traceroute to 22.214.171.124 (188.8.131.52), 30 hops max, 38 byte packets 1 1dot1dot1dot1.cloudflare-dns.com (18.104.22.168) 0.327 ms 0.156 ms 0.120 ms

<comment><USER8> The fact that the reverse DNS is correct doesn't mean that it's reaching the real deal. The fact that the ping time is fast enough that light could only have traveled 5 or 6 miles one way means it's almost certainly not the real deal.

<comment><USER9> FWIW: light can go ~23 miles in the 120us measured.

<comment><USER8> Hmm, not sure how I managed that; must have divided by 2 twice or something to find one-way length.

</comment></comment></comment></comment></comment></comment><comment><USER10> I could believe they tried to sneak it through for malicious purposes and wrote it off as a mistake when they were caught. I could also believe it was a genuine mistake. Either way, I'm glad there are communities like Hacker News to make a stink when stuff like this happens and get it into the spotlight.

</comment><comment><USER11> Assigning a 22.214.171.124 to a local modem interface? Cox: that ain't noth'n here hold my beer" and watch a 10.x traceroute go seven hops out the door and resolve somewhere on their network.

<comment><USER12> There is a big difference: 10.x.x.x is for private use. Cox is using it privately for device management. You can also use it privately and there will be no conflict (assuming you are not attempting to manage those same devices, which is probably a safe assumption 99.99% of the time.)

<comment><USER13> To be fair, there is a network range specifically allocated for carrier grade nat (100.64/10), sounds like that might have been better to use here.

<comment><USER14> Those IP addresses are just being assigned to their own networking equipment. Cox using the CGNAT network for that would be just as wrong as you using it. There's absolutely nothing wrong with Cox using private address space internally. If anything, there's something wrong with routing requests to private address space out your WAN in the first place.

What Cox is doing is completely appropriate and what AT&T and Cisco are doing is squatting on someone else's IP assignments.

</comment></comment></comment></comment><comment><USER15> They need to explain why it is an accident in detail, otherwise they are just being incompetent for disrupting large number of their valued customer's internet connections, and likely wasting their valuable time. They can't just say it is unintentional, they need to convince me that it is. Technical word salad will not cut it. It has to be clear to most people.

</comment><comment><USER16> I believe this. I've had at&t business connections that black hole certain IPs and ranges because they (incorrectly) use them internally. What's worse is their own techs spend a large amount of time troubleshooting because it's not clear to them.

</comment><comment> half-kh-hacker IIRC, 184.108.40.206 was also blocked by the firmware update.

</comment><comment><USER17> I've got AT&T fiber using a BGW210-700 with firmware 1.5.11 and 126.96.36.199 and 18.104.22.168 have been and still are blocked for me. I'll be keeping an eye on it to see if it changes.

</comment><comment><USER18> Large ISPs wanting to get into CDN revenues and DNS, just a little hiccup to start testing the waters... ISPs are mad most people use Google or Cloudflare DNS now instead of their own which facilitate their ad networks and future CDN properties.

Large ISPs want that DNS endpoint and are aiming for CDNs as well, they are gonna eventually sell it as other CDNs/DNS can't be workable due to issues like this.

Large ISPs stopped innovating for decades and are mad others kept innovating on top of the network. ISPs think they own the network and are taking back this property not by innovation, but by bribes to 'representatives' and by force.

Now that net neutrality is demolished and ISPs can sell your private data, they have a reason to ruin DNS and CDNs to eventually own that for tracking and revenue streams. We made IMMENSE mistakes in 2017 with allowing ISPs to bribe their way into removing privacy protections and removing net neutrality. We gave them reasons to dismantle systems built ON TOP of the network so they can own those areas by controlling the network. 2017 was regressive for the internet markets built on our internet utilities.

Rather than ISPs building their own companies to compete on top of the network, they want to use their network lever to barge their way in with bribes like the Kool-aid man through walls that shouldn't be breached.

ISPs are in all out war mode fighting being a utility or commodity, rather than building competitive products or innovating on top of the network, making the network better/faster/fast they want to win by force and milking it, not by building products and improvements people want.

ISPs are also gunning to help build our government firewall/filter that is for censorship and IP protection [1]. AT&T in particular has been a privileged insider to the surveillance state and filtering[2]. It is also an extension of FOSTA/SESTA censorship. Turns out, building the government filter for surveillance also gets you a super efficient ad network by peering into all private data. No way blocking Cloudflare was a mistake, it was ISPs kicking the tires of their 'innovations'.

In 2017, we allowed emboldened network provider monopolies to get more emboldened and now that they won, they want to run all ad networks and will do so in unison with the surveillance state and filtering/censorship.

[1] [https://www.wired.com/2017/04/internet-censorship-is- advanci...](https://www.wired.com/2017/04/internet-censorship-is-advancing- under-trump/)

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

<comment><USER19> > most people use Google or Cloudflare DNS now

Do they? I'd say most people would be troubled to find their DNS settings let alone have the confidence to change them. I'm open to correction on that, is there any data on Google /CF DNS usage?

<comment><USER18> Most people that know anything about the internet have switched away from their ISPs DNS largely due to tracking and slowness/peering.

These tools will spread and eventually everyone will, a big fear for the ISPs who want to be ad networks and profiling systems.

> _is there any data on Google /CF DNS usage?_

Only ISPs would know that information, Google and Cloudflare know how many people use it but not how many are connected that choose it. ISPs know who uses what DNS, who uses VPNs and common clients and other competitive advantages that should be protected. Pretty soon they will have some 'identity protection' app that provides VPN and DNS which is used in their ad network/tracking systems. Even better if large DNS providers are flaky due to their own interference. This was definitely AT&T kicking the tires to see what would happen, either that or they are incompetent and need competition. They should be broken up either way.

ISPs now that they are able to sell your private data and build ad networks by removing privacy protections, actively do not want others using alternative/competitive DNS. Along with building the government filter and surveillance state, ISPs are not in the business of providing network quality and speeds, they are milking it with data caps and bundles noone wants, they want to be the biggest/baddest ad network/profiling system ever invented, that they of course control 100% over competitors.

From the OP article:

> _The blocking is affecting AT &T home Internet customers who use an AT&T > gateway. Cloudflare unveiled its DNS service on April 1, and users in > DSLReports forum threads almost immediately started complaining that they > couldn't access it. One thread began on April 1, within hours of > Cloudflare's announcement._

> _Cloudflare pitches 126.96.36.199 as a privacy tool that can help deter ISPs from > monitoring one 's Internet usage. AT&T lobbied against broadband privacy > rules last year, and the company used to charge fiber Internet customers > extra for privacy. AT&T fiber customers who did not opt in to a traffic > scanning system that analyzed Internet usage in order to deliver > personalized ads had to pay at least $29 more per month than customers who > consented to the scanning._

> _AT &T ended the controversial traffic scanning program in September 2016, > but it says that it still wants the "flexibility" to expand advertising- > focused business models to compete against Facebook, Amazon, and Google._

By allowing ISPs to remove net neutrality and privacy protections, we've emboldened network provider monopolies to be even bigger and ultimately it will harm internet freedom and competitive business on top of the network. Events like this will happen more and more as they are empowered more and more as they pull away from being privacy protected utilities, which they are but don't want to be.

</comment></comment></comment><comment><USER20> AT&T: Oh, gee. It sure would be a shame if something happened to that nice new DNS service of yours....

</comment><comment><USER21> It is obvious Cloudflare has no interest in operating a real recursive DNS service. If they did, they would have provided additional backup IPs for users they knew would be impacted by these issues.

Building a production service on what even APNIC refers to as "research space" was foolish. If this was Cloudflares only line of business, they never would have taken such a risk.

<comment><USER22> We (Cloudflare and APNIC) knew exactly what we were getting in to. We knew this was the only way that we'd be able to reclaim the space to be usable. And, in about a month, we've gone from 126.96.36.199 being routable by only 92% of networks to 98.7% of networks — and climbing. Don't accept that you can't change the status quo.

<comment><USER23> The space is allocated for research. To what end do you imagine it will be "usable", and for whom?

<comment><USER24> No it was not.

18.104.22.168/8 was unassigned space until 2010 when it was assigned to APNIC. It was never "allocated for research" and the reason nobody wanted it is all the cross-talk with internal devices using something they shouldn't have.

<comment><USER12> Whois literally says 126.96.36.199/24 is a research prefix.

      netnum:        184.108.40.206 - 126.96.36.199
      netname:        APNIC-LABS
      descr:          APNIC and Cloudflare DNS Resolver project
      descr:          Routed globally by AS13335/Cloudflare
      descr:          Research prefix for APNIC Labs

<comment><USER25> APNIC designated 126.96.36.199/24 and 22.214.171.124/24 out of the whole /8 to APNIC Labs for "research" _because_ they were getting so much bogus traffic. That just happened a few years ago.

<comment><USER12> I know.</comment></comment></comment></comment></comment></comment></comment>


What Amazon's Alexa economy pays the people building its skills - <AUTHOR> https://www.cnet.com/news/amazon-alexa-economy-echo-speaker-google-assistant-siri/ <comment><USER3> I wish I was surprised that these platforms are moving more and more toward a sharecropper existence for developers. The mobile app ecosystems for iOS and Android are bad enough; you have very little control, but at least you know the terms when you sign up and if people buy/use your software, you get paid something for it (if you choose to put a price on it). It sounds like for this market, Amazon pays you whenever and whatever they feel like, down to and including "never" and "nothing".

<comment><USER4> Platforms should be utilities. We can't really do without them, and there should not be too many of them for practical reasons. But use them, and we risk giving one or few players all the power. Also platforms give rise to internally regulated markets, and it's one thing if the government regulates a market, but yet another if a company regulates it.

I'm guessing we need special economic rules for platforms, or governments should own them.

<comment><USER5> One of the worst aspects of this, to me, is when the platform company affords its own apps access to APIs apps from the platform aren't allowed.

As an example consider Apple Pay Cash. It grabs anything you send in the messages app with a dollar sign, and converts it to glittery text that prompts you to pay whoever you're talking to.

Aside from the question of whether that feature is useful to you, it's such a bullshit, cheating way to undercut Square Cash and Venmo.

They're exploiting their position to make an unfair playing ground. Feels so gross to me.

<comment><USER3> The deck is stacked at every turn, which is dangerous. The sad thing is that I've always had sort of a belief that "more open wins in the end", but that hasn't really been borne out in the mobile space. Apple and Google have built walled gardens where they always have the advantage in any space they want to operate in (even moreso than Microsoft during its rise to dominance, though they're slightly more subtle about how they wield that advantage to kill competitors). It's pretty much a battle of good vs evil all over again, and evil is winning. It's alarming that new markets are even worse. I haven't looked into the voice apps market for alternatives to Alexa, but I assume if Amazon thinks they can get away with acting this way, the rest of them are the same or worse.

</comment></comment></comment></comment><comment><USER6> I think developers and really anyone dealing with Amazon needs to understand that there are no 'win-win' business relationships with Amazon. If you win, Amazon will try to take it away from you eventually.

<comment><USER7> I started to build a thing (maybe an OpenAlexa) for this reason (glider5.com) - the goal was to eventually hook it up to STT and TTS and have it answer queries, with all the code being open. Right now it kind of looks like a dysfunctional wolframalpha - but where anyone can write the code to answer queries.

Not sure whether to just kill it or do something else with it, but it was a fun idea.

<comment><USER8> I've been playing with Mycroft and Jasper before for the purpose of having an assistant running on a PI but I stopped for different reasons. There is a need for a OpenAlexa assistant out there for privacy aware customers. My gf is pretty excited with the stories emerging around her friends who got Alexa. I'm pretty sure this will expand as an assistant becomes normal. But I don't want to have a Amazon employee at home.

[https://mycroft.ai/](https://mycroft.ai/)

[https://jasperproject.github.io/](https://jasperproject.github.io/)

</comment></comment></comment><comment><USER9> Alexa skills are weird in that Amazon is supposedly selling lots of Echos but our skill has something like 500 active users when our mobile apps are in the 1M+ active range.

We have no idea why skill usage is low. It's a really good skill. The major complaint seems to be having to use our app name to activate it but we have no control over that.

<comment><USER10> What does it do?

I use my Alexa's (3 of them around the house so far) many times a day, but the thing is, there are only so many things I want to speak out loud. It's exacerbated by having to go in "blind" \- I'm not going to remember the incantations to get a response out of dozens of skills, so they - <USER2> the name - need to fall _very_ close to something I'd naturally say.

Overall, I mostly rely on the smart home stuff, basic searches, music, and _one_ extra skill for local travel.

I can't see myself opting to use skills over my phone, tablet or laptop for all that many other things. The above is _enough_ to make me enjoy having them accessible everywhere in the house, so I'll probably augment my existing ones with a few Dot's.

It also doesn't help that there really is a lot of junk skills around. E.g. finding one that reliably provide bus times near me _and_ that has a sufficiently good interface was a pain. There might very well be other skills out there that do a better job, but I simply don't have time to spend going through it. Good curated collections would help a lot.

<comment><USER11> I think Amazon (or Google) needs to solve the problem of skill discovery. I would love to be able to ask Alexa, "What do you know about X" and it could respond with a list of skills or categories of skills so I could at least know where to look.

Even better if I could connect Alexa to a Fire Stick and have it visually display results of a skill search to help me navigate and drill down.

</comment></comment></comment><comment><USER12> Are there any good resources/tutorials for someone who wants to learn how to build these "Amazon skills"/Google Home apps?

<comment><USER13> Here's one : [https://www.youtube.com/dabblelab](https://www.youtube.com/dabblelab)

Full Disclosure - I work at this company! :)

<comment><USER14> Any written tutorials? I've never understand the preference for video for coding tutorials. (It's actually the speaking more than the video I dislike. Or rather it's the enforced pacing that time-based media impose on you.)

<comment><USER15> Some people prefer classrooms rather then books. Videos work like that, except you can speed up or pause the video. You can also easily skip around to the topic that interests you, and you'll easily see how long it takes to learn.

Videos also show you how it works and how it's done. Books cannot do that by mere fact that they are static pages. They can describe and have screenshots.

Hopefully this gives you a better understanding why some people prefer video over text for everything.

<comment><USER14> Makes sense. I can't stand classroom learning either.

</comment></comment></comment></comment></comment><comment><USER16> To be honest skills have no easy monetization path if at all.

I'm not even sure skills really need to exist for anything that only uses the Alexa UI. For IOT devices it makes sense . The big issue is that you cant purchase skills and to get to using a skill is time consuming.

I made a skill called history facts and I don't even use it. I never use skills at all.

<comment><USER17> Most of our use of Alexa revolves around skills. But they are all around smart home products we have like Wemo, Harmony Hub, etc.

The bugbear I have (being a Canadian user) is the region lockouts. A lot of existing skills aren't ticked for English (Canada) support, so we're stuck waiting for skills to show up.

I contacted some product companies for some skills I was waiting for, and it didn't even seem like companies were notified of the region setting or the recent Canadian release.

<comment><USER18> This is a truly unbelievable oversight on Amazon's part. Bad UI is almost certainly to blame for something so silly.

</comment></comment></comment><comment><USER19> On a side note - navigating and consuming content on cnet's site has to be one of the most painful experiences on the web. Slow and ugly only begin to describe it.

<comment><USER20> Agreed. I saved the CNET URL to my GetPocket app and then j st read it from there. It cut out all the other bullshit

</comment></comment><comment><USER21> The article mentions my favorite Alexa skill: Jeopardy. It's a testament to how well the hardware + voice recognition works that you can reasonably play through 12 trivia questions daily with only minor hiccups.

It's not multiple choice, you just answer with whatever phrase makes sense and it mostly just _works_ (which still strikes me as fairly amazing).

<comment><USER22> That sounds much better than the other trivia games I have tried, which have been pretty awful, and reflect poorly on Alexa. They seem to fit a 5 question, multiple choice template.

</comment></comment><comment><USER23> Wolfram Alpha debuted in 2009. Just imagine what they could have been if they'd opened up "skill" creation to the public.

Given that devices equivalent to Alexa or Google Home could pretty much be launched on Kickstarter, is the ecosystem large enough to allow an open-source or more public version of the AI assistant? Is it needed?

<comment><USER24> Wolfram Alpha actually has a pretty significant collection of "widgets" ([http://www.wolframalpha.com/widgets/](http://www.wolframalpha.com/widgets/)). These are commonly embedded on math and science related pages. The more clever widgets take full advantage of Wolfram Alpha's NLP abilities.

As to why they didn't have Alexa-style voice skills, I'm not sure speech recognition is a core competency of the company.

</comment></comment><comment><USER25> Remind me again why programmers haven't started unionizing and working together more to push back against this kind of shit

</comment><comment><USER26> Why is there a featured picture of a developer posing with a Google Home?

<comment><USER27> It was a Dev from Ibm who used to develop for Alexa, but with its' unpredictable payouts , he has spent more time on the Google Home platform which allowed him to advertise his books through Google AdSense.

<comment><USER26> Oh, thanks! Couldn't find anything about it in the article.

</comment></comment></comment><comment><USER28> If anyone looking to build Alexa skills by converting existing content from websites, you might find [https://page.rest](https://page.rest) useful.

</comment><comment><USER29> When I created my skill I created it for myself. The free t-shirt for being one of the first 1000 skills was a bonus.

Even though it has a glaring bug, it still gets more traffic than any of my other personal projects. And Amazon (usually once a year around December) offers $100 credit which I can apply to my AWS account for the traffic it incurs (which still costs me nothing).

<comment><USER29> Correction, it _doesn 't_ have a glaring bug. More people than I imagined are just really bad at music ear training.

Aren't reviews just the best?

</comment></comment><comment><USER30> Virtually nothing

</comment><comment><USER31> The article says that the Alexa economy is increasingly important to Amazon, yet if you go on the developer boards, most of the complaints from last year are still there. The flaws in the system keep serious developers away. Those on Hacker News might remember this conversation:

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

It's also disappointing how much of this system remains vaporware:

[https://www.theverge.com/2016/1/7/10719202/amazon-alexa- ces-...](https://www.theverge.com/2016/1/7/10719202/amazon-alexa- ces-2016-takeover-smart-home)

It's also disappointing that Amazon continues to resist the changes necessary to make the Alexa a good Enterprise eco-system:

[http://www.smashcompany.com/business/the-amazon-echo-will- pr...](http://www.smashcompany.com/business/the-amazon-echo-will-primarily- succeed-in-business-settings-not-in-home-settings)

On this last point, it is frustrating that we have not seen more competition. Most startups lack the resources to build their own voice system, so they want to build on the back of service being offered by Amazon or Apple or ...

Apple promised to open Siri, but so far you can't build Enterprise apps with Siri.

There is interest among managers. Among the ideas that business leaders have asked me about:

1\. An Amazon Alexa in every hotel room, ready to answer guests questions

2\. A salesperson leaves a meeting where they made a sale. They get in their car and drive home. They talk to their ______ device and all of the data is sent to Salesforce, the app creating a new Opportunity or new Tasks.

3\. An Amazon Alexa skill that can reach into the companies Salesforce account and generate a report for high level executives

Of this last one, we had a working demo in early 2016, but we need some extra tools for specifying the phonetic sound of a company name, as Alexa mangles the names of companies such as IBM and CNET.

As to #2, we worked on a text interface for Salesforce in 2015. I wrote about that extensively here:

[https://www.amazon.com/Destroy-Tech-Startup-Easy- Steps/dp/09...](https://www.amazon.com/Destroy-Tech-Startup-Easy- Steps/dp/0998997617/)

We then investigated how to do this with voice. At the moment, it seems the best option is to use voice-to-text on an iPhone or Android. It's an open question whether it is best to use IBM Watson's NLP tools or build a specialized tool just for dealing with Salesforce.

<comment><USER32> For your Salesforce bridge, have you checked out something like Twilio Understand? It helps you build a back-and-forth conversation and makes it easier to capture user responses as structured/templatised data. [https://www.twilio.com/understand](https://www.twilio.com/understand)

</comment></comment><comment><USER33> Shameless plug: I'm the co-founder of a company building entertainment & games on Alexa and we're hiring node.js engineers in SF Bay.

We are seed funded and looking to continue growing our user numbers and team, email me if you want to hear more!

<comment><USER34> Honest question - why would you do this? Without any possibility of direct revenue for any skills you build, what's the motivation? It seems that all you'd be doing is enriching the Alexa ecosystem out of your own pocket.

<comment><USER33> There is very much the possibility of direct revenue, stay tuned</comment></comment></comment>


Your Startup Sucks - <AUTHOR> http://browntrout.wordpress.com/2011/09/18/your-startup-sucks/

<comment><USER2> I agree, most startups do suck. That said, the article was very poorly written and the argument was without substance.</comment>


'Nazi gold train' investigators start excavating site in Poland - <AUTHOR> http://www.msn.com/en-us/news/world/nazi-gold-train-investigators-start-excavating-site-in-poland/ar-CC6h1t?ocid=mailsignout <comment><USER2> Probably has all of the contents from Capone's safe :-) [1]

It is interesting in this day and age how difficult it is to do good imaging underground. Seems like something computer power and GPUs should be able to address.

[1] [https://en.wikipedia.org/wiki/The_Mystery_of_Al_Capone's_Vau...](https://en.wikipedia.org/wiki/The_Mystery_of_Al_Capone's_Vaults)

</comment><comment><USER3> While I find this ongoing story really intriguing, it pisses me off a bit that the actual Nazis plagiarised the plot of my novel!

<comment><USER4> _" When I was a teenager we knew something had gone on here. But there was no one to ask because all the (German) residents were shipped out of the area and replaced by Poles after the Potsdam Agreement."_

Just have a think about that: displacement leading to loss of historical continuity. How would people feel ending up in some city possibly hundreds of miles from where they grew up? Could be a nice sub-plot...

<comment><USER3> It's an interesting idea! But I was being literal, my novel actually exists ([http://www.amazon.com/dp/B00QPBYGFI](http://www.amazon.com/dp/B00QPBYGFI)) and one of the major plot points is very similar to this real one. So maybe for the sequel :)

</comment></comment></comment><comment><USER5> None of the embedded photos is showing properly. Perhaps change link to [http://www.theguardian.com/world/2015/nov/08/nazi-gold- train...](http://www.theguardian.com/world/2015/nov/08/nazi-gold-train- investigators-start-excavating-poland)?

</comment><comment><USER6> Considering the source of the gold how is this find going to be distributed?

<comment><USER7> If there is gold then it has probably come from a number of sources, including raided banks, the jewellery and gold filings of Jewish prisoners who ended up being gassed.

I'm not sure how you'd figure out how to divvy that up fairly. I hope that they find the train and it is just empty out full of weapons, but no good and no art. Exactly for this reason.

<comment><USER6> well as far as gold goes they pretty much ingored the sources during the post WW2 world gold consolidation and redistribution but now it might be a bit more complicated. European Jewry wasn't the only source of gold, but it was one of the prominent ones as France and many other European nations actually stowed the gold away in the UK and in other places that weren't occupied. If there are any substantial amounts of goods there there will be a very ugly legal battle if there aren't goods there then anything outside of anything that might add to the historical record should probably be scrapped. While some people might argue that anything from that period has an historical value I quite disagree we all can assume which people trade in things like Hitler's dinnerware [http://www.germaniainternational.com/hitler3.html](http://www.germaniainternational.com/hitler3.html) these types of items do not hold any historical value in my eyes, because other than confirming the pretty obvious fact that Hitler have had to eat dinner from time and that he would probably had some fancy plates it doesn't really add anything. And these types of items are usually traded by people who pretty much use them as alter pieces which is probably quite disturbing to most people.</comment></comment></comment>


TechStars Boston Applications Open for 2011 - <AUTHOR> http://www.techstars.org/2010/11/08/boston-2011-applications-now-open/

<comment><USER2> I love Boston, but this is the first time I've ever heard anyone describe time there as "luscious," and if I was wanted to start a company why would I care about the trees blooming along the Charles? And why are there three exclamation points in the title?

I don't understand. Who is the target audience of this post? I have read some good things about TechStars, why the used-car-salesman approach to marketing?

</comment><comment><USER3> Can't recommend this program enough! New England isn't as hot a scene as other parts of the country, but the Cambridge location places you right in between MIT and Harvard. Broderick is a hoopy frood who really knows were his towel is, too.

Work shoulder to shoulder with the other companies in the TS Office, interact with awesome mentors, and have access to an amazing network for the rest of your days as an entrepreneur. Wicked good stuff, if you ask me.

</comment><comment><USER4> TechStars Seattle founder here!

Just had our dress rehearsal for demo day. Thursday is the big event. Stoked!

I highly recommend TechStars, the program has been amazing. The mentorship is worth every share and we've all been having a blast. Even if your company spontaneously combusts, the experience is amazing. If you are interested, don't hesitated to apply to any city.

</comment><comment><USER5> I just read their new book, "Do More Faster". To get a little better feel for what TechStars is like, I strongly recommend it. (Read it anyway, whether you're interested in TechStars or not.) My comments last week about their book:

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

</comment><comment><USER6> How much equity are start-ups asked to sell for 6-18k?

<comment><USER7> They provide $6000 per founder for up to 3 founders. They get 6% equity stake in return (I'm not clear if they still get 6% if there's only one founder).

See this page: <http://www.techstars.org/details/>

(BTW, I'm doing a startup in Boston. I'm sure they'll get lots of applications, but this isn't for me.)

Edit: I saw someone recommend their book. Let me plug another one. I'm _loving_ Steven Blank's Four Steps To the Epiphany ([http://www.amazon.com/Four-Steps-Epiphany-Steven- Blank/dp/09...](http://www.amazon.com/Four-Steps-Epiphany-Steven- Blank/dp/0976470705/ref=sr_1_1?ie=UTF8&s=books&qid=1289243860&sr=1-1))

<comment><USER8> In the past, someone here criticized that book - at least I think it was that one - as appearing to be a collection of notes rather than a fully formed book. Digging...

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

Hrm... can't find it. Am I remembering correctly?

<comment><USER7> I think that's too harsh. The book has more "micro" errors than I'd like to see. By "micro" errors I mean some poorly drawn diagrams and some grammar errors that break my flow. I noticed that no editor is credited, and the book would be improved with an editor. Too many micro errors can hurt a books credibility (if they didn't take the time to polish the book can I really trust the content?).

On the other hand, I think the advice in this book is fantastic. Two examples of things discussed:

1) Deciding what type of market you are entering (existing, re-segmented, new) and the consequences of each market type.

2) Confirming your hypothesis before you try to scale.

Get past the micro errors. The content really is quite good. Or I _think_ it's good. What the hell do I know. There's a scene in Moonstruck where one of the characters seeks advice until she gets the answer she wanted to hear in the first place ('maybe they're afraid of dying?'). There may be some of that going on with me and this book.

<comment><USER8> My recollection was that the person was saying they liked the content, just that it lacked some polish.

Like I said though, that was just a vague notion I had. I haven't read the book, but do enjoy reading the stuff he posts to his site a lot.</comment></comment></comment></comment></comment>


Mc.js: A Minecraft clone built entirely with JavaScript - <AUTHOR> https://github.com/ian13456/mc.js <comment><USER2> I suppose this is good, but Javascript can pretty much do anything these days, as I assume most people know. In fact, a guick Google reveals quite a few Javascript' Minecrafts. Not sure why this is special.

<comment><USER3> I think projects like this show a lot of brainpower and determination the developer has. In case someone wants to prove his knowledge and connect different kind of technologies, a project like this is a wonderful way to do so.

Heads up to anyone doing such projects. It's amazing.

<comment><USER4> I second your comment. I'm sure the developer learned so much from building this and skills learned can definitely be applied to other aspects of their career.

</comment></comment></comment><comment><USER5> Has anyone noticed this has been taken down due to DCMA...

<comment><USER6> Sadly yes.

</comment></comment><comment><USER7> Cool. Where is the code handling the world map/blocks? I want to see how the data structure looks.

<comment><USER8> There are projects that load Minecraft data such as the one I made in 2012 under my GitHub runvnc mcchunkloader or the classic.minecraft or maybe the other Minecraft modules out there. But this isn't one of them as far as I know.

<comment><USER9> Hi! just found this randomly, didn't know someone posted my repo. I did state that the game is currently a work in progress, and the goal is to have all the features in minecraft.

</comment></comment></comment><comment><USER10> I guess it's a bit like the official browser based Minecraft

[https://classic.minecraft.net/](https://classic.minecraft.net/)

Doesn't seem massively newsworthy to me.

<comment><USER11> Dunno, the engine in the article looks pretty impressive to me. And I say that as the author of a fair chunk of the "official" version (I'm not affiliated with Mojang, but they built minecraft classic on my JS voxel engine).

<comment><USER9> I'm a big fan of yours! I love the noa engine

<comment><USER11> Ah cool, thanks, I'll definitely watch your engine as well!

</comment></comment></comment></comment><comment><USER12> If you support stereoscopic VR view with for example A-Frame it can run in Firefox Reality everywhere. Oh wait, someone did something like it [https://drawvr.com/minecraft/](https://drawvr.com/minecraft/)

</comment><comment><USER13> > Motivation

> Having to open an additional app to play a game is sometimes too tiring

Really? This is the motivation?

I can understand just the will to reimplement minecraft for the sake of it, as a challenge, to learn something, etc. but to not double click "another" application sounds really naive.

<comment><USER14> I think that's one of those "joke" things you read about.

<comment><USER9> Sorry I'm planning on revamping the entire README once the project gets to a good level of completion (still missing a lot of features). The motivation part was just a joke, didn't think people would pay much attention to it :/

<comment><USER15> Hey man, don't take the criticism here too hard. You did an amazing job, and it's one the better WIPs I've seen yet. Have some fun!</comment></comment></comment></comment>


Build your own FPGA (2012) - <AUTHOR> http://blog.notdot.net/2012/10/Build-your-own-FPGA <comment><USER2> Funny, just the other day at work I was trying to explain to someone what an FPGA was and I used the 7400 TLL example and said imagine if you had a crate full of TTL chips and you could put them all onto a single die, arrange them with the most common ones in little module called LUT's and then be able to cross connect any input to any output using a memory type array. The guy I was explaining it to was familiar with TTL from school and immediately the light went on.

</comment><comment><USER3> Is there a good idiots guide to understanding FPGAs and how to develop for them? I have a CS background (so I've read both Hennessy & Paterson books) but don't know FPGAs nor have an EE background.

Reading about FPGAs always confuses me, from the perspective of someone who thinks as a normal SW developer. Like where does the FPGA begin execution, etc...

TIA

<comment><USER4> FPGAs are synchronous digital logic. That may sound complicated but it's actually conceptually quite simple. If I had a white board I could show you a diagram in 10 seconds that would probably clear everything up. But instead here's my attempt at a description.

1- digital logic. From your CS background you're familiar with AND, OR, NOT, etc... imagine having a bunch of these simple functions and being able to combine them and reorganize them to meet your needs. These functions are "continuous " in that they always update their output when their inputs change.

2 - synchronous: this essentially means "registers" that store values (flip flops) are controlled by a global clock signal. When the clock "triggers" (usually on the rising or falling edge) new values are loaded into the registers.

So with those definitions in mind, an FPGA, or any other synchronous digital system, can be thought of as: inputs feeding registers, feeding a cloud of logic, feeding registers, etc... for as many stages as is needed (or possible) until you get to the outputs.

Edits: clarifications (hopefully)

<comment><USER5> That's actually a pretty good overview with an appropriate level of simplifying. I don't see that much here with regards to digital logic.

</comment></comment></comment><comment><USER6> One thing I've wondered is to what extent does discrete logic "scale proportionally" to integrated logic.

I mean if you make a big machine out of these things, are the trade-offs you make regarding e.g. signal fanout and propagation delay similar to those made in an IC that did the same computation?

<comment><USER7> One of the biggest issues is complexity. Sure you can make some fairly complex things within an FPGA fabric, like a CPU or GPU. However, you'll see a slow down in two areas. The first is routing, whereas an IC would just have a wire between two components, FGPAs have to route further and through different interchanges. Second, components can only be built up through the basic components of the FGPA, typically a LUT and FFs. The more complex components, the more small parts. Another aspect is memory; blockram works decent but it's an explicit design choice, DRAM via DMA is also a pain too.

</comment></comment><comment><USER8> This is really cool, but I'm surprised they didn't try to make a CPLD. You would at least have a shot at matching an IC for amount of logic gates.

<comment><USER9> Out of curiosity what makes an CPLD different from an FPGA?

<comment><USER10> Originally CPLDs used arrays of PLDs/PLAs which use a wide network of programmable AND-OR gates to implement logic equations with relatively sparse routing resources between logic elements. FPGAs will use a more fine grained element for implementing logic (SRAM LUTs or small clusters of muxes) with denser routing resources.

That distinction is a bit blurred nowadays because Altera has "CPLD" products that are using conventional FPGA architecture equivalent to what was state of the art for FPGAs 25 years ago.

</comment></comment></comment><comment><USER11> With tongue firmly in cheek, I wonder how long before it becomes cost effective to mine Bitcoin with raw 74xx logic?

<comment><USER12> Bitcoin miners are already using custom ASIC's on expensive, process nodes. Anyone using discrete logic would be running at a snail's pace compared to them.

<comment><USER13> What about mining ethereum on FPGA, would it be suited?

<comment><USER12> I don't know specifics on Ethereum. Basically, it has to be within the hardware constraints of FPGA's where CPU's, GPU's, and ASIC's don't convey an advantage.</comment></comment></comment></comment>


Widely useful Python utilities by Peter Norvig - <AUTHOR> http://aima.cs.berkeley.edu/python/utils.html

<comment><AUTHOR> Newer version of these can be found on AIMA-Python site, which is an excellent read alone: [http://code.google.com/p/aima- python/source/browse/trunk/uti...](http://code.google.com/p/aima- python/source/browse/trunk/utils.py)

</comment><comment><USER2> Note that more of them have been merged to recent Pythons than just the top: the `dict` constructor can now take kwargs (and a first dict argument, which means you can create an extended copy of dict _d_ with `dict(d, foo='bar', baz='buzz')`), there's a `collections.defaultdict` in 2.5, `namedtuple` in 2.6 is pretty similar to his Struct (though not exactly, `namedtuple` is a type builder, Norvig's `struct` is basically a dict with args instead of items).

`every` and `some` can be emulated by composing `map` (or a listcomp) with the builtin `any` and `all` (which, for some reason, don't take an optional predicate)

<comment><USER3> _`every` and `some` can be emulated by composing `map` (or a listcomp) with the builtin `any` and `all` (which, for some reason, don't take an optional predicate)_

No they can't - this version wouldn't short circuit evaluation, which is completely the wrong behavior. Map would have to apply the predicate to every element of the list before any/all kicked in.

As a trivial example, consider I had a million item list and want to find out if every element is prime. If 8 is the first element, 'every' would return false after looking at the first item - while your composition would apply the prime predicate to all million elements (which would be ridiculously slow ...) before even starting to apply 'all' (which would short circuit, after seeing the first false).

<comment><USER4> If you have enough elements to desire short circuit evaluation you can, as `masklinn` mentioned, use a list comprehension. Specifically a generator list comprehension.

<http://www.python.org/dev/peps/pep-0289/>

        big_list = make_big_list()
        if any( not prime( a ) for a in big_list ) :
          do_thing()

When you surround the list comprehension syntax with parenthesis instead of square brackets, either as a lone argument to a function or independently, you create a generator that will iterate once over the given data.

This allows for functions accepting sequences to short circuit without completing the function mapping.

</comment></comment></comment><comment><USER5> A useful utility I've rarely seen included in such a list is inverse_image(collection, function) which computes the inverse image of the function restricted to the collection.

A simple example:

        students_by_grade = inverse_image(students, lambda s: s.grade)

Then students_by_gender["A"] contains a list of all the A students (and so on).

<comment><USER6> Agreed - sometimes known as "group by".

</comment></comment><comment><USER7> On a semi-related note, the code for AIMA taught me a lot about Python, just from reading through it at trying to understand.

[http://code.google.com/p/aima- python/source/browse/#svn/trun...](http://code.google.com/p/aima- python/source/browse/#svn/trunk)

</comment><comment><USER8> <http://urchin.earth.li/~twic/twic.py>

excellent. and great comment: """This is Tom's personal Python subroutine library. You are not expected to understand this.

Warning: this file contains HIGH MAGIC and DEEP VOODOO, as well as quite a bit of QUESTIONABLE CODE and very few COMMENTS. Use with caution.

ha!

<comment><USER9> so....what's excellent about it.... or do you mean you find it useful to use?

i'm personally very cautious about introducing "magic" and "voodoo" into my repositories. i many times have to tweak libraries (add features, fix bugs), so it's worth them making sense without me having to refactor them first (i did this with qunit, tho...it's hard to generalize, eh?).

more importantly, it's important to me that new developers ramp up fast. there's something about collaboration that many lone programmers don't grok. similarly, the code must make sense to me next month. extensibility and maintainability are almost inversely related to voodoo and magic.

good abstraction, handling complexity through elegance, now these are worth having.

it can be quite hard separating good programming from bad. it is even harder when the work itself is complex in nature, although that is when good programming really shines.

</comment></comment><comment><USER10> These are pretty good, some common sense or helper like things that I have implemented here or there at one time or another. Granted, some default programming styles may alleviate the need for some of these things, or ultimately you may want something different in your specific application. Good to see!

</comment><comment><USER11> These are useful! It always helps to take the monotony out of writing code (especially with methods that check boundary conditions and overflows) and spend more time on the actual design.

</comment><comment><USER12> somebody want to explain this?

infinity = 1.0e400

<comment><USER13> the largest representable float in Python is around 10^300 something or so. Anything bigger is considered infinite. Peter Norvig wanted a name for the float bit pattern that represents infinity.

<comment><USER14> float("inf")?

<comment><USER15>
        >>> 1.0e400 == float("inf")
        True

I don't know, if there is a difference. Maybe the interpreter can evaluate 1.0e400 a little faster?</comment></comment></comment></comment>


Threading Challenge Programming Contest - <AUTHOR> http://software.intel.com/en-us/contests/Threading-Challenge-2009/codecontest.php

<comment><USER2> Wow! A grand prize of a$350 net book computer. The generosity of the $giga corporation is staggering.</comment>


Ask HN: How important is choosing a target market? - <AUTHOR> I was reviewing an interview with Nathan Barry, the founder of ConvertKit. He took his SaaS from $5,000 in MRR to $700,000 in MRR.
He says a major reason for the turnaround was positioning.
Here's the interview: https://www.youtube.com/watch?v=cVNYcj5HkLA
Basically, changing his customer focus from "Email marketing for anyone unhappy with MailChimp" to "Email marketing for professional bloggers" is when his product really got traction.
Here are his Baremetrics stats: https://convertkit.baremetrics.com/
Have any of you experienced something similar? Did changing your positioning improve growth? <comment><USER2> I'm not an expert, but seems like positioning is important for any kind of commodity product. And at this point email marketing tools are definitely a commodity product.

Whether positioning is critical to selling your product requires a little insight into the product and the market it's in.

</comment><comment><USER3> Call it target marketing or a better customer profile. Finding people willing to pay more always helps</comment>


Dead-simple symmetric encryption with *sym*, with password-protected keys and more - <AUTHOR> http://kig.re/2017/03/10/dead-simple-encryption-with-sym.html <comment><AUTHOR> Looking for any feedback, suggestions, or discussion. Thanks!</comment>


Ask HN: Modern C/C++ tech stack? - <AUTHOR> I am a professional software engineer who has spent most of his 20-year, post-college career in interpreted languages. As much as I love never having to think about pointers or threads, more and more I bump up against the wall of what's possible in these environments - I only get to use low-level services like graphics and audio or cutting edge solutions like WebRTC if someone kindly wrote and maintained native bindings in my languages of choice.
Enough! It's time to take the plunge!
From my armchair, it looks like I'll need to pick:
* compiler * build system * linter and other tooling * standard libraries
I am all for standing on the shoulders of giants... I want to build non-crappy software that does meaningful things with the best tools.
What pieces should I put together?
FWIW, I'm seeing great threads on learning C++, but don't see a toolchain convo. Feel free to correct me!
- https://news.ycombinator.com/item?id=23380537 - https://news.ycombinator.com/item?id=20252926 - https://news.ycombinator.com/item?id=16535886 <comment><USER2> Just my 2 cents, there are not "wrong" answers IMO, just tradeoffs and opinions.

Go with a gcc/g++ based toolchain, it has a few warts as most do, but it is flexible, well known, documented online and most every library and system works with it. I use gcc/g++ on everything from micro-controllers to servers using C/C++ and it works and has good support. I personally still like makefiles over CMake, but that is personal and nothing is wrong with CMake and many new solutions pick CMake for their build process. Pick a decent IDE that makes your life easier, I use CLion for all server/desktop and on microcontrollers I use either CLion with makefiles or in some cases Atollic Studio since it is well integrated with STM toolchains.

Last point, in reference to C++ if you are learning/planning to use it, stick with modern C++ wherever possible, much of what people complain about C/C++ is really just their own lack of knowledge or bias to what the language was 30+ years ago.

<comment><AUTHOR> Thank you for the tips!</comment></comment>


The Startup Industry's Toxic "Side Hustle" Fixation - <AUTHOR> https://theringer.com/startup-culture-side-hustle-uber-4f8bebf25 <comment><USER2> [https://www.google.ie/amp/s/theringer.com/amp/p/4f8bebf258e0](https://www.google.ie/amp/s/theringer.com/amp/p/4f8bebf258e0)

This got moderated off the homepage within about 30 seconds. I can't see anything very offensive about it. Bit of a retread of familiar ground I guess.

</comment><comment><USER3> This link is broken!</comment>


Velocity Raptor – an adventure in 2+1 dimensions - <AUTHOR> http://www.testtubegames.com/velocityraptor.html <comment><USER2> Hey there - game's creator here. I came across this post and figured I'd pop in to say: thanks to everyone for playing! (And thanks to stared for sharing it.)

I'm happy to answer any questions/take feedback/suggestions.

Oh, and __m: I can't reveal VR's secret identity... what if Professor Rex found out? Could spell certain disaster.

<comment><USER3> Since you're using Flash, have you considered using either AGAL shaders or DisplacementMapFilter to implement relativistic aberration?

Here is a crude example I just threw together (click for focus, then use the arrow keys to move): [http://circlepush.com/raptor.html](http://circlepush.com/raptor.html)

<comment><USER2> Oh, that's really cool. No, I'd not heard of those shaders or DisplacementMapFilter - but it sure looks like they could do what I need. My current method (as you can perhaps tell) is to split the (non-relativistic) image into a bunch of thin triangle fanning out radially from your character, then redraw those images onto triangles with modified angle/vertices.

It works pretty well, but I imagine using one of the methods you listed would be a lot faster. Thanks for sharing them, I'll keep them in mind for a possible upgrade to the game.

<comment><USER3> I'm a bit embarrassed to admit I didn't realize you'd already solved this, because I hadn't played all the way until level 25 the first time around. Your method looks fantastic.

<comment><USER2> Oh - haha - no problem. One of my favorite parts of watching people who know about relativity play this game is seeing them a) think of an effect that isn't shown in the game, and state that out loud, then b) reach the level that the effect is introduced. (Doppler shift, aberration, etc.) Makes me smile every time.

</comment></comment></comment></comment></comment><comment><AUTHOR> For another game on special relativity, there is A Slower Speed of Light ([http://gamelab.mit.edu/games/a-slower-speed-of- light/](http://gamelab.mit.edu/games/a-slower-speed-of-light/)), which is (also) very realistic: [http://physics.stackexchange.com/questions/43695/how- realist...](http://physics.stackexchange.com/questions/43695/how-realistic-is- the-game-a-slower-speed-of-light).

</comment><comment><AUTHOR> And a list of such science-based games, which I am constantly expanding: [https://hackpad.com/Science-based- games-J0X4MSberlM](https://hackpad.com/Science-based-games-J0X4MSberlM)

<comment><USER4> whether considered a game could be debatable..

this cern based incremental game is wondrously full of great research that the player discovers through perseverance :

[http://particle-clicker.web.cern.ch/particle-clicker/](http://particle- clicker.web.cern.ch/particle-clicker/)

</comment></comment><comment><USER5> Nice game. I think lots of concepts can be taught with these types of games. A physics quibble - should the raptor be able to stop instantaneously, even when moving right near the speed of light? Shouldn't slowing down happen over time just like speeding up? I'm asking both from a newtonian physics perspective and as a way of showing how time changes during the deceleration.

<comment><USER2> Thanks for playing. It's an interesting question about the huge-and- instantaneous acceleration when the raptor stops. The way I treated it when making the game was that the spacebar is equivalent to applying an acceleration exactly equal to (minus) your speed divided by the timestep of the game. Which means from one frame to the next you'll go from moving to stopped.

So from a technical perspective, the acceleration isn't infinite, since it happens over the course of a single frame. Of course, that reveals one of the odd parts about having discrete time-steps (frame, frame, frame) instead of continuous time.

Practically, the acceleration it would take to stop you _that_ suddenly would indeed be immense, and certainly the forces would be enough to tear a normal velociraptor's claws right off her feet. (Luckily, VR is no _normal_ raptor)

If you do want to be able to see the acceleration, you can always use the arrow keys to slow down... or hold down an arrow key as you hit the spacebar (that decreases the 'braking' acceleration)

</comment></comment><comment><USER6> I-is that one of KSP's space music I'm hearing on the first level ?

<comment><USER2> Yes it is. It's 'Bathed in the Light' by Kevin McLeod. He's got a nice site (incompetech.com) filled with royalty free music. Great for low-budget game devs like myself. Sounds like KSP picked one of the same songs I did.

<comment><USER6> Thanks for the link! That's going in my bookmarks.

Great game, by the way.

<comment><USER2> Thanks! And no problem about the link. I'll warn you, though, once you listen to his music, you'll start to hear it _everywhere_ in games. So listen at your own peril :)

</comment></comment></comment></comment><comment><USER7> The Kerbal Space Program music is a little distracting, but it's a pretty clever game!

</comment><comment><USER8> I love the game but I don't understand the exact mechanics for when I unlock a gate. Do I just need to be near the key when it is the right colour? Because that doesn't seem to work all the time.

<comment><USER9> I believe you need all the keys to turn the same color as the gate, simultaneously.

<comment><USER8> Thank you! Your method works.

With it I beat the game. The game really helped my understand special relativity in a "intuitive" way.

</comment></comment></comment><comment><USER10> I've measured the bullet speed by syncing the raptor with the bullets and it seems that Newtonian bullets go 2 mph and relativistic ones (level 35) only 1.4 mph?

<comment><USER2> Different cannons shoot bullets at different speeds. Check out the (bonus) level 40 to just play around with a few different cannons at once, and see that their speeds stay constant whichever view you select.

I wanted to let the bullets have different speeds to change the 'strength' of the relativistic effects. For example, making the ones in level 9 move really, really fast so you couldn't pass through them without using a little relativistic trick.

</comment></comment><comment><USER11> anyone else have to stop playing due to motion sickness? it's odd; i usually don't get that from games but this one made me feel distinctly queasy.

</comment><comment><USER12> Is the name of the Velocity Raptor Mr. Tompkins?

<comment><USER13> As in "Mr. Tompkins in Wonderland"?

<comment><USER12> indeed, the game reminded me of it. Thinking again about it, the player could also be called Mr.Tompkins.

</comment></comment></comment><comment><USER14> I can't get past level 12, because I can't pick up the key although it's correct color.

<comment><USER10> You don't need to pick up the key, you just need to observe it as the correct color.

<comment><USER14> I'm pretty sure I picked it up in the previous level. How do I 'observe' it?

Edit: Seems I need to match the colors. Didn't read instructions.

</comment></comment></comment><comment><USER15> I'm curious, why a raptor?

<comment><USER2> Either:

a) Raptors are the cleverest of animals, with an uncanny ability to understand relativity. b) I am obsessed with Jurassic Park and couldn't pass up a good pun.

So, you know. One of those two.

<comment><USER16> [https://xkcd.com/135/](https://xkcd.com/135/)

</comment></comment></comment><comment><USER17> This is quite great!</comment>


SWI-Prolog extensions in version 7 - <AUTHOR> http://www.swi-prolog.org/pldoc/man?section=extensions

<comment><USER2> It has built-in maps now! (like dicts or hashes in other languages).

[http://www.swi-prolog.org/pldoc/man?section=maps](http://www.swi- prolog.org/pldoc/man?section=maps)

That is exciting. I'd want to play with it again. I like Prolog. Or rather, I like idea of Prolog, until I go to solve a problem and it breaks my brain. I love seeing elegant solutions to complicated problems in 10 lines of code, but also realizing there is little chance of me coming up with those solutions.

Other languages, functional, OO, imperative, I can often iteratively improve a solution. It goes from wrong,better, even better, almost works, good enough. With logic languages it goes from wrong, wrong, wrong, x100 ..., aha I got it and it is beautiful and short.

Also speaking of maps, Erlang is probably going to get them too in the next release early next year -- R17, [https://github.com/erlang/otp/tree/egil/maps/eep- implementat...](https://github.com/erlang/otp/tree/egil/maps/eep- implementation).

<comment><USER3> > It has built-in maps now!

Prolog has always had that. You declare facts like parent(patricia, shelly), and you cant make this at run-time too with assert and retract. Unification & resolution makes this work like a 2-way map. What's the big deal now?

<comment><USER2> > 5.4.3 When to use maps? > Maps are a new type in the Prolog world

Sorry, I'll take SWI-Prolog developers' word over yours in this case.

Your argument is a bit like the "Well this old existing language is Turing complete, so why bother with anything".

<comment><USER4> _Your argument is a bit like the "Well this old existing language is Turing complete, so why bother with anything"._

Except that he is right that Prolog facts (and other clauses) can be used as a mapping. At the very least, modern Prolog implementations index on the first argument (compute the hash code and look that up). So, you get similar properties to a hashmap: you can look up in O(n) time and get an associated atom/term/...

However, multiple clauses can match a query. For instance, given

      foo(bar(x),1).
      foo(bar(y),2).

the query _foo(bar(_),X)_ creates a backtracking point (both facts unify, so X will be bound to x and y subsequently). SWI-Prolog's new maps behave more like normal maps in that there cannot be duplicate keys. However, you could enforce that with Prolog facts as well:

      assert_unique(parent(X,Y)) :-
        retractall(parent(X,_),
        assert(parent(X,Y)).

_assert_unique(parent(jack,john))_ will ensure that any _parent(jack,_)_ facts are removed before asserting the new fact.

<comment><USER2> A prop list can be used as a mapping too. What about integers being keys. Or say de-serializing a nested JSON document to clauses. How does a 3 level deep map work with clauses?

>

         assert_unique(parent(X,Y)) :-
         retractall(parent(X,_),
         assert(parent(X,Y)).

Maybe to you that looks like an example why maps are _not_ needed as they just reinvent the wheel or something. To me it looks like an example why maps _are_ needed.

<comment><USER4> _What about integers being keys._

That works fine.

 _How does a 3 level deep map work with clauses_

The most straightforward manner is like you would do this in a relational database (if the goal is to keep O(1) times). E.g. two-level:

      foo(a,x).
      foo(b,y).

      bar(x,a-x-one).
      bar(x,a-x-two).
      bar(y,b-y-one).

Again, you can add predicates to make this less unwieldy.

If the JSON conforms to a schema, there is also the possibility of mapping particular keys to arguments. Since you know the set of possible keys in such a case, you could map keys to fixed term arguments. E.g. a structure such as:

      { "foo": "apple", "bar": "pear" }

Could be mapped to:

      json(apple,pear)

You would have the same You could do this for deeper maps as well. It gives you the same benefits as hash maps, O(1) indexing. In fact, the Hdrug[1] system uses such a representation for partially typed feature structures, which can have an arbitrary depth. It provides a DSL for easily specifying types (the 'schema') and unifying structures and substructures. There is also a short description in the introductory chapters of my thesis, though it is definitely not my work ;).

Note: I am not for or against adding maps to the language. There are probably applications where they are very handy in Prolog. For the things I worked on in Prolog I never really needed first-class maps.

[1] [http://www.let.rug.nl/~vannoord/Hdrug/](http://www.let.rug.nl/~vannoord/Hdrug/)

[2] [http://danieldk.eu/Research/Publications/phd- thesis.pdf](http://danieldk.eu/Research/Publications/phd-thesis.pdf) (starting at the end of page 19)

<comment><USER5> syringes???

<comment><USER4> It's a joke. RUG (Rijksuniversiteit Groningen, University of Groningen) is actually where it was developed. Hdrug was probably an acronym at some point, and with such a name you quickly think of other substances ;).

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> I've been looking for a reason to use Prolog for some time, as I've always had a sort of latent interest in learning it... but never had a project that just _screamed_ for using Prolog.

Now, I think I may have that project. We're at a point with some of our projects to where we are extracting structured information (as RDF) from unstructured content, and storing that RDF in a triplestore, and allowing SPARQL queries. So you can do things like asking for system for all "entries" (where an "entry" can be a tweet, a blog post, an email message, etc.) where say, "all entries that mention a musician who was born in the UK" or "all entries that mention a college or university in the US, founded after 1800" or whatever. Of course, normals don't write SPARQL queries, which leads us to doing a certain level of natural language understanding, and then automatically generating the corresponding SPARQL.

As it happens, Prolog has long been associated with NLP and there is quite a bit of literate on doing this kind of work with Prolog. So now I'm very excited about a chance to learn Prolog and apply it to a problem that I find very interesting.

 _Aside: Yes, I am aware of Quepy[1], which does this in Python. But I also want to learn Prolog for other reasons as well, and want to spend at least a little bit of effort exploring doing in Prolog. But if it proves to be too challenging to get something working, we may use Quepy._

[1]: [https://pypi.python.org/pypi/quepy/](https://pypi.python.org/pypi/quepy/)

</comment><comment><AUTHOR> Version 7 now installs as an app on OS X.

It is heartening to see the icon in the task switcher: [http://twitpic.com/dmc8pb](http://twitpic.com/dmc8pb)

</comment><comment><USER7> Excellent! I used to enjoy swi-prolog a lot, especially the semantic web library.</comment>


An Introduction to C++ Coroutines [video] - <AUTHOR> https://www.youtube.com/watch?v=YYtzQ355_Co <comment><USER2> Slides: [https://meetingcpp.com/tl_files/mcpp/2015/talks/James%20McNe...](https://meetingcpp.com/tl_files/mcpp/2015/talks/James%20McNellis%20-%20Coroutines%20-%20%20Meeting%20C++%202015.pdf)

<comment><USER3> Thank you for posting these

</comment></comment><comment><USER4> For those interested in this topic, I've written c++ wrappers around lthread.

[http://lthread-cpp.readthedocs.org](http://lthread-cpp.readthedocs.org)

</comment><comment><USER5> I remember at Waterloo using mC++. Is this the same ? It was pretty fun way to learn about different concurrency paradigms.</comment>


What Can We Learn from the Intel SPMD Program Compiler? - <AUTHOR> https://software.intel.com/en-us/blogs/2018/12/17/what-can-we-learn-from-the-intel-spmd-program-compiler <comment><USER2> Interesting to see Intel boosting ISPC again. My impression had been that it was a skunkworks project they never really supported or accepted.

See Matt Pharr's very interesting blog posts on the development and open- sourcing of ISPC.

[1] [https://pharr.org/matt/blog/2018/04/30/ispc- all.html](https://pharr.org/matt/blog/2018/04/30/ispc-all.html)

<comment><USER3> I second that.

Matt Pharr's posts on ispc are an extremely interesting read, both from a technical perspective (programming abstraction and hardware design) and a human perspective (Intel politics, managing style, and career decisions).

<comment><USER4> Thirded. One of the best take-away from his series of posts is that a programming model that a programmer can reason about is far better than compiler optimizations that a programmer can only guess about.

</comment></comment></comment><comment><USER5> I worked on a project that compiled a declarative DSL to both vectorized CPU code and GPU code.

For the vectorized CPU code, I found ISPC generally pleasant to use, but don't be fooled by its similarities to C. It's not a C dialect, and I got burned by assuming any implicit type conversion rules that are identical across C, C++ and Java would also hold for ISPC. The code in question was pretty simple conversion of a pair of uniformly distributed uint64_ts to a pair of normally distributed doubles (Box Muller transform). As I remember, operations between a double to an int64_t result in the double being truncated rather than the int64_t being cast. I wrote some C++ code and ported it to Java more or less without modification, but was scratching my head as to why the ISPC version was buggy. I remember the feeling of the hair standing up on the back of my neck as it dawned on me that the implicit cast rules might be different than those of C/C++/Java.

Seemingly arbitrarily deviating from C/C++ behavior in a language that's so syntactically close is a big footgun. Honestly, I think that C made a mistake. An operation between an integer and a floating point number should result in the smallest floating point type that has mantissa and exponent range both as large and the floating point operand and capable of losslessly representing every value in the range of the integer operand's type. If no such type is supported, then C should have forced the programmer to choose what sort of loss is appropriate via explicit casts. Disallowing implicit type conversion is also reasonable. However, if your language looks and feels so close to C, you really need good reasons to change these sorts of details about implicit behavior.

Similarly, I think C should have made operations between signed and unsigned integers of the same size to result in the next largest sized signed integer (uint32_t + int32_t = int64_t), or just not allow operations between signed and unsigned types without explicit casts.

<comment> Tuna-Fish I very strongly think that rust went the right route here:

        error[E0277]: cannot add a float to an integer
         --> src/main.rs:2:6
          |
        2 |     1+1.0;
          |      ^ no implementation for `{integer} + {float}`

Casts are historically such a massive source of bugs and unstability that the correct casting rule for every numerical computation is always: "Make the programmer explicitly choose."

<comment><USER6> I disagree, while C signed/unsigned type conversion is a source of bug and should be explicit, it doesn't mean that all implicit conversion are bad..

I think that implicit conversion from int to float is mostly harmless, as the result is a float and the float to int conversion is explicit, this is unlikely to create bugs.

intX to intY or uintX to uintY if Y>=X are two other conversions which are unlikely to create bugs but save a lot of boilerplate.

</comment></comment></comment><comment><USER7> ISPC vs OpenCL is a very interesting discussion. I think the discussion warrants a bit more introduction.

The ideal is to deliver the illusion of true threads to the programmer, where each thread is mapped to a SIMD unit. This is because on x86 systems, an AVX2 SIMD unit (YMM Register) can support 8x 32-bit values (256-bits). That's 16x 32-bit values for ZMM AVX512 registers. So you get a huge boost to parallelism if you treat each SIMD-unit as a separate thread.

In effect: it is far cheaper to make SIMD-"threads", than to make "real threads". So you get Vega64 (4096 Shaders) or NVidia V100 (5120 CUDA Cores). Even on Intel, you effectively get 8x SIMD cores per actual core.

The question is how to deal with this mapping, to keep things efficient and reasonable for the programmer. OpenCL, and ISPC have different strategies for dealing with this abstraction and trying to efficiently map this illusion to the programmer. The general "Thread Group" (OpenCL) and "Wavefront" (CUDA) abstraction seems to primarily capture this SIMD-width question.

But there's one additional thing on GPUs that don't exist on CPUs: and that's the LDS memory (AMD) or Shared memory (NVidia). Shared Memory is effectively a manually-managed L1 cache on GPUs.

GPUs have very weak cache hierarchies. In high-performance GPGPU compute, it is preferred for the programmer to manually manage transfers to and from global RAM to the ~64kB Shared Memory region. And of course, only Wavefronts / Threadgroups are guaranteed to share a portion of shared memory.

Intel systems don't need this abstraction: Intel CPUs have a full and proper cache which is unified with global RAM.

So I guess Intel is "taking a victory lap" with this blog post: noting that all of the complexity of Wavefronts / etc. etc. isn't really necessary on ISPC / Intel systems.

\</comment><comment>---

Still, Intel never really achieved the performance that NVidia V100 or AMD Vega64 can achieve. Even Intel's Xeon Phi has far lower raw performance than what NVidia / AMD was able to put out.

Its certainly more difficult to write high-performance code on GPUs. But with so much more raw power on GPUs, many people have been able to extract higher performance in practice.

<comment><USER8> > Intel CPUs have a full and proper cache which is unified with global RAM

> more difficult to write high-performance code on GPUs. But with so much more > raw power on GPUs

This seems two sides of the same coin; of course you can extract higher performance with lower coupling.

I don't think the Xeon Phi was given a fair chance; they did two iterations on the idea before canning it. NVidia has been doing video cards forever.

<comment><USER9> Xeon Phi's origins are in Larrabee. They sold two iterations, but they had several more in house.

<comment><USER10> I sat on an Intel session at GDCE 2009 about introduction to Larrabee programming and how it would take over the GPU programming world for game developers.

Making it a niche product only available to a selected few, instead of mainstream GPGPUs, meant most of us hardly cared about it.

</comment></comment></comment></comment><comment><USER11> The primary advantage of ISPC over the GPU is latency. If you issue a small amount of parallizeable work to the GPU you are still likely waiting ~500 microseconds for the result.

<comment><USER12> I wonder if that is possible to optimize at compile or execution time. Is it possible to determineif the gains sending the work to the GPU is worth the latency hit?

<comment><USER13> It would be possible to generate both CPU and GPU versions at compile-time, and pick the best one at run-time based on the data encountered. I do research on a similar technique for the Futhark language.</comment></comment></comment>


Open-sourcing the Lightning Web Components framework - <AUTHOR> https://developer.salesforce.com/blogs/2019/05/introducing-lightning-web-components-open-source.html <comment><USER2> I (thankfully) don't have to use Salesforce very often. But from my experience, the Lightning Experience always felt non-performant compared to the traditional server-rendered pages. Things always took a noticeable amount of time to finish loading. Even though the traditional interface is, by appearance alone, quite traditional, as least it felt fast. I don't know if Lightning's problems were with poor performing front end code, or poor API performance. But I was always underwhelmed when testing the SPA version of Salesforce.

<comment><USER3> I was using SFDC extensively when the Lightning experience first arrived, and my experience tallies with yours. I ended up switching back to the old experience to get my day to day work done.

<comment><USER4> Ugh, ya, I had to immediately switch back to the traditional. Lightning was so slow.

</comment></comment></comment><comment><USER5> A lot of Salesforce sites use react - including:

[https://status.salesforce.com/](https://status.salesforce.com/)

and ironically:

[https://www.lightningdesignsystem.com/](https://www.lightningdesignsystem.com/)

Why do they insist on forcing their framework of the week on their dev community and make it much easier to bring your own framework? NIH syndrome? Lock in?

We use react and visualforce to get our products built but the visualforce requirement to do so is sub optimal.

<comment><USER6> At its core, Salesforce is a platform. As such, our customers expect their code to work for the long run (and backwards compatibility forever). Not owning the framework fundamentally means jeopardizing our business and our customers, since we can't control our future.

We believe the best way to future-proof our platform is to align with standards and help push the web platform forward, hence our sugar and take on top of Web Components.

Also to your comment about using different frameworks, again as a platform, allowing our customers to trivially include their framework choice of the day, will mean that we might end up having to load seven versions of react, five of Vue, 2 Embers .... You get the idea :) Outside the platform we love all the other frameworks (hence other properties might choose what it fits their use cases) and we had a lot of good discussions with framework owners about how to keep improving things over the last two years.

Our goal is to keep contributing to the standards and push all the things to be implemented natively on the platform so we all get faster and better.

<comment><USER7> > Not owning the framework fundamentally means jeopardizing our business and > our customers, since we can't control our future.

Then why make the framework open source in the first place? The definition of open source is not owning the framework.

<comment><USER8> that's the definition of free software, not open source. Open source just means you can view the code.

<comment><USER9> No, open source[1] and free software[2] are the same thing. The only difference is in philosophy of advocacy - the open source movement branched off from the free software movement because they wanted to emphasize the practical benefits rather than the ethical aspects (user freedom).

[1] [https://opensource.org/osd](https://opensource.org/osd)

[2] [https://www.gnu.org/philosophy/free- sw.html](https://www.gnu.org/philosophy/free-sw.html)

<comment><USER8> That's my point.

<comment><USER9> If you look at the definitions I linked to, you'll see that they are very similar to each other and both involve a lot more than "just means you can view the code".

In fact, the very first sentence of the introduction explicitly rejects your proposed definition: "Open source doesn't just mean access to the source code."

<comment><USER8> Sure, buddy

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> <template if:true={isTrueTemplate}> Sorry been down this road with Angular before, logic in the template is a dumpster fire of a non-debug-able, bad idea.

</comment><comment><USER11> I haven't used it, but I'll try to summarize what I know for the folks asking general questions.

"The Lightning Experience" generally is a set of related products and tools from Salesforce. It's based on a live-updating model (as opposed to Salesforce's old-style whole page refresh model) and has a new visual and UX design system targeting mobile.

They're trying to bring everyone along to their new model, but they clearly understand it will take a while: they've built an experience switcher in the main menu and have invested heavily in adoption tooling.

If you want more specific info I'd suggest their training site Trailhead. Here's the Lightning Web Components introduction: [https://trailhead.salesforce.com/content/learn/modules/light...](https://trailhead.salesforce.com/content/learn/modules/lightning- web-components-basics)

<comment><USER12> The honest truth is that Lightning Components are just vendor lock-in. Once you buy into lightning, you wind up using their proprietary communication channels and their proprietary component library (which this press release makes clear isn't open sourced).

If you want to change backends to something better, you can't because while the backend will port rather directly, the front-end will not.

Then there's also the fact (unless things have changed dramatically in the past few months) that writing your front-end in Vue or React will result in much faster UI experiences and finding developers to maintain it will be easier and cheaper (Salesforce devs are generally a bit more expensive).

<comment><USER13> I think the honest truth is that the only people going to be using LWC are Salesforce developers on the Salesforce platform, they're already locked in.

</comment></comment></comment><comment><USER14> Question for the HN crowd: is your company using, or have you used Salesforce? On what scale? What kind of business? Was it worth it? Did you enjoy the experience? Does it make sense for smaller businesses?

I have considered it for my company because it can do some neat things, but I feel a bit overwhelmed by it. Really curious about the feedback.

<comment><USER15> I work for the federal government. Another team in my organization is using it for contact management and some other CRM tasks. They are very happy with it. My team is developing a custom dashboard prototype for leadership. Our results are mixed. Please note that I've only been working on this project part time for about 4.5 months, so I'm far from an expert.

Basic entry and view forms are very easy to create; Basic reporting is very easy, as well as basic charting. But the provided charting components can only be customized up to a point. For example, you can set the color of chart segments by value for pick-list fields, but not for calculated fields, and only for certain types of charts.

Salesforce is a big, complicated system and it takes a while to learn. If your needs can be met by their built-in Sales or Service modules then it may be a great choice. If your needs can be met by a 3rd-party add-on, and you're willing to pay extra for that, it may also be a good choice. If you want to recreate your custom business logic in Salesforce then you may want to hire a consultant.

Salesforce also has a lot of pricing and licensing options, so you would need to be careful about making a purchase before you know all of your needs and understand the different license types and pricing tiers.

<comment><USER16> Salesforce reporting is relatively basic,consider Einstein Analytics for more advanced stuff. Alternatively,just connect it to Tableau and do all the fancy shpancy stuff there.

</comment></comment></comment><comment><USER17> Using the Lightning Web Components without the Salesforce back-end is a compelling idea. The design system is well tuned for standard business requirements (rich data-tables, modals, forms, etc.). If there's a good story around using those UI components without having to use the Salesforce back-end this could have value. The Salesforce back-end is a scary entity-attribute- value system coupled to an Oracle database on top of a layer-cake of legacy multi-tenant architecture constraints and years of Java/C code.

<comment><USER18> I've done this with the older lightning CSS based toolkit and it was great.

The front end was React/Redux and we just wrapped the bits of markup we needed into React components.

</comment></comment><comment><USER19> How long has this been around? I had to recently build a React app for Salesforce and I had to set it up as something called a Lightning Container Component, which was pretty much a glorified iframe.

<comment><USER13> I think LWC has been GA for ~6 months. It is leagues better than the old Aura components.

</comment></comment><comment><USER20> I may be entirely misunderstanding what the point of this is, but wouldn't it be better if they just made their API unhorrible and let people use their own components?

</comment><comment><USER21> [https://vaadin.com/](https://vaadin.com/) has been doing web components for a while now in open source.

<comment><USER22> Yeah, that is where they went after Google lost interest in GWT.

<comment><USER21> What do you mean that's where they went? Is it a spin off from the G?

<comment><USER22> Vaadin started as a set of GWT component library, Eclipse extensions and GUI editor.

</comment></comment></comment></comment><comment><USER23> I don't understand the goal of this. Is it to replace React/Angular or are these components like tree controls, tab controls, etc?

<comment><USER24> It looks like it is a set of components and helpers for building components of your own.

The good thing about Web Components is that they are reusable across frameworks. You don't need jQuery-picker, react-datepicker, and vue-datepicker just <my-datepicker /> and its reusable anywhere.

</comment></comment><comment><USER7> Salesforce is brilliant at marketing, I would take this PR announcement with a grain of salt.

Lightning was already based on open source software - their Aura Framework. As of March 2019 they decided that they were going to continue to maintain it, but were ceasing to make it open source.

You can read the notice here: [https://github.com/forcedotcom/aura](https://github.com/forcedotcom/aura)

</comment><comment><USER25> Just poking fun, but I like how the post says "Many features that required frameworks are now standard" then introduces a... new framework!

</comment><comment><USER26> Looks a lot like Ember and their Glimmer.js components system.

<comment><USER6> Certainly Yehuda from Ember had some influence on us :), so as many others like Richard from Svelte or Evan from VueJs.

A lot of good conversations happen within the last two years to be where we are today!

Hopefully some of our solutions and ideas will help improve the ecosystem.

</comment></comment><comment><USER27> What is the point of this? Where are the examples?

<comment><USER28> Their home page says:

> Lightning web components are custom elements built using HTML and modern > JavaScript.

> The Lightning Web Components UI framework uses core Web Components standards > and provides only what's necessary to perform well in browsers. Because it's > built on code that runs natively in browsers, the framework is lightweight > and delivers exceptional performance. Most of the code you write is standard > JavaScript and HTML.

> Build apps anywhere, any way. You can build an app with your favorite tools, > like Webpack, TypeScript, and Babel, and run it on Heroku, Google, or > anywhere else. You can also package an app to create a desktop experience in > Electron.

Which I _think_ is equivalent to just saying this:

> Lightning Web Components is a lightweight, cross platform, and framework- > independent web components library that builds on the native Web Components > standards to add some convenient functionality.

<comment><USER6> Beautiful as well :)

</comment></comment></comment><comment><USER29> Can we change the title to something like "Salesforce open sources Lightning Web Components framework"?

<comment><USER30> Updated from "Lightning Web Components Open Source". Thanks!

</comment></comment><comment><USER31> I have a hard time getting excited about a framework whose announcement post fails to do something as basic as ensure their images resize on mobile.

<comment><USER32> I couldn't believe my eyes but you are right.

<comment><USER6> We will work with marketing to fix it. Hopefully [http://lwc.dev](http://lwc.dev) works better, but any feedback is welcome :)

<comment><USER33> Now there are way to small on desktops :( [https://drive.google.com/file/d/1V9qB8V9RcTQ9h-Og4YAIao8FOFe...](https://drive.google.com/file/d/1V9qB8V9RcTQ9h-Og4YAIao8FOFeGtN5I/view?usp=drivesdk)

<comment><USER34> Marketing needs to have a web developer on the team. Can't leave this stuff to the sales guys.</comment></comment></comment></comment></comment>


Is there a cloud based version of emacs? - <AUTHOR>

I'm looking for a cloud based emacs editor that i can access from X or terminal window.  I don't really want to use google docs, since I heard google was evil. <comment><USER2> 1\. get a shell account somewhere

2\. use ssh + screen

<comment><USER3> I would suggest dtach instead of screen. There is much less conflict between key bindings for emacs and dtach, whereas with screen I was always forgetting which program would get Ctrl-a and being continually surprised.

<comment><USER4> You can use the "-e" option of screen to change ctrl-a to something else. My usual invocation of screen looks something like:

screen -e '^Oo' -S mysession

Disclosure: I use vi.</comment></comment></comment>


Bug 1283585 – Fix Intel's AES-GCM code to not depend on AVX - <AUTHOR> https://bugzilla.mozilla.org/show_bug.cgi?id=1283585 <comment><USER2> Can someone give a bit of the why on this one? Is there something wrong with AVX or is this a run on other chips thing? I'm at a bit of a loss on the history.

<comment><AUTHOR> AVX is normally 256-bit, but it also allows 128-bit instructions with a VEX prefix. Benefits of that include three operands and unaligned access, as well as higher performance when mixed with 256-bit instructions. Of course, you need a AVX-capable CPU and an OS that support AVX XSAVE to be able to use them.

<comment><USER3> Sooo… why move away from AVX? What CPUs support AESNI, but not AVX, and actually matter?

<comment><USER4> According to Wikipedia, most Celerons and Pentiums lack AVX but have the AES instructions.

</comment></comment></comment></comment><comment><USER5> Why is this on HN?

<comment><USER6> You get automatic upvotes if you mention crypto and performance?

<comment><USER7> And Firefox.

</comment></comment></comment><comment><USER8> The bug report has way too less information for folks of other disciplines ( inside CS ) to understand.

Could someone please provide a context?

<comment><USER4> The x86 architecture has a large number of optional instruction sets. One of these, AES-NI, provides accelerated AES instructions. Another one, AVX, is a collection of general-purpose vector instructions. These were announced at the same time, but it seems like a large number of Intel's low-end CPUs (Celerons & Pentiums) only implement AES-NI.

Firefox's current implementation of the AES-GCM encryption mode uses AVX instructions. The bug report is a submission of a modified implementation that avoids them.

</comment></comment><comment><AUTHOR> I really should also submit this to OpenSSL at some point.

<comment><USER9> Benchmarks?

<comment><AUTHOR> None that I know of, but performance penalty should be minimal. The main difference is extra movdqu instructions to deal with unaligned access.

</comment></comment></comment><comment><USER10> It seems weird that mozilla doesn't have something like phabricator so I can view a pretty diff of this easily.

<comment><USER11> Mozilla set its stuff up before Facebook (2004) even existed, let alone Phabricator.

Bugzilla (1998) predates Phabricator (2010) by about 12 years. It was written in Perl, which was the popular language at the time (similar to PHP around when Facebook happened, or JavaScript now). The first versions of Firefox (2002) predate Phabricator by about 8 years.

<comment><USER12> And Bugzilla is still the best bug management system decades later.

Fwiw I was using Bugzilla in 1996. Perhaps it was open sourced in 1998?

<comment><USER13> If you think bugzilla is better than everything that came after (e.g. trac, jira, redline, phabricator etc) it would be interesting to know why.

I feel it's functional but not great.

<comment><USER14> JIRA is not free, and its main appeals are geared towards enterprise bean counters. Not to mention it is written in Java and as a result has quite heavy requirements on the CPU and RAM.

Upside: it is _extremely_ flexible in ticket workflow design.

(Source: maintaining a 300-user JIRA/Confluence instance at work)

</comment></comment></comment></comment></comment><comment><USER15> AVX is a standardized x86 ISE proposed by both Intel and AMD. Intel implemented AVX support with Ivy Bridge, AMD has implemented it with Bulldozer these 2 platforms are nearly 6 years old, is there an actual reason to drop support for AVX?</comment>