New Electric Skateboard Models - <AUTHOR> http://boostedboards.com/new-electric-skateboard-models/ <comment><USER2> Too bad they are still illegal to use in California:

[https://www.dmv.ca.gov/portal/dmv/detail/pubs/vctop/vc/d11/c...](https://www.dmv.ca.gov/portal/dmv/detail/pubs/vctop/vc/d11/c5/21968)

<comment><USER3> This law was written in the 70s for gas-powered skateboards. We and others are working to change this, possibly as soon as the upcoming legislative session.

</comment></comment><comment><USER4> Why does an electic skateboard need 2kW motors when motorized bicycles work just fine up to 18mph with 250W of support?

<comment><USER5> Because it's fun.

To be fair, 250W on an ebike is 'not fun' or anywhere close to the legal limits in the US (750-1000W).

The happy spot seems to be 2500-5000W for most hub driven ebikes. I turned my bike down to 1000W this afternoon and couldn't imagine running anything less.

Endless-sphere [1] is the place to go if you're interested in eskateboards/ebikes with a bent towards DIY/highpower.

[1] [http://endless-sphere.com/forums/viewforum.php?f=35](http://endless- sphere.com/forums/viewforum.php?f=35)

</comment></comment><comment><USER6> An alternative to this without a remote is ZBoard ([http://www.zboardshop.com](http://www.zboardshop.com)), which uses weight sensing (like a Segway) to control the speed instead of a remote which seems a little more natural to ride to me than something with a hand remote like this.

<comment><USER7> I've owned both. Had a ZBoard, have a Boosted Board.

The ZBoard is utter trash compared to the Boosted Board. Build quality, ease of operation, sound of operation, ride quality are all far superior on the Boosted Board.

<comment><USER8> As someone with a fair amount of experience on an electric board (ZBoard type), I like that Boosted puts the battery packs and electronics at either end of the board. Other boards have the battery pack in the middle and it gets in the way of clearing obstacles.

Also, hand controller works nicely for me so I see no obvious advantage to having my weight distribution impact the board's motion.

</comment></comment></comment><comment><USER3> One of the founders here. If anyone would like to try one, please email us at firstname.lastname@example.com!

</comment><comment><USER9> From the FAQ ([http://boostedboards.com/faq/](http://boostedboards.com/faq/)):

>BRAKING DOWNHILL ON A FULL BATTERY WILL CAUSE BOARD SHUTDOWN since the regen will overcharge the battery. To prevent this from happening, the remote will warn you by beeping, and you'll lose your braking power. Safely come to a stop before this happens, and ride on flats or uphill to drain the battery.

This seems like a pretty big design flaw.

<comment><USER10> It's not so much a design flaw as physics. Without adding brakes, what else could they do? They only have two energy sinks on board. The wheels aren't a sink when going downhill and the battery isn't a sink once it is full (unless you enjoy explosions[1]).

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

<comment><USER11> semi joke: what about dissipating energy in excess via heat, sound and flames? :)

more seriously: what about having a setting for not fully charging the battery (let's say 80-90%), possibly user configurable, so if you don't risk your life if you forget about it?

and finally a question: how does a Prius work? according to this[1] _The amount of electrical energy capable of dissipation is limited by either the capacity of the supply system to absorb this energy or on the state of charge of the battery or capacitors. Effective regenerative braking can only occur if the battery or capacitors are not fully charged. For this reason, it is normal to also incorporate dynamic braking to absorb the excess energy._

Searching online I found this[2] that seems to be not that far from my semi joke :) as a user says "instead of taking that energy and putting into the battery, the engine throws it off as heat." But it's also true that a Prius is way more complex and bigger, so it could have more features put in place compared to a small board like this.

[1] [http://en.wikipedia.org/wiki/Regenerative_brake](http://en.wikipedia.org/wiki/Regenerative_brake) [2] [http://priuschat.com/threads/fully-charged-hv-battery-no- reg...](http://priuschat.com/threads/fully-charged-hv-battery-no-regenerative- braking.93230/#axzz3JsRbhwcD)

<comment><USER10> Prius regeneratively brakes until the battery is full, then engine brakes.

</comment></comment></comment></comment><comment> shawn-butler Boosted used as an adjective where I come from means stolen.

What is the lifetime on the wheels? At $1500 I would almost want a grease port to maintain it on my own.

<comment><USER3> Many boards have run over 1000 miles, and we have yet to replace wheels due to wear. Maintenance involves replacing bearings, and eventually wheels, but no grease port.

</comment></comment><comment><USER12> They imply that providing a firmware update for free is a massive gesture of good will for existing users. When is this not the norm??

<comment><USER13> Just take a PC... Windows is it's firmware and if you want to upgrade it, then you have to pay. (Or, switch to Linux).

Or take some cars which are different models, with different power/torque ratings, but mechanically they are the same - the only difference is made in the MCU software. Or cars with their maximum speed locked and only unlocked after paying a nice sum of money (iirc it was the VW Golf GTI).

<comment><USER14> _Windows is it 's firmware_

For a PC I'd rather call it the software, or the OS, and call the BIOS it's firmware. Which can usually be updated for free.

<comment><USER13> A PC with just a BIOS is unusable, though.

<comment><USER15> A skateboard without wheels is unusable too, and wheels are not firmware either.

</comment></comment></comment></comment></comment><comment><USER16> Ha, what a coincidence. I see this on Hacker News a day after reading this¹ (found here²).

――――――

¹ — [http://endless- sphere.com/forums/viewtopic.php?p=904577#p904...](http://endless- sphere.com/forums/viewtopic.php?p=904577#p904577)

² — [http://www.ebikes.ca/news/Electrafest/](http://www.ebikes.ca/news/Electrafest/)

</comment><comment><USER17> Because electric skateboards cannot be used in the rain, I'm wondering if there are any other last mile commute vehicles that are electric but wouldn't require a special bike rack on the train, since they are usually full at commute hours. The nice thing about the skateboard is its compactness

<comment><USER18> Maybe RocketSkates?

[http://arstechnica.com/gadgets/2014/10/feet-on-with- rocketsk...](http://arstechnica.com/gadgets/2014/10/feet-on-with-rocketskates- which-are-exactly-what-they-sound-like/)

</comment></comment><comment><USER19> I wonder if Boosted Boards has tried putting the propulsion system on a regular skate deck instead of a longboard. Looking at the powered truck design it seems it should be doable. It seems the market would be bigger since most skaters don't ride longboards.

</comment><comment><USER20> Can these boards be used in the rain, or when the road is damp? Where I live, roads are wet ~40% of the time, so if not this would be a huge no-go.

<comment><USER21> Normal boards shouldn't be ridden in the rain anyways. The trucks and bearings will rust, rendering your board into a piece of wood.

Which is unfortunate, since I live in Oregon, and I used to cruise my Miniglider everywhere. When it rained, I had to resort to walking.

<comment><USER22> Your trucks are probably aluminum and will be fine, and you can run sealed bearings. Riding in the wet really isn't such a big deal. The biggest problem is spray off of the wheels.

<comment><USER23> The board damage (if made of wood) is unavoidable though.

<comment><USER10> You can seal the wood with some kind of lacquer, though, right?

</comment></comment></comment></comment></comment><comment><USER24> I was kind of excited to buy one of these, but you know, winter is coming. Look forward to the improvements that are out when spring arrives.

<comment><USER25> Christmas is coming!

</comment></comment><comment><USER26> I'd love to own one of these one day.

Anyone think they can get the top model's quality at a price below $1k in a few years?

<comment><USER3> The top model has the best performance, but the quality of all models is equally high. There's a floor to how cheaply this technology can be built today without compromising quality and long-term reliability.

</comment></comment><comment><USER27> What is the advantage of something like this compared to something like an Airwheel [1]?

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

</comment><comment><USER28> $999 seems a bit pricey.

<comment><USER29> How so? A brand new 49cc moped is around $2k in the states. This is a low production scale electrical vehicle with no gas use for half that.

<comment><USER30> Mostly because I can get a 12-15mile range foldable scooter for $500.

[http://www.amazon.com/Super-1000watt-Electric-Scooter- button...](http://www.amazon.com/Super-1000watt-Electric-Scooter- button/dp/B001T8E6KM/ref=sr_1_8?s=action- sports&ie=UTF8&qid=1416674161&sr=1-8&keywords=electric+moped)

<comment><USER31> I'd gladly pay a little extra to get the size and weight of the board vs this 75 lb scooter; that despite folding does not seem practical at all.

Also, there's obviously a cool factor built in the price. This board is the tesla to your Nissan Leaf.

</comment></comment></comment></comment><comment><USER32> Wow, I WANT ONE!

</comment><comment><USER33> I genuinely see nothing good about this product...

<comment><USER34> This is entirely personal opinion as-is. Perhaps you could discuss what you see as being _bad_ about this product.

<comment><USER33> Mostly its combined drawbacks making it worse than the alternatives.

It's pretty heavy, a bicycle of around the same cost doesn't weigh much more than some models.

It has low range, you can get a motorised bicycle for much cheaper which has more than 3 times the range.

It can't be used in the wet, while this might not be a problem depending where you live, you're kind of screwed if it rains on your way somewhere or before you go home.

It's fairly sensitive, you're specifically recommended not to do fairly common things with it.

It's expensive, if it was fairly cheap I could see people overlooking the drawbacks and maybe using it for messing around on.

I guess it'd be OK if you really hated bikes and lived in an area where it never rained with everything nearby. The whole thing just seems really underwhelming to me.

<comment><USER34> Good points. It's best to avoid wet weather with skateboards, electric or not.</comment></comment></comment></comment>


Indian Navy investigates cyber attack on military PCs - Tim-Boss http://www.bbc.co.uk/news/technology-18703508

<comment><AUTHOR> "It is reported that the information might have been collected via infected USB drives."

Wow this is the first time I've heard of a virus using the sneaker net to retrieve information from computers not just to distribute itself!</comment>


NRF52 Firmware Readout and Reverse-Engineering Now Possible - <AUTHOR> https://limitedresults.com/2020/06/nrf52-debug-resurrection-approtect-bypass/ <comment><USER2> This isn't actually as bad as it sounds.

Almost all general purpose microcontrollers with "readout protection" are vulnerable to glitching attacks like this one. It may be a stretch to claim that _most_ embedded engineers understand this, but successful attacks like this one are published at least a few times a year, and eventually one of them targets a part that you've used before.

All it does is force you to think about your threat model. You shouldn't keep sensitive or long-term secrets on a microcontroller and expect them to remain safe. Transient things like BLE session keys? Sure, whatever.

It's why you don't see (responsible) people designing HSMs using parts like these, and why extreme skepticism is warranted when people try to build things like cryptocurrency hardware wallets out of Arduino-caliber parts.

There are special classes of parts with more robust security features that you should consider using if you need anything resembling an HSM. Even those parts get broken from time to time, and those breaks are rarely fixable without new hardware.

<comment><USER3> It is not awfully hard to protect a chip against readout through glitching.

All it takes is having brown-out detection which is always on and forces the chip into reset immediately (ie. No 4 cycle interrupt delay). Rate of change of voltage detection might be easier to implement without a precision voltage reference.

Another approach is to put current measurement on the pins. Glitching requires changing the voltage on a pin very quickly, and since the die has quite a lot of capacitance, the current flow is large and easy to measure.

Pretty much, there are lots of solutions to this problem, and any chip designed after 2010 that doesn't implement these shouldn't be considered well designed.

<comment><USER2> I mean, you're not wrong... but the chip industry moves slowly, and by your own definition, most chips produced today would not be considered well designed.

Also, once you protect against power glitching, they'll move on to clock glitching. It's endless.

Historically, this is not something that chip companies or their customers have cared about. Again, unless you're designing an HSM, hardware security is a checkbox sales item that is adequately satisfied by a probably-not-actually- secure firmware readout bit. The sales team is happy with this. The buyers on the other end designing shitty IoT products with a 2 year lifespan can now put a "secure" sticker on the box.

<comment><USER4> The shitty IoT products can then also use a shitty battery/power supply because the advanced brownout protection the grandparent is talking about won't be spazzing out every 5 minutes that a LED causes voltage to droop. It's a win-win.

<comment><USER5> I worked in consumer, industrial and medical device testing industry for several years. When working with device manufacturers in the consumer space, for most of them most of the time cost of the device is the primary and overriding concern for the product.

Cost mattered for industrial too, but it was balanced by performance and other considerations. For consumer, it's just cost. Anything that pushed the bill of materials up = bad, not at all win-win in their mind. "Grandpa buys bad electronic devices all the time and will keep doing so, why throw our money away for no reason?" would be a summery of their argument/thought process.

Medical devices are a whole different beast and money was far less of a consideration, or rather, they are far less worried about the cost because it's far easier to recoup the cost of the device.

</comment></comment></comment></comment></comment><comment><USER6> I can't help but read this and think that this is a good thing... especially knowing Logitech uses these chips and the scummy things they have been known to do to sabotage the resale value of the hardware they make. [0]

Is there any meaningful downside to anyone but Nordic and Nordic's customers?

[0][https://www.reddit.com/r/homeautomation/comments/esiv9b/psa_...](https://www.reddit.com/r/homeautomation/comments/esiv9b/psa_to_harmony_hub_users_avoid_unnecessary/)

<comment><USER7> If you've put keys or IP in that chip and thought that readout protection would help you, then you'd be hurting right now. There's a high chance that you're only doing so if you're a customer, though, and if you thought that this would actually protect your stuff you're fairly misguided.

</comment></comment><comment><USER8> I've been trying to come up with scenarios where someone relying on that security would suffer worse from this revelation than merely enabling hardware clone manufacturing.

(Note that most of those cases are very far from where you would typically find an NRF52)

Decryption keys for "broadcast" style DRM schemes? Kind of bad, but usually those also have implementations on far more open hardware, it wouldn't be the weakest link.

A Yubikey-like second factor configured only for presence? When you can take a soldering iron to the device you might just as well keep the one you already have. It would only make a difference for elaborate attacks involving more than one copy of the destroyed original (e.g. sneaking a clone back to the original owner). I'd argue that it retains 98% of the security upside compared to not using a second factor and would still come ahead of many weaker second factors.

A Yubikey-like second factor configured to require on-device decryption of its keys? (e.g. built in PIN pad) Bad because the readout would enable unthrottled attemps, but still only terrible if the resulting key isn't throttled otherwise (e.g. bad for decrypting some offline storage).

An anti-tampering signature for content production, e.g. camera hardware confirming that a pictue is based on actual photons hitting a CCD? Bad, definitely.

An encapsulated root CA in its CEO's pocket? Someone will get fired, but it won't be the right person.

I'm sure that this list could be longer, but so far I don't see any overlap with the usual application domain of NRF52.

<comment><USER9> Stolen devices, and devices that are legitimately in the possession of someone who is not the owner.

A wifi-enabled doorbell, where you don't want people to be able to snatch it and extract your wifi credentials.

A product with an iphone-style activation lock (which deters theft by preventing resale of stolen goods) where you don't want the activation lock bypassed.

A smart energy meter, which needs to accurately track energy usage...

</comment></comment><comment><USER10> With this, devices that use NRF52 chips are now open to investigators. I think we'll learn of more vulnerabilities of BLE devices whose shitty implementations are hidden in those SoCs. I'm more than excited about the next post about Logitech Pro G mouse.

Making things open is a good thing on society's security.

<comment><USER11> That is if they have been locked in the first place.

Also with a lot of devices being firmware upgradable, there is little point in enabling read-out protection if you can just download the firmware off the internet. (Unless you want to go through all the hassle of encrypting the firmware image, but most devices won't be doing anything so special to make this worthwhile)

<comment><USER12> Nordic provides some easy-to-use tools and examples for encrypting and signing firmware images when using a bootloader for in-field updates. I would expect that most products based on the nRF52 that support firmware updates encrypt the image.

<comment><USER13> Nordic's off-the-shelf firmware upgrade process has signed image verification only. The image itself sent over BLE is not encrypted. So anyone using that right off the bat is in for a nice surprise.

<comment><USER11> Why would anyone be surprised? I'd be _very_ surprised if my firmware was encrypted without setting any encryption key.

<comment><USER13> Partially because they call their firmware upgrade process "secure Device Firmware Update (DFU) functionality" (lifted from their documentation). Obviously, an engineer needs to go see the source to see what is actually happening under the hood.

<comment><USER11> Why do you need Encryption for security? A signature should be enough.

(Don't conflate security with confidentiality)

<comment><USER13> Not in the context of enabling trusted binaries being used for updates, but to your original point about reverse engineering unencrypted firmware

<comment><USER11> It's not common for firmware to be encrypted, just as it's not common for executables on your PC to be encrypted.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> I have come to just accept the firmware will be read out in most microcontrollers unless they are specifically built to hold secrets. Maybe you can keep someone from copying your code for a little while, but eventually it will happen and you should have some other value that protects your business.

NRF, STM32, PSoC, ESP32, Xilinx. All of them have silicon or ROM errata that leak the firmware or the encryption around it.

<comment><USER15> > unless they are specifically built to hold secrets.

Even that is not warranted, there are companies who lift contents of hardened microcontrollers for things like smartcards, credit cards, id cards, pos terminals etc no questions asked

</comment></comment><comment><USER16> > Nordic Semiconductor and LimitedResults did not agree on a responsible > disclosure. _That's life._

Short and sweet, kind of.

<comment><USER17> What's Nordic going to even agree to? This is a firmware power glitch exploit. It's not like they can patch it in the field.

If all they said was: "Nordic Semiconductor and LimitedResults did not agree on a responsible disclosure." That's fine. So be it.

However, when I see: "Nordic PSIRT proposes to purchase the full report for a rock-bottom price." They lost my sympathy right there. I have no idea what they told Nordic, and Nordic really doesn't have a good way to defend against that accusation without exposing emails that they likely sent back and forth with confidentiality in place.

That kind of commentary is bad faith _even if_ Nordic may also be acting in bad faith (and I have no real way to verify that).

<comment><USER18> What's bad faith about noting that Nordic's response to responsible disclosure was trying to get money out of the researcher?

<comment><USER17> Did I miss something: "Nordic PSIRT proposes to purchase the full report for a rock-bottom price."

I read that as the researcher trying to get money out of Nordic--especially with a comment like "rock-bottom price". Did I get that wrong?

That "rock-bottom price" is an unprofessional sideswipe that Nordic probably can't counter without breaking confidentiality agreements.

And, what's a "rock-bottom" price? A hundred dollars? A thousand dollars? Ten thousand dollars?

What price _should_ Nordic pay for a report on a power glitch exploit-- something that pretty much affects every microcontroller on the planet?

And what did the researchers disclose to Nordic in order to agree on a price? Nordic certainly isn't going to pay much if you just say "I found an exploit" and don't tell them much else.

That "rock-bottom price" comment adds a whole bunch of character questions to my assessment of the author as "security researcher" that simply wouldn't be in scope if they had left it at "Nordic Semiconductor and LimitedResults did not agree on a responsible disclosure. That's life."

<comment><USER18> I guess I read that as "Nordic PSIRT [proposes for the researcher] to purchase the full report for a rock-bottom price."

Given what I've seen with chip companies that aren't used to dealing with third party security researchers, that seems pretty on point. Trying to sell a support contract to someone reporting a security vulnerability.

</comment></comment></comment></comment></comment><comment><USER19> "This security investigation presents a way to bypass the APPROTECT on a protected nRF52840, in order to reactivate the Serial Wire Debug Interface (SWD), offering full debug capabilities on the target (R/W access to Flash/RAM/Registers, Code Exec and reprogramming). All the nRF52 versions are impacted.

Due to its intrinsic characteristics, the vulnerability cannot be patched without Silicon redesign, leading to a countless number of vulnerable devices on the field forever."

Ooof.

<comment><USER20> Not great, not terrible. You do need physical access to the device and to know what you're doing, if I had a device based on nRF52840 as a user, I wouldn't worry so much. More worrying is maybe for producers of devices, afraid their IP might get stolen. But, honestly, if I put an embedded device out there, I expect a sufficiently determined attacker would be able to read it anyways.

</comment></comment><comment><USER21> > My low-cost voltage gliching is an homemade HW electronic system, dedicated > to perform fault injections in a suitable manner. The total cost of this > electronic board is less than 5$, which proves fault injection is a very low > cost technique and can be achieved by limited hackers.

Has he released the schematic for this? I'm thinking it's just a small npn pulling the power pin to ground, and controlled by a microcontroller.

Edit: He talks about his glitcher here: [https://limitedresults.com/2019/05/pwn-mbedtls-on- esp32-dfa-...](https://limitedresults.com/2019/05/pwn-mbedtls-on-esp32-dfa- warm-up/)

</comment><comment><USER22> Custom open firmware for Logitech mice incoming? :D

</comment><comment><USER23> TLDR: Soldered onto some pins, identified power usage pattern during boot sequence characteristic of Flash read, wrote a search program to glitch the chip at just the right moment when it loads the protection flag.

Apparently able to make exploit persistent, and demo coming up in future post on a real consumer product (Logitech Mouse). Couldn't reach agreement with Nordic on a responsible disclosure mechanism.

<comment><USER22> > Apparently able to make exploit persistent

Well, that's just how the nRF's protection works: you can always disable it, erasing the flash.

They glitched the chip to access debug without disabling protection → can dump the firmware now → obviously possible to disable it and then reflash the recovered firmware.

</comment></comment><comment><USER24> Are these SoC devices often used to act as serial-over-BLE bridges? I have a barbecue controller from ThermoWorks that I have been trying to reverse engineer. Sniffing BLE has been pretty useless for this thing because it appears to be using BLE as a mechanism to do basic serial comms. I would like to understand more how these serial implementations work and to find some resources that I could use to capture the protocol.

<comment><USER25> Yes. This example is supposedly a common starting point for this type of application: [https://infocenter.nordicsemi.com/topic/sdk_nrf5_v16.0.0/ble...](https://infocenter.nordicsemi.com/topic/sdk_nrf5_v16.0.0/ble_sdk_app_nus_eval.html?cp=7_1_4_2_2_25)

</comment></comment><comment><USER26> The following Nordic chips seem to have gone through some security evaluation [https://www.psacertified.org/certified- products/?_company=no...](https://www.psacertified.org/certified- products/?_company=nordic-semiconductor)

</comment><comment><USER27> > Nordic Semiconductor and LimitedResults did not agree on a responsible > disclosure. That's life.

Can you elaborate more on how this would work?

<comment><USER28> I read it as the guy at LimitedResults sent an extortion demand and was rebuffed, then released the information under his company alias to and avoid the appearance of extortion by investigating authorities that Nordic would have had a duty to its stakeholders to file a complaint with.

</comment></comment><comment><USER29> [https://autochess.onl/](https://autochess.onl/)</comment>


Second Measure (YC S15) Raises $20m Series A - <AUTHOR> http://fortune.com/2019/02/12/goldman-sachs-citi-second-measure-alternative-data/ <comment><AUTHOR> couple of thoughts:

* money will probably be spent to acquire more datasets and display in the unified platform * Location Data, Email Receipt Data or more credit card data * Head of Finance opening points to a 'large R&D' project: [https://secondmeasure.com/jobs/?gh_jid=1148383](https://secondmeasure.com/jobs/?gh_jid=1148383) * Second Measure seems to be on a good way to become the de-facto platform for displaying any type of large transactional dataset in an easily digestible manner. They have built a lot of trust with important institutional investors and VCs.</comment>


Sleeping barber problem - <AUTHOR> https://en.wikipedia.org/wiki/Sleeping_barber_problem <comment><USER2> This is a poor analogy because most barber shops have line-of-sight between the barbers and waiting room. The "both asleep" issue will never arise in the real world, and thus, the analogy doesn't help explain the problem.

<comment><USER3> I'd say it's more of a colorful description than an analogy. Consider the classic dining philosophers problem for a crazier example. Who eats with both hands, using different forks, and sharing forks with your neighbor? And yet being able to visualize it like that helps a lot.

<comment><USER4> The dining philosophers have chopsticks in all the formulations I've seen. Wikipedia disagrees with me, FWIW.

<comment><USER5> Is this some kind of contest in missing the point?

<comment><USER6> This whole thread is.

<comment><USER3> Wasn't this the whole reason DARPA created the internet in the first place?

</comment></comment></comment></comment></comment></comment><comment><USER7> > _For example, a customer may arrive and observe that the barber is cutting > hair, so he goes to the waiting room. While he is on his way, the barber > finishes the haircut he is doing and goes to check the waiting room. Since > there is no one there (the customer not having arrived yet), he goes back to > his chair and sleeps. The barber is now waiting for a customer and the > customer is waiting for the barber._

This is the critical part of the analogy, and is why it breaks down. It's such an artificial contrivance to suggest that both the barber and the customer moving to the waiting room won't notice each other - yes, you can come up with theoretical ways to do it, but that's requiring contortions in order to explain what is supposed to be the main point of the analogy.

(it's already a stretch that the barber can't see the waiting clients, as per degenerate's comment above)

<comment><USER8> Totally agree. My initial reaction to this problem was that it could be solved with a thread-safe queue (usually already implemented in the chosen language).

<comment><USER9> Well there would have been no such thing already implemented in a standard library back in 1965 ;) And it's still a useful exercise for exactly why you need a thread-safe blocking queue, and probably shouldn't just roll your own if you don't know what you're doing.

<comment><USER10> > And it's still a useful exercise for exactly why you need a thread-safe > blocking queue

Is it? A thread-safe blocking queue sounds like one of those take-a-number systems you find in some shops. But it would be very common to instead rely on the standard waiting-customer algorithm, in which, after waiting for some period of time, the customer gets frustrated and rings the bell at the counter. Take-a-number systems are vanishingly rare by comparison. Why do you need the queue?

<comment><USER11> Nobody has to take a number for a queue to form. Imagine people camping in front of apple stores for the new iPhone. Nobody is taking numbers yet the first to arrive also is the first customer that gets an iPhone.

I don't know why I picked such a complicated example.

Did you ever go to the grocery store and had to wait for the people in front of you? That's also queue and yet nobody is taking numbers.

<comment><USER12> I may just be misunderstanding, but if you were to represent a queue of people waiting in line as a data structure, wouldn't they each have a number, like their index in an array, etc? How is that different than a take-a-number system?

Queues are inherently ordered, right? The take-a-number system is still a queue, it just replaces physical ordering with a paper that shows your place in line.</comment></comment></comment></comment></comment></comment>


The King of Online Gambling - <AUTHOR> http://www.forbes.com/sites/nathanvardi/2014/12/01/the-king-of-online-gambling-is-34/ <comment><USER2> Usual dodgy rags to riches story.

I'm rather sure the Scheinberg family (the founders and previous owners of PokerStars) engineered the takeover due to the bad outlook for online gaming in general (market segmentation via government regulations everywhere in combination with high taxation) and it had little to do with Baazovs business acumen.

</comment><comment><USER3> That's some leverage!

I was hoping this was going to be about David Walsh. He made hundreds of millions by creating "statistical models that allowed them to exploit mispricings in betting odds wherever they could be found."[1]

He spent a lot of his money on building the (Tasmanian) Museum of New and Old Art[2], which is everything an art museum should be.

Anyway, I'd call him the real king of online gambling.

[1] [http://www.afr.com/f/free/blogs/christopher_joye/david_walsh...](http://www.afr.com/f/free/blogs/christopher_joye/david_walsh_wisdom_beats_the_odds_jNn5N3DuXxfFPVghVTD0PM)

[2] [http://travel.cnn.com/sydney/visit/mona-worlds-most-far- out-...](http://travel.cnn.com/sydney/visit/mona-worlds-most-far-out- museum-519376)

<comment><USER4> From my understanding, the money wasn't made from the odds per se, but from the rebates that the betting agencies offered because of the amount of money being wagered. When all the maths was done, the limited downside (losing the stake) and unlimited upside (winning much more than the stake) combined with the rebates to give a payout, win or lose.

[http://www.afr.com/p/national/the_gambler_GwoSmf5IXaVFjmpyYX...](http://www.afr.com/p/national/the_gambler_GwoSmf5IXaVFjmpyYXNu9J)

<comment><USER4> Here is the recipe for guaranteed "gambling" success, from the linked to article. Quotes used, because it is not gambling, since profit is guaranteed by the odds (ie. you are effectively part of the house):

[http://www.afr.com/p/national/no_humbling_great_gambler_1Rah...](http://www.afr.com/p/national/no_humbling_great_gambler_1RahGi92iAkDFfUmE87CeO)

 _It is a great system, although the smartest aspect of it was not the maths or computers. It was the psychology._

 _As former card-counting blackjack players, Walsh and Ranogajec knew the house will always seek to maintain its advantage._

 _In its crudest form, this involves barring those who become too successful. And so over the longer term, being able to stay in the game becomes almost as important as winning. For the syndicate, that meant being "with" the house rather than against it. In both Keno and "parimutuel betting" via the TAB, the house can't lose, as it takes a fixed percentage of the overall pool._

 _And so by pumping huge amounts of money through Keno and the TAB, the syndicate was inflating the profits of the house rather than taking money from it._

 _It was a symbiotic relationship, but one that neither side wished to publicise as it was ordinary punters who lost out. For Walsh and Ranogajec, their Keno exploits in Tasmania were hugely ironic._

In other words:

1) Pick a game where the jackpot accumulates, for example, the "Jackpot growth pool" in Keno, and the house takes a fixed percentage of turnover.

2) Cut a deal with the house for a rebate that swings the total odds (including the accumulated jackpot) in your favour.

3) Gamble as much money as possible, so you have a significant chance of capturing the accumulated jackpot before anyone else, thus reducing the odds of an average punter winning an accumulated jackpot.

4) Effectively, you will be acting a a proxy for the house, allowing it to reclaim jackpots (via their percentage on your turnover), that would otherwise go to the average punter, and collecting your own percentage for your trouble.

The house makes a profit on the additional turnover that you generate. You make a profit by collecting jackpots at odds+rebate that guarantee a net payout. The average punter loses as they are unlikely to win the jackpot before you do, so their average payout is reduced.

</comment></comment></comment><comment><USER5> So they basically took PokerStars and IPOed it for them, since the owners didn't want to, as that would mean they would get stuck in the business.

<comment><USER2> For the previous owners there was never a point in taking the company public because they didn't need additional funds and it allowed them to do things that public companies like party gaming could not do for legal reasons.

Another reason for the sale was the fact that they were never able to convince US regulators that isai Scheinberg had nothing to do with the company anymore ( mark had taken over on paper ) which prevented them from getting a new jersey license.

</comment></comment><comment><USER6> Why did Blackstone agree to go through this shady guy rather than just make the deal themselves? What does he bring to the deal?

<comment><USER7> Why wouldn't they? They might not have been able to get the deal on their own, nor did they necessarily have the right experience or a CEO ready to run it.

Don't forget, there is _a lot_ of capital in the world. We're talking trillions. To get the returns Blackstone is after, things need to move fast. It would be foolish to spend 6 months looking for a CEO when a suitable one comes knocking on your door. Especially when he might be the only one who can do a deal.

</comment></comment><comment><USER8> Why is a one year old article featured here? Pretty old story.</comment>


Ask HN: Is there a Market for low-spec laptops with long battery life? - <AUTHOR> I could imagine there would be a market for that (maybe there's even already supply, but I don't know of any machines marketed as such) Maybe chromebooks, but they're quite restricted machines out of the box. I'm asking because I'm surprised how long my "new" used laptop (a Fujitsu lifebook) lasts me - with moderately heavy usage it's around 8 hours. And I could even add a second battery, damn. But does anyone know of new, comparable laptops? I won't buy one in the foreseeable future, but I'd be interested if there's anything viable in case this one ever breaks. <comment><USER2> You can install Linux on many Chromebooks, something to keep in mind. I was looking for an extra computer a while back and it actually seemed to be the best option.

<comment><USER3> I've been using a dechromed chromebook (xubuntu) as my main dev machine for two years now. I've been very pleased with it. It's light, boots in seconds, fits under my car seat, and the processor is Intel so I can compile whatever.

My main use case is "car coding" side projects; On a good day I can get an hour in before work and an hour in over lunched. I launched one mvp this way, working on a second.

<comment><USER4> Which machine are you using?

<comment><USER3> Acer c720, I installed a 120gb m2 ssd. It's an older machine but works really well still. I'm on xubuntu 14.04, when I upgrade, I'll most likely go to galliumos:

[https://wiki.galliumos.org/Hardware_Compatibility](https://wiki.galliumos.org/Hardware_Compatibility)

</comment></comment></comment></comment><comment><USER5> So I'll kick this off by saying yes. I have a gaming desktop I built, a 2016 MBP spec'ed out I use for work (video editing), and down the line tablets/phone. My wife needs something for work processing, Skype, and the internet. I got her a $400-$500 Dell Inspiron laptop a few years ago (I think it's Pentium 4 lol) You can swap batteries, they're solid machines. Basically just a little more than a Chromebook and a little less than a 2in1, which will be her next one as she loves the touch screen.

Love to hear what everyone else is using/thinking as well.

<comment><AUTHOR> It didn't even come to my mind that people who are not developers could want anything other than a tablet or a phone nowadays do you think the longer battery life would be worth the bigger form-factor for people? (I kinda get mixed signals from people whenever I ask, so I'm not sure at all)

<comment><USER5> Yeah, I only hang out with developers, engineers, and designers, most of whom game so it's all pretty much top of the line.

I think it would because everyone wants the options to run all day not plugged in, even if they don't.

As a business guy, I've got to think that the big companies wouldn't make these if they weren't big sellers? Also while and iPad or surface can do what we need, most other people wouldn't feel the difference. I think it might be more of a psychological reason that they think they need a laptop? Haven't really done any market research, so just a guess. Wonder if anyone else who reads this has a spouse/SO that does something non-technical...

</comment></comment></comment><comment><USER6> There are plenty of machines like the Asus X205ta.

Small, low specs, 10 hour battery life.

Some of them use weird chipsets or have low ram or 64 bit processers and 32 bit uefi, so installing linux isn't always as simple as it normally is.

<comment><AUTHOR> For me personally that's a bit of a bummer, but as long as installing linux isn't impossible and there's no malicious firmware blobs which could possibly brick the thing, it's not a complete no-go. I also prefer to test my software on the actual low-end hardware instead of VMs.

</comment></comment><comment><USER7> I know that this is something that would be very useful to college students and most people's parents. My mother has a chromebook because she just needed something light with a good battery life for word processing and surfing the internet (read: facebook). The chromebook comes with its own series of issues which she has to work around, so it would be nice if it was not a chromebook, but just a normal laptop.

<comment><USER2> Care to elaborate these issues?

<comment><USER7> I apologize for the delayed response: The chromebook confuses my mother because she doesn't really understand how google drive works. She needs to download documents and then send people document links if they want to edit stuff, and that really confuses her because its not what she's used to. My mother is generally pretty tech savvy, but the switch from the microsoft suite to google drive has been confusing for her.

There are certain websites she goes to for school that don't work in google chrome - only firefox. She doesn't have the option to switch to firefox, so this creates other issues for her.

sometimes she needs to make powerpoint presentations and move them to another computer to present. She therefore, needs to send a PDF version. This creates more confusion.

Though there are many benefits to the chromebook (all of your files are online so they can be accessed from anywhere; long battery life; its super light), there are still some user issues for older/less-tech-savvy users.

</comment></comment></comment><comment><USER8> I have a question of my own: Given the options posted below. What would you recommend as the best low spec laptop to install linux on and why ? Cheers</comment>


TensorFlow.Js a painless way to get started with DeepLearning :) - <AUTHOR> https://blog.understand.ai/tensorflow-js-a-painless-way-to-get-started-with-machine-learning-470c15f0f637 <comment><USER2> I tried it, very painless.

Playing around with only a cursory understanding of neural nets, it confirmed a lot of my suspicions: the libraries have gotten good enough that a failure to understand the underlying mechanics and math can still get you like 70-80% there.

If you have a base understanding around concepts like "activation functions," you may have gotten hung up on the precise reasoning or benefits around choosing a particular function over another. After playing around with some of the examples they've provided, I tried changing activation functions between sigmoid, tanh, and relu, got virtually identical results (with relu being the best). This same general pattern of seeing only marginal differences continued as I tried adding additional dense layers to the network, mostly similar results, just slower and less generalized. I tried changing filter sizes on convolutional layers for the couple image things I tried, very forgiving as well. It really felt like there is a very standardized solution to most types of problems, and the iteration that goes on to improve results is more arbitrary tweaking than it is based on any underlying theory.</comment>


Show HN: Today or Tomorrow? Ractive.js and Dropbox Datastore Api application - <AUTHOR> https://today-tomorrow-app.herokuapp.com

<comment><USER2> To everybody freaking out: It's a todo list, that stores your info in your dropbox rather than the sites database[1]. Brilliant idea, terrible execution.

If I was the person that developed this, I would have spent <$25 on themeforest.net and tossed up a simple splash page with a call-to-action button and a short description of what it does. No one in their right mind is going to blindly hook up their dropbox to a blank site.

[1][https://github.com/gvnn/today-tomorrow](https://github.com/gvnn/today- tomorrow)

<comment><AUTHOR> We added a little description to the homepage. We took the original idea of splash screens, introductions and whatever come to mind and reduced it to the bare bones. Clearly it was too much.

</comment></comment><comment><USER3> What is this? I just see a 'connect with dropbox'. I'd like to know what you are working on but please give me more up front!

<comment><AUTHOR> It's very simple todo application. It saved your data on your Dropbox account using the new Datastore api. Source is available here [https://github.com/gvnn/today-tomorrow](https://github.com/gvnn/today- tomorrow)

</comment></comment><comment><USER4> What is it? I'm not going to connect to Dropbox if I don't know what it does.

<comment><AUTHOR> We kept it very simple :) We'll add a description for sure. The source code is available at [https://github.com/gvnn/today- tomorrow](https://github.com/gvnn/today-tomorrow) so you can have a look

</comment></comment><comment><USER5> I like minimalistic, but this is a bit too much. I'd also like to know what it does before I connect to dropbox

<comment><AUTHOR> It doesn't do anything :) the idea is to use dropbox as datastore so you can access your data anywhere.

</comment></comment><comment><USER6> As good an idea as this is, _how_ is this on the frontpage?

I don't mean this is a nasty way, but with a single page which basically says, "can I access your data please?" and no explanation I can't understand who would upvote it?

<comment><AUTHOR> Building a "nasty" application wasn't our objective. The application is really minimalistic and clearly we shrink it too much. We added a little description now and the application code is available here [https://github.com/gvnn/today- tomorrow](https://github.com/gvnn/today-tomorrow)

</comment></comment><comment><USER7> As others said, this landing page doesn't tell me anything, let alone sell me on connecting my Dropbox. You can update it, but I still won't try it knowing that you have a habit of doing things with user data without full disclosure.

</comment><comment><USER8> I'm all up for minimalist design but you went to far, the users don't even get the slightest clue of what the app is supposed to do or how.

I have no reason for giving you access to my dropbox account

<comment><AUTHOR> Thanks for your feedback. We are adding a little description in home page.

</comment></comment><comment><USER9> When I open this I just see a "Connect with Dropbox" button. Is it supposed to be that way? What happens / what does it do once I connect?

Oh and I use Google Drive instead of Dropbox.

<comment><AUTHOR> The project uses the Dropbox Api to store the list on your dropbox account. Code is available here [https://github.com/gvnn/today- tomorrow](https://github.com/gvnn/today-tomorrow)

</comment></comment><comment><USER10> "Connect with dropbox"

umm.. why?

<comment><AUTHOR> It uses the Datastore API to store your data on you dropbox account.

<comment><USER11> You can't expect people to connect their accounts with no information on what they're about to use. Please add some more information on the details of the application on the home page.

<comment><AUTHOR> You are right, we'll try to make it more clear.

</comment></comment></comment></comment><comment><USER12> I like the minimalistic interface. Good work.

<comment><AUTHOR> Thanks, we tried to keep it as minimal as possible, bringing the focus back to the list of to do.

<comment><USER13> So, it's a to-do list?

</comment></comment></comment><comment><USER14> Please write something about the app on the first page, so that people who are new to the app get to know about it.

<comment><AUTHOR> We just added a little description

</comment></comment><comment><USER15> I don't get it. I don't have dropbox. What is it supposed to do? Clever NSA...

<comment><AUTHOR> You create a new account :) we built the application to use dropbox datastore so you can access to your data from anywhere

</comment></comment><comment><USER16> What is the limit for the Dropbox Datastore?

</comment><comment><USER13> lol, right.</comment>


Privacy implications of email tracking [pdf] - <AUTHOR> https://senglehardt.com/papers/pets18_email_tracking.pdf <comment><USER2> Hello, I'm one of the authors of this work.

The code and data for the study is available here: [https://github.com/citp/email_tracking](https://github.com/citp/email_tracking) (measurement platform here: [https://github.com/citp/OpenWPM](https://github.com/citp/OpenWPM)).

We also just released a blog post that highlights the main results (and is a quicker read): [https://freedom-to-tinker.com/2017/09/28/i-never-signed- up-f...](https://freedom-to-tinker.com/2017/09/28/i-never-signed-up-for-this- privacy-implications-of-email-tracking/)

<comment><USER3> Thank you very much for doing this work! I have recommended that my employer, who makes a popular email client, read this and consider adding these sorts of features.

</comment></comment><comment><USER4> Folks, _every_ email client and service has an option to not auto-download images. Plenty have it on by default (MS Outlook, notably). All of them ought to (IMO), but it's better than nothing.

I warmly recommend you turn it on. There is no need to switch to text-only email clients just because of tracking.

<comment><USER5> Last time I checked, Google's Inbox by Gmail did not include a way to disable image loading, which is why I won't use it.

<comment><USER6> All Gmail (and presumably Inbox) images are transcoded/downloaded via Google's image proxies. [https://support.google.com/mail/answer/145919?co=GENIE.Platf...](https://support.google.com/mail/answer/145919?co=GENIE.Platform%3DDesktop&hl=en)

<comment><USER3> Does that mean that if you even receive an email from a list, they get notified that you opened and read it, even if you didn't? If so, that seems bad to me.

<comment><USER7> No. From the link:

> _senders may be able to know whether you 've opened an email that has an > image attached to a unique link_

My limited understanding is that the load happens on first open, from Google's servers.

<comment><USER8> Yeah, without the ability to cookie them, which I guess is the gain from that.

</comment></comment></comment></comment></comment></comment><comment><USER7> [https://www.emailprivacytester.com/](https://www.emailprivacytester.com/)

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

> mike-cardwell: _a web app I wrote [...] Sends an email to you which checks > to see how much stuff your email client is leaking_

</comment><comment><USER9> Interesting (to me and hopefully to others!) Side note, this is why eve-online added the option to bot autoload images in the forum.

As eve-online has a shit ton of spies(and some people take this game _very_ seriously) a large alliance was using self hosted images and logging ips that we're viewing those images. Through matching posts they were able to scout out alternate accounts and catch spies.

That's how we all heard about it at the time anyway, while technically fesable, I don't have first hand knowledge either way.

Although it did make me start to think about those emails with images and convinced me to turn them off by default ;-)

</comment><comment><USER10> I simply stopped reading HTML emails and read everything in plain text. Works fine for most of the emails I receive, the ones that don't are almost always marketing emails anyway.

I do realise clicking tracking links still works but they are way more visible in plain text mode and it's not that hard to copy & paste the relevant part of the link.

Too bad most email clients have removed plain text rendering these days. I also haven't found a good mobile plain text email client yet.

MailMate has a really nice feature when you can read your mails in plain text by default and toggle the HTML version on a per mail basis with a shortcut.

<comment> alex-e > Too bad most email clients have removed plain text rendering these days. I > also haven't found a good mobile plain text email client yet.

eul [1] only has plain text rendering. It only supports Gmail right now, but a full-fledged email client is coming soon. A mobile app will be released in early 2018.

[1] [https://eul.im](https://eul.im)

<comment><USER11> Sounds interesting. It looks like a one man show though. Is it open source/free software?

</comment></comment></comment><comment><USER12> It is a bit fun how some think they can track if I open emails from them or not. I have several times got email with something like "we see you are not reading the emails you get from us, so we will remove you from our list". I did read the emails using Thunderbird, so was only their tracking that didn't work.

But this is maybe what we get when most read emails in web apps from companies that want to track everything everyone do and think so they can show the adds that are least relevant

<comment><USER13> oh god I wish spammers did this. Imagine: "we notice you don't care about our spam advertising, we'll remove you from our list"

heaven.

<comment><USER14> I've gotten that but it is an unfulfilled promise. It was just another cheap trick to attempt to get me to click their link.

<comment><USER15> That's impressive. Using FOMO to get you to read something you don't want

</comment></comment></comment></comment><comment><USER16> This is why I still love and use mutt (NeoMutt, technically) even after all these years.

I occasionally do fire up Thunderbird but only for those extremely rare cases where I actually _do_ need to be able to read an HTML e-mail.

<comment><USER17> Surely there's a way to pipe an html email to $BROWSER from [neo]mutt?

<comment><USER18> Put this in your ~/.mailcap (all on one line)

text/html; elinks -no-connect -dump -dump-charset UTF-8 -dump-width 140 -default-mime-type text/html %s; needsterminal; copiousoutput;

</comment></comment></comment><comment><USER19> We still have a serious problem with mail client behavior. There is _so much_ that clients could still do to add basic security, even though E-mail protocols are terrible.

For instance, why do we not see in every client a big warning at the top saying something like: "NOTE: YOU HAVE NEVER RECEIVED E-MAIL FROM THIS INTERNET LOCATION BEFORE."? Heck, such messages should even be auto- quarantined to specific folders. It would go a long way to protect people from constantly opening spam.

And, why _by default_ do they insist on making everything look "simple" and "clean" at the expense of helping users to do even the most basic validation? They show senders as short names like "Facebook" when _CLEARLY_ the message is coming from facebook.spammer.com or whatever when you do even the slightest digging into the original message.

Why are "rules" so complex, since damn near everybody needs them for basic sanity? There ought to be a button in every message saying something like "Mark Every Future Message From This Sender as Junk", and similar short-cuts.

<comment><USER20> > For instance, why do we not see in every client a big warning at the top > saying something like: "NOTE: YOU HAVE NEVER RECEIVED E-MAIL FROM THIS > INTERNET LOCATION BEFORE."?

Because that is way too dangerous a policy. Recently, I moved, and in creating online accounts for online bill pay, I got confirmation emails from each of my utilities. Saying that they're spam just because you've never received email from them would cause most people to be unable to find these confirmation messages.

> And, why by default do they insist on making everything look "simple" and > "clean" at the expense of helping users to do even the most basic > validation? They show senders as short names like "Facebook" when CLEARLY > the message is coming from facebook.spammer.com or whatever when you do even > the slightest digging into the original message.

Uh, my email client doesn't do that. If the email address isn't priorly known, it shows the email address instead of the display name.

> Why are "rules" so complex, since damn near everybody needs them for basic > sanity? There ought to be a button in every message saying something like > "Mark Every Future Message From This Sender as Junk", and similar short- > cuts.

Most spammers don't reuse the same email addresses. You end up with a lot of useless rules. Bayesian spam filtering is much more effective, for example, and requires very little user action.

<comment><USER21> > Saying that they're spam just because you've never received email from them > would cause most people to be unable to find these confirmation messages.

It's not saying that they are spam. It's just saying that you never received a message from them. That account confirmation email you are expecting will be obviously marked, but that phishing email claiming to be from your bank will be marked too. You look at the mark and decide what to do.

Email clients probably don't do it because it is not as useful as it sounds. Impersonating email senders is not hard, so phishers will just do it.

> If the email address isn't priorly known, it shows the email address instead > of the display name.

The only email client that I have ever seen doing that is the roundcube instance I configured on my VPS. I use several clients, nearly all of them either hide the sender address or decrease its relevance enough so that nobody sees them.

I'm in complete agreement with your comment about spam filtering. The only thing is that somehow, it feels like it worked better at the earlier 00's. Nowadays the training for your account will be dissolved in a huge set of unreleated data, so that anything specific for the spam you are receiving will never be reflected on the filter. That is both for marking things as spam and as not spam.

<comment><USER22> I get where both of you are coming from, but there is one UX part of this I've found that is hard to solve.

Inexperienced users want to be told what to do. You can't just throw information or warnings at them without giving them a way to act on it.

Combine that with the fact that if the users even read the warnings they are going to only read a sentence at most, or just the first option.

So when you show a warning like"you have never received email from this address before" users are going to ask what they should do. Is this dangerous? Did it come from my bank? I've had this bank for years! Does this mean the email is a hacker!?

If you say "it can be dangerous, but it also can be just a new email" that will be read as "yes this is dangerous" and now they will learn the hard way that it is safe, and your warnings will have less weight in the future (they were wrong about this being "a hacker" once, they might be wrong this time too!)

It's a really hard problem to solve, and the "easy way out" is to not show the information at all (no confusion if you just don't show it!) But that kind of just kicks the can to the user leaving them to determine if an email is "good" or "bad".

</comment></comment></comment></comment><comment><USER23> Yes you did - we all did. By not paying attention, by not speaking up, and by deferring to those who don't give a shit.

</comment><comment><USER24> At least we have some control over the exposures discussed in the paper. Very many companies are exposing (sensitive) information to third-party email delivery services, customer feedback and polling services, etc. Thus creating a privacy issue (and in some cases, a serious one) even before the email arrives at the recipients' server.

</comment><comment><USER25> As others have pointed out, the best solution is to configure your email client(s) to your security preference but it's worth noting that some companies will give you the choice of plain text emails over HTML. I was pleasantly surprised to find Amazon (at least in the UK) offer this.

</comment><comment><USER26> For those reading [https://news.ycombinator.com/item?id=15354114](https://news.ycombinator.com/item?id=15354114) OSX mail client does not help.

<comment><USER27> OS X mail has an explicit option in the "Viewing" section of its preferences saying "Load remote content in messages. Email messages may contain images or content stored on remote servers." I think this option was there since Lion or even earlier.

<comment><USER26> The average user _enables_ them otherwise, newsletters or other mails are unreadable. Smarter would be if Apple can IMAP store certain content.

</comment></comment></comment><comment><USER28> Doesn't Google immediately download any external images/assets in an email and cache them to prevent exactly this?

<comment> mike-cardwell It's my understanding that they only download the assets when you first read the message. So it protects your IP address, but it doesn't protect the fact that you read the message.

[edit] Yes, I have just confirmed this by using emailprivacytester.com

<comment><USER29> So what you should do is have some sort of script running 24/7 that "reads" your emails the moment it's received.

</comment></comment></comment><comment><USER30> Gmelius ([https://gmelius.com](https://gmelius.com)) detects and blocks pixel trackers within Gmail and Inbox. We'll soon release a way to prevent link tracking. You can learn more about this privacy feature at [https://gmelius.com/gmail-block-trackers/](https://gmelius.com/gmail-block- trackers/)

</comment><comment><USER31> [https://gmelius.com](https://gmelius.com) seems to block email trackers in Gmail.

<comment><USER32> Similarly, I've used the PixelBlock Chrome Extension and it works well. Very much a "set it and forget it" kind of tool.

<comment><USER33> I'm surprised there isn't an equivalent for Firefox. At least no obvious one I can find so quickly.</comment></comment></comment>


Why can't we see page 2? - <AUTHOR>

<comment><USER2> I can get to see 150 article links, the more button works for me and can go to 3 pages @50 links each

</comment><comment><USER3> I don't understand; what do you mean? Do you mean, why is there no More link on the New page?

</comment><comment><AUTHOR> Because its new. There is a More button on the front page

</comment><comment><AUTHOR> Many cool articles go missing after a day or two...</comment>


New Electric Motor Could Boost Efficiency of EVs, Scooters, and Wind Turbines - <AUTHOR> https://spectrum.ieee.org/cars-that-think/transportation/advanced-cars/new-electric-motor-could-boost-efficiency-of-evs-scooters-and-wind-turbines <comment><USER3> These guys have definitely spent some money on PR since closing their investment round in April. They have placed 4+ articles with many of the same talking points, pictures and video over the last 2 weeks:

[https://www.cnet.com/roadshow/news/linear-labs-electric- turb...](https://www.cnet.com/roadshow/news/linear-labs-electric-turbine- motor/)

[https://jalopnik.com/a-texas-startup-claims-to-have-made- the...](https://jalopnik.com/a-texas-startup-claims-to-have-made-the-biggest- advance-1837173127)

[https://newatlas.com/linear-labs-hunstable-electric- motor/60...](https://newatlas.com/linear-labs-hunstable-electric-motor/60974/)

[https://insideevs.com/news/364852/linear-labs-hunstable- elec...](https://insideevs.com/news/364852/linear-labs-hunstable-electric- turbine/)

Funny to see the VC money being spent so tangibly and the timeline for creatives, relationships and placements.

<comment><USER4> And they don't really have anything useful. Their claims dont make any sense to someone in the field. Now I have to file ieee spectrum under "willing to pedal bullshit for money" like so many other publications.

<comment><USER3> Yea, not a good look for IEEE to be posting articles on buzz word vapor ware with pretty pictures.

</comment></comment></comment><comment><USER5> 10% is nothing to sneeze at but it also does not mean it is a game changer. I like the way the coil ends are described, they are 'dead' weight in a normal motor because they don't contribute to the flux but they do contribute to the resistive losses in the motor. But that 10% of the length of the winding that sits outside of the coil chambers is not responsible for 10% of the electric consumption of the motor, which is not resistive in nature in an AC drive motor.

I do like the fact that they believe they can do without a transmission entirely, if that works it will save a good bit of energy through weight reduction, mostly during acceleration and deceleration. The bit I don't get is where they talk about DC-DC conversion, most electric cars that I know something about the guts of use tri-phase AC drive.

Making this work across a wide range of scales will be an interesting challenge, in my experience increased torque comes with its own challenges (such as shafts snapping or rotors slipping on or shearing off the mounts of the shaft they are mounted on).

<comment> crooked-v > 10% is nothing to sneeze at but it also does not mean it is a game changer.

They give a quote on a practical application:

> The resulting Segway enjoyed a 50-percent increase in range, and four times > the torque, which boosted the vehicle's top speed and allowed it to climb a > steep 20-percent grade.

If that scales up linearly to electric cars, that's quite a boost.

<comment><USER6> That's a lie. Or, at least, there's another existing normal motor that can achieve at least nearly the same results. Existing motors are already 90+% efficient; it's not possible to make a 50% increase in range.

<comment><USER7> I agree that they are at least misrepresenting their achievement. However, for the sake of argument, electric motor efficiency goes down quite a lot as overall power potential and RPM both drop. So it's possible they've come up with a sizeable efficiency improvement in a worst-case scenario, i.e., improving efficiency of a small motor in low RPM, part throttle situations.

If that's the case, however, it doesn't really bode well for them, as their efficiency gains will not translate to the high-RPM, high-power motors used in cars. I'm not EE, but I do know that most engineering involves making trade- offs. So I wouldn't be surprised to learn that techniques to improve low- power, low-RPM efficiency probably sacrifices high-power, high-RPM efficiency.

<comment><USER8> they did call out scooters and drones, so id guess you're right

</comment></comment></comment></comment></comment><comment><USER9> Whenever i see a headline with a subjunctive mood verb (should, could, might, may,...) I think "marketing propaganda".

</comment><comment><USER10> Previous conversations about this same announcement:

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

</comment><comment><USER11> the patents are pretty good reads, no hype, just diagrams [https://patents.google.com/patent/US20160020652A1/en](https://patents.google.com/patent/US20160020652A1/en) [https://patents.google.com/patent/US20160380496A1/en](https://patents.google.com/patent/US20160380496A1/en)

</comment><comment><USER12> For those wondering what a seemingly marginal difference would mean in real world examples, take a look at this video from a conference on electric aircraft design a year ago:

High Torque, Low RPM Motors – Key Enablers of Quiet Flight [https://www.youtube.com/watch?v=jXd4M_pZl78](https://www.youtube.com/watch?v=jXd4M_pZl78)

<comment><USER13> I watched about half that. Interesting bit that newer high bypass turbofans need gearing to match the turbine optimal shaft rpm to the fan's lower rpm and higher torque.

Brings up

       High torque gears -> weight
       High speed gears -> maintence hassle

If I get this talk right the hope is the difference in weight penalty for an advanced direct drive electric motor vs a gear train is nil. This guy is pushing a very high efficiency design that minimizes magnetic and resistive losses while being capable of high torque.

Neat.

<comment><USER14> Random OT trivia, but the first turbofan to fly was geared, and there have been commercial geared turbofans in use at least since the early 70s.

It's always been a trade off of fewer compressor stages vs. not having gears. Either of extra compression stages and gears add weight and reduce efficiency, so it's always a tradeoff.

</comment></comment></comment><comment><USER15> >The company's permanent-magnet tech requires no rare-earth metals.

<comment><USER4> Neither does any other motor. It will be larger without them.

</comment></comment><comment><USER16> A lot depends on information they have not yet shown us. We have seen some hypebole, but there are dozens of 'free energy' people on you-tube making all manner of expansive claims - again with no data. Their best bet is to partner with Tesla or another combustion based car maker. They speak of patents - <USER2> needs to be tested on a bench to confirm it. Tesla has many many patents that they share on a mutual basis - which means I share mine if you share yours. So if some car make wants to sign and exclusive with Linear Labs they may get cut off from the Tesla patents?? If someone is too greedy they will find no buyers as the old ways work fine. Look at how the Wright Brothers patent greed eventually killed them off as they were invented around. [https://en.wikipedia.org/wiki/Wright_brothers_patent_war](https://en.wikipedia.org/wiki/Wright_brothers_patent_war)

So more data, more truth, more future

</comment><comment><USER17> This whole thing sounds like a scam. Even worse, it's in an IEEE article. I'm really glad I ended my subscription to them so many years ago if they've fallen to these depths. Just look at this one line from their article:

>Torque is the amount of work that a motor or engine produces, typically measured on a per-revolution basis.

No, that's energy, not torque. Torque is rotational force. Torque times rotation is power, which is the rate of work. Work = energy. This is Engineering 101 here; it's inexcusable for the IEEE of all organizations to screw this up. I expect this kind of lousy journalism from a mainstream, layman news outlet like NBC or something, not something aimed at engineers.

>A typical motor's copper content could be reduced by 30 percent, while generating equivalent torque, they say. So for a given torque level, the HET consumes significantly less energy than competing designs.

Very little of the electrical energy input to a motor is consumed by resistive losses in the windings; almost all of it is consumed by conversion to mechanical energy. Reducing winding resistance is nice, but it's not going to produce some enormous energy savings. Reducing the weight is helpful too, but again, those extra windings are only a fraction of the motor's weight, and unless the motor is being used in an aircraft, motor weight isn't really that big a deal in a vehicle, battery weight is.

>The company's permanent-magnet tech requires no rare-earth metals.

This sounds like a total crock. Always be suspicious of new inventions when a single invention claims revolutionary advances in more than one field. Magnet technology is separate from motor technology, just like CPU technology is separate from mobile phone technology: it's a very necessary component, but still a component, one which is usually sourced from an outside vendor. Motor manufacturers do not make their own permanent magnets; there's companies that specialize in that. And making magnets with the highest densities of magnetic flux without rare-earth elements would be a pretty big game-changer, so why are they talking about motor windings instead of this?

>The system incorporates a purely electronic transmission

A what? Not possible: a transmission is a mechanical item that converts rotary motion into rotary motion at a different speed and torque level (e.g., high- speed, low-torque into low-speed, high-torque). This is just a meaningless sound bite. Most EVs use transmissions (usually single-speed "gearboxes", not multi-speed "transmissions") because they'd have to make the motor physically larger to generate the torque necessary to drive a car directly, and the extra weight and size isn't worth it; it's easier to drive motors fast and use a gearbox to gear it down, even with the efficiency loss.

>Many electrified vehicles must also integrate a DC-to-DC converter

Again, the "Institute of Electrical and Electronic Engineers" apparently don't understand basic electronics any more. Most EVs use 3-phase brushless motors, or induction motors (Tesla). The motor controllers are driven by DC because that's what Li-ion batteries produce, and they output waveforms to directly drive the windings on the motor in accordance with the current demand for power. I don't see how they expect to get around some sort of controller here.

Sorry, this whole piece sounds like BS. The whole thing is likely some kind of scam to get investor money and then disappear.

<comment><USER18> > >The system incorporates a purely electronic transmission

> A what? Not possible: a transmission is a mechanical item that converts > rotary motion into rotary motion at a different speed and torque level

Other articles about this company explain what this electronic "transmission" is: variable windings. So they can switch from 6 phase to 4 to 3, which will change the RPM per volt. I think.

[https://insideevs.com/news/364852/linear-labs-hunstable- elec...](https://insideevs.com/news/364852/linear-labs-hunstable-electric- turbine/)

</comment></comment><comment><USER19> I'd like to see real comps with the Tesla M3 motor, which seems to be the clear market leader in cost/perf ratio.

</comment><comment><USER20> You know it "will not" when the title says "could".

</comment><comment><USER21> I wonder how easy it is to manufacture comparitivly. Also I wonder how well it works to generate electricity.

</comment><comment><USER22> So what is the advance that they have made? I couldn't see anything in the article.

</comment><comment><USER23> Amusing to me that "scooters" gets the number two slot here.</comment>


Haskell for a New Decade [pdf] - <AUTHOR> http://dev.stephendiehl.com/new_decade.pdf <comment><USER2> I think the focus on Haskell is missing the mark a bit.

Haskell is about programming language researchers and enthusiasts having a excellent example language to try out ideas. Over the years it has turned into a production ready platform.

As the PDF shows there are many languages spun off Haskell and it doesn't even mention them all. Then there are language features in C# and Java, Typescript etc. that are coming across from Haskell.

I think the problem with Haskell as a language as a mainstream thing is that it requires a lot of upfront investment to get used to. C# -> Ruby is 10 hours to be productive, 100 hours to be reasonable. C# -> Haskell is ten times that.

A lot of stuff to get your head around. There are complex topics from category theory to metaprograming. Sure you can ignore it - until you want to use a web framework that uses those concepts, then it's on you.

Instead of Haskell we should be thinking of programming language research and how to get the best ideas into our mainstream languages. How do we make immutability easy and ergonomic and get rid of nulls in C#? Can we have guarantees in our program. There are even features not in Haskell proper like Liquid Haskell that would be interesting to have in C# or Typescript.

This is what is needed if we want the Haskell ideas to be popular. That might not be what other people want.

<comment><USER3> Counter point on "investment":

I was in a Haskell team at Google, and have trained groups at various companies professionally. From that experience, for a normal developer with working experience in Java, Python, or C++:

* It takes 2-3 weeks of full-time onboarding (half with a coach, half self-study) to work on a typical industrial Haskell project.

* It takes around 3 months of full-time participation in such a project to know a wide array of libraries and feel ready to tackle almost anything.

The companies involved were happy to make this time investment for increased productivity over the time they expected their employees to stay with them.

On an individual level, it makes sense that if you're just getting into programming, and you have the choice between investing 2 weeks into Python to be productive, or 3 months for Haskell, you pick Python. It's rational. But after you've been in it for a few years, and you realise you want to do it for another 40 years, investing 3 months for life-long increased productivity (even if it's just a few percentage points; most feel the effect is larger) suddenly becomes a great deal.

Counter point on "complex topics":

After 6 years of industrial Haskell, I know nothing about category theory. It has not prevented me from using web frameworks.

<comment><USER2> Thanks for that.

Everything you said is from the perspective on being not only in a Haskell job but in a Haskell team. Your 3 months is 5 years for someone trying to learn on their own in their spare time. And then they need this to get a Haskell job due to the competition for such job and the queue of super smart people lining up for a Haskell job. And the pay cuts are brutal. Now you are an outlier, working on a Haskell team for Google, the rare triad of using Haskell at work, presumably being well paid, and having that mentorship from other team members.

> After 6 years of industrial Haskell, I know nothing about category theory. > It has not prevented me from using web frameworks.

As someone in as Haskell team, maybe this is possible. You don't have to try and pick apart the online knowledge. For example a lot of libraries use Lens. I want to understand Lens? It is not simple: check out the diagram on [https://hackage.haskell.org/package/lens](https://hackage.haskell.org/package/lens). "Yeah but it's just X Y Z". Great - I've been to many FP meetups, and seen a lot of stuff online and there is no simple help for this stuff.

<comment><USER4> > For example a lot of libraries use Lens. I want to understand Lens? It is > not simple: check out the diagram on > [https://hackage.haskell.org/package/lens](https://hackage.haskell.org/package/lens).

You're making it seem harder that it really is. Yes, it's hard if the package documentation is all you have, but that's the hard way to learn. There are other online unofficial documentation and tutorials (of diverse quality). There's also a book ([https://leanpub.com/optics-by- example](https://leanpub.com/optics-by-example)) that I find adequate for a reasonable learning experience (I think I would have saved much time if I had started learning lens using this book.). And, you don't need to know the entire lens package to use it. The most commonly used part of lens (Lens proper, not Prisms, Isos, etc) is only a small fraction of the whole thing.

<comment><USER2> Ah OK, things have moved on in recent years. Maybe there are more resources out there than I thought.

<comment><USER5> and you can learn enough lens to be productive in 1 hours with this talk without reading docs at all.

You can skip the theory and go straight to usage: [https://www.youtube.com/watch?v=QZy4Yml3LTY](https://www.youtube.com/watch?v=QZy4Yml3LTY)

</comment></comment></comment></comment></comment></comment><comment><USER6> I tried twice to get started with Haskell. I understand the language well enough, but the standard prelude gave me problems. I forget the details, but the first attempt involved reading ASCII strings from file. I had some issue with the standard string type and after a bunch of searching and trying other things, nothing worked. The second time I tried to use sockets. After a few days, I discovered sockets were both broken and deprecated.

Haskell needs to replace the standard prelude and burn the old documentation.

I have used dozens of languages and never really had any problems.

But the simplest of tasks in Haskell immediately put up roadblocks.

I'm sure if I had sufficient reason I could get passed these problems, but when easy things are not easy one loses interest fast.

<comment><USER7> There does seem to be a issue with discoverability in Haskell. I'm cooking up a plan to try to improve the situation: [https://github.com/tomjaguarpaw/tilapia/issues/13](https://github.com/tomjaguarpaw/tilapia/issues/13)

> I discovered sockets were both broken and deprecated.

Just in case anyone gets the wrong end of the stick, "Haskell sockets" are both working and supported (quotation marks because there is no single blessed implementation: sockets are just a (few) library(ies)). When people want help choosing a library, I point them to [https://haskelliseasy.readthedocs.io/en/latest/](https://haskelliseasy.readthedocs.io/en/latest/), which is an opinionated, curated list.

</comment></comment><comment><USER8> I've been writing Haskell professionally for 5 years now and as a hobbyist even longer and this presentation just doesn't resonate with my experience and view towards the future.

That said I've taken my focus off working in it professionally. It's such a chore to have to constantly justify it to newly-externally-hired management and inevitably get a top-down directive to rewrite. I'm done relying on managers and corporations to drive Haskell.

My focus now is freedom & independence. I've got plenty of hugs and impactful personal projects & Haskell advancements I'd like to undertake in the next 5-15 years, and nothing even sniffs Haskell as a tool for me building without thinking or exerting energy. Maybe my issue is I love Haskell but I am abjectly not a community member.

<comment><USER9> What kind of production systems are a good fit with Haskell? I've wanted to learn Haskell but keep getting distracted by other shiny things that are more directly applicable to my job.

<comment><USER10> Haskell won't give you high interactivity (on the milliseconds of response time), or C-like performance. It will make it hard to control low level details of your memory and execution path. It will also not bring a lot of gain if you only have homogeneous data (like in machine learning).

If you have a problem where intermediate performance (on the level of Java and .Net, better than Python or JS) is ok and people won't notice 100ms extra here and there, Haskell is viable. If it's not focused on low level IO, and deals with complicated stuff, odds are it's your best option right now.

</comment></comment></comment><comment><USER11> Very informative slides.

I do not have real-world experience with Haskell, aside from little toy projects, but I have a lot of experience with other functional languages in the ML family and Scheme.

Idris 2 looks appealing, but they should have also mentioned other approaches like Fstar, Lean and Z3. I quite like Fstar since they are delivering a big verified code base, as implied by the name of the effort: Project Everest [1].

While theorem proving is the most general approach to verification, manual proofs are tedious and full automation might never be completely possible in the short term.

I would love to see someone pushing for a different approach. A toolkit where you can create DSLs with limited expressiveness, which in turn make it easy to build and verify things. The equivalent to Alan Kay's Viewpoints Research Institute efforts to build a minimal computation system, but with some verification guarantees.

[1] [https://project-everest.github.io/](https://project-everest.github.io/)

<comment><USER12> >A toolkit where you can create DSLs with limited expressiveness, which in turn make it easy to build and verify things.

This is a common approach in the Coq ecosystem, writing DSls for building things, and custom automation for them. See for instance papers by Adam Chlipala.

<comment><USER11> I know. His FRAP & CPDT books are great reads.

</comment></comment></comment><comment><USER13> "Software is Terrible and Getting Worse"

I wonder if increasing bloat is a permanent thing? Will software ever transition to a cycle of simplification? Has it ever gone through a simplification cycle in the past?

Physical engineering has some limits that push back on complexity. You can only cram so many gears into a Swiss watch. An item can only have so many parts before manfacturing becomes a nightmare.

What will push back on the complexity of software? Will it ever "break" in a way that we just do things differently?

And it would be strange to think that something like haskell could save us, when the compiler itself is such a beast. If something saves us, it will probably look more like FORTH or lisp or Prolog.

<comment><USER14> > Has it ever gone through a simplification cycle in the past?

Not as a whole, but there have been some significant attempts. Maybe the most radical one I can think of is Chuck Moore's Forth systems. Every new version is simpler than the previous one. Arthur Whitney has done something similar with APL, A+ and k, constantly trying to remove non-essential features. A more mainstream example is Unix and Plan 9, the 7th version of Unix was simpler than previous ones, and Plan 9 was much simpler than Unix. There are also initiatives like suckless, which try to write simpler software.

I am sure there are many more similar examples. Trying to remove bloat and complexity is a very important goal for many developers. Unfortunately, the real world usually gets in the way (colorForth has quite limited hardware support, Plan 9 never included a full-featured web browser, suckless software is not too friendly for novice users...).

</comment></comment><comment><USER15> The fact that many students learn Haskell in University and then don't use it in production isn't as much of a problem as the presentation seems to suggest. Programming in a pure functional language is a school of thought, a way to solve problems that's markedly different from OOP or imperative styles.

In my education as a programmer Haskell has a special place and the way I use filter, map and reduce in production JS code is a small reflection of that.

Ideas of Haskell have cross fertilized into many other languages, e.g. you can clearly see it in Rust.

</comment><comment><USER16> These slides simply assume that Haskell as-is is progress, and then bemoan the "fashions, whims, and tastes" of the industry in being slow to relise that. But to measure the "timescale of progress" you need to consider the duration not from the time an idea first appears until mass adoption, but from the time the idea is proven and market-ready. GCs were widely adopted within 5 seconds of them having acceptable performance and not being packaged in runtimes with other significant downsides. The adoption rate of technology -- in general and in software in particular -- is largely consistent with what we'd expect from traits in selective environments. Ideas that trickle slowly through fashions (genetic drift?) are those that aren't adaptive (yet?).

</comment><comment><USER17> "Everyone should build GHC from source at least once...You will learn a lot about how the sausage gets made."

A decade ago a friend paid a local company to build him a many-core compute server. I was fairly certain they'd under-spec'd the power supply. My favorite stress test was to build 32 copies of GHC at once, daisy-chaining each new copy to build another. Keep it running.

His computer started billowing smoke.

<comment><USER18> That quote is misleading. The part with "how the sausage is made" refers to reading the developer mailing list, not to building GHC.

</comment></comment><comment><USER19> I love the clear eyed approach to what Haskell's future may look like. I look forward to seeing the fresh ideas the programming language community continues to bring forward in this area. Does anyone know if these slides came from a talk that was recorded?

<comment><USER20> Typically Steven posts the recording of the video within a couple of days.

[https://www.meetup.com/Berlin-Functional-Programming- Group/e...](https://www.meetup.com/Berlin-Functional-Programming- Group/events/271110609/)

</comment></comment><comment><USER21> "Software is Terrible and Getting Worse"

Reminds me of this satirical post:

[https://bertrandmeyer.com/2013/03/12/apocalypse-no- part-1/](https://bertrandmeyer.com/2013/03/12/apocalypse-no-part-1/)

</comment><comment><USER22> > "The barrier to entry for GHC development remains impossibly high"

Could not agree more. I've put in a couple merge requests to the ghc Haskell compiler, and it's very difficult to even figure out what's going on, nevermind make a meaningful contribution.

<comment> iso8859-1 What is an easier compiler to get into? Interpreters do not count ;)

<comment><USER23> Rust's rustc, TypeScript's tsc and C#'s Roslyn are all developed in the open and constantly merge patches from new contributors.

</comment></comment></comment><comment><USER13> As a database person, I think if more haskell people took an interest in database languages, the world would be a better place.

<comment><USER24> They surely did, and got the very unique Software Transactional Memory based multithreading.

<comment><USER25> I think Erlang's mnesia was the earliest implementation of STM.

</comment></comment></comment><comment><USER26> When will Haskell get a different spokesperson? Stephen isn't effective in this role. These posts have jumped the shark to the point when I see a big Haskell post on HN and see stephendiehl.com it's just time to tune out.

For Haskell to succeed, it has to move away from rigid commitment to various pure functional paradigms and move to eager execution by default. But Stephen does not help this, just preferring to instead dig in more on expecting the reality of the rest of the world to change itself to accommodate the strictures under false pretense that the strictures are parochially better.

Haskell's real failure to launch is not because of complex tooling issues between cabal & stack, not because of a big mess of compiler pragmas to get basic String functionality, not due to complexity of understanding monads or type classes.

The problem is that the stated benefits of pure functional programming _are not actually benefits_ at least not when writing business software.

The slides (rather arrogantly) say we're at the blood-letting and leeches stage of software. Well claiming Haskell is a solution is like inventing epicycles to explain orbits or elevate alchemy to a science. It wastes everyone's time with artificial complexity substituted for advanced capability.

<comment><USER27> The types of posts that get downvoted on here is at times maddening.

This to me, is the only reply thus far that addresses what I also perceive to be the fundamental problem with Haskell - it doesn't provide any new convenient tools to solve real world problems, while requiring one learns a bunch of useless abstractions that aren't used anywhere else in industry as a default (monads, laziness, immutability)

<comment><USER28> (It's a HN rule not to discuss down votes)

However the problem with the parent post of that it presumes Haskell isn't useful because of X, when clearly it's useful for many and changing X would make it not Haskell. That sort of comment isn't useful.

I think for as long as I have known Haskell (1992-) there has been interest in and a desire for a strict variant of Haskell. In 2020 it seems there are a lot more options for that, which is great, but they aren't Haskell.

<comment><USER26> > " changing X would make it not Haskell"

this seems like some version of a No True Scotsman argument.

</comment></comment></comment></comment><comment><USER29> The video was posted today: [https://www.youtube.com/watch?v=B9_xAixGlmk](https://www.youtube.com/watch?v=B9_xAixGlmk)

</comment><comment><USER30> As a seasoned C++ programmer, that occasionally plays with Haskell, here is a question?

Has finally Haskell the problem of how to do destructive updates or not?

If it cannot do destructive updates, I am not interested. The kind of software I am called to build always requires destructive updates for performance reasons and secondly I am so used to assignment and all the design patterns around it that I don't think I should bother with something that does not provide that.

<comment><USER31> Haskell can do destructive (in-place) updates via various forms of mutable variables (e.g. IORef).

<comment><USER32> And mutable arrays: [https://hackage.haskell.org/package/array-0.5.4.0/docs/Data-...](https://hackage.haskell.org/package/array-0.5.4.0/docs/Data- Array-MArray.html)

</comment></comment></comment><comment><USER33> Actual presentation should show up on this channel soon, as it's where this talk was given: [https://www.youtube.com/channel/UCNp- DVb8cQRIOo32sZhWgNg/vid...](https://www.youtube.com/channel/UCNp- DVb8cQRIOo32sZhWgNg/videos)

<comment><USER33> Ah here we go, actual presentation video has been posted: [https://www.youtube.com/watch?v=B9_xAixGlmk](https://www.youtube.com/watch?v=B9_xAixGlmk) :)

</comment></comment><comment><USER34> HTTPS is busted on this site, for me:

PR_END_OF_FILE_ERROR

<comment><USER35> The link is to insecure HTTP. I think that site just doesn't support HTTPS.

<comment><USER34> Ah, I use https everywhere.

</comment></comment></comment><comment><USER36> no mention of web assembly, how is Haskell support for it ?

<comment><USER20> Here is a recent Reddit thread on the topic.

[https://www.reddit.com/r/haskell/comments/foeyim/ask_what_is...](https://www.reddit.com/r/haskell/comments/foeyim/ask_what_is_the_state_of_haskell_targeting/)

</comment></comment><comment><USER37> Ironic that it's a PDF.

<comment><USER38> Care to elaborate?

</comment></comment><comment><USER39> Why Haskell, and why not just write it in Lisp?

It appears Lisp has proven itself consistently, at solving difficult problems.

<comment><USER40> I've been paid to write Lisp most of my career. Most new languages I check out seem like some variant of C or a dumbed-down version of Lisp. Haskell is the only one that seems like an actual upgrade from Lisp, in that there are things you can do in Haskell that would be quite difficult to shoehorn into Lisp without changing Lisp in fundamental ways. (A statement I never thought I would make before I found Haskell.) The full panoply of monads for example. Automatic currying for another. A true lambda-functional language that _does not need parentheses and makes no compromises for their absence_ for yet another.

All this does not make me want to abandon Lisp for Haskell; Lisp is still more practical for most of my needs. But if I had to write a parser I'd probably first write it in Haskell and then translate it to Lisp, because Haskell expands the way you think about hard programming problems -- even beyond the realm to which Lisp expands it.

<comment><USER41> Out of curiosity, how and how often do you make use of Haskell's laziness, and how often does it get in your way?

And yes, the syntax of Haskell (besides unary minus) really does feel like it's close to some kind of optimum.

</comment></comment></comment><comment><USER42> I've heard from some long-time Haskellers that there is no point in continuing using the language after the advent of Rust.

EDIT: I should have clarified I guess - interested to hear the opposite arguments (as a neutral (C++) person :)).

<comment><USER43> As a Rustacean, I find that silly. There's a lot to love about Haskell.

I'd be interested in hearing from your Haskellers what it is about Rust that renders Haskell obsolete. As it stands, I can only construct straw men, and I'm not really willing to do that.

<comment><USER42> From the pure language perspective (i.e. batteries aside), what do you miss in Rust from Haskell?

<comment><USER43> Everyone else pretty much said it for me. To elaborate more personally: the distilled expression of pure functions as _the_ basic entity of modular engineering is such a huge selling point for me. Lazy evaluation is also surprisingly valuable in this vein, because I can compose components -- pass the output of a component to the input of another -- with the assurance that I'll only pay for that computation if it's actually requested.

I do deeply appreciate Rust in how it supports serious functional programming idioms without requiring a GC. The value of immutable-by-default and single- ownership semantics have been infectious far beyond my direct use of Rust. But those very same features of Rust also make the pure function just a _little_ more clunky in that environment.

Oh, and being literally _unable_ to perform I/O (or any other computational effect) outside of the right context is such a clear win for me. Very few languages, even in the functional world, have such a strict separation. The architectural _and mental_ benefits are outstanding.

Some concepts take on a surprisingly simple existence in Haskell. I recently discovered the Yoneda and codensity transformations, as so frequently discussed in Haskell... in the context of a Visitor pattern on a tree structure in Java. Visitors are literally Yonada-ified sum types, and I could only make that connection (and understand the ramifications and benefits) after seeing how it naturally arises in both languages.

<comment><USER12> >Very few languages, even in the functional world, have such a strict separation.

It's catching on. Nim has the noSideEffect pragma (enabled by default if a function is defined with "func" rather than "proc"), and D has a "pure" annotation. Both are compiler-checked.</comment></comment></comment></comment></comment>


Ask HN: Is there a forum for hiring and interviews experiences in tech? - <AUTHOR> <comment><USER2> try glassdoor.com</comment>