skysight-inc/HackerNews huggingface dataset:
> Monads can help solve certain classes of problems in a uniform way.

You solve 3 completely different problems using the exactly same code and have the gall to call this less complicated? I'm forced to sometimes wonder whether functional programmers have any idea how to create software.

If this was a joke I didn't understand, I apologise for my thickness.
I don't run a lot of windows container stuff day to day, but from what I can see they are improving, definitely image size is coming down quite a bit.

Microsoft are obviously investing quite a lot of effort in making the windows container ecosystem more robust, as well as improving the experience of running Linux containers on Windows.
Many of those CS degrees outside of first and second tier universities are not very good, however. When every foreign language unverisity and teacher’s college (there called normal universities) has a CS department, there is definitely something going on.
> In this post we’ll have a look at some instances of such sitations, their “ad hoc” solutions provided at the language level, and finally at how these problems can be solved in a uniform way using Monads.

I wonder if the blog post's author is actually aware that the original application of monads to programming languages was precisely to give a denotational semantics to strict higher-order languages. In other words, you don't “add monads” to JavaScript. A monad, perhaps an entire monad transformer stack, is already hardwired into its semantics.

Now, I'm aware that the author says at the end:

> We’ve had a look at this from a syntactic perspective.

But monads are about semantics, not syntax. Of course, if you want uniform syntax for using monads, then say just that.

---

> For-loop Hell occurs when iteration through multiple dependent data sets is needed. Just as for null-checking, our code becomes deeply nested, with a lot of syntactic clutter and needless bookkeeping.

You know what's a simple, clean, straightforward solution to “for-loop hell”? Helper procedures. It baffles me why people always reach for the bazooka when a fly swatter will do.

> Both the State and ST monads bound the lifetime of a stateful computation, ensuring that programs remain easily reasoned about in the general case.

Yet neither can express the following very useful pattern:

allocate A
allocate B; use A B; deallocate A
allocate C; use B C; deallocate B
...
allocate Z; use Y Z; deallocate Y
deallocate Z

> The `ST` Monad provides more performant state with references, at the cost of some higher order behaviour.

`ST` is not about “performance”. It's about semantics. With `State`, you have to know beforehand the state type, and you cannot change it in the middle of the computation. With `ST`, you can allocate whatever you want in the middle of a computation, and it doesn't have to be reflected in the computation's type.
I think the author is using the term in the more common sense of "good value" as he includes this:

> choose the available job option that offers the greatest variety of these traits in exchange for career capital

- wherein he defines both value and what you're paying for it.

I assume that by "career capital" he means the opportunity cost of working for one organisation over another.
So the first question: Why are you using a doubly-linked list? :-)

Due to the way modern processors work, following long chains of pointers is massively expensive (unless can you carefully control where all of the memory was allocated). There's a whole section discussing this in the "Too Many Lists" book. Basically, following pointers to unpredictable places will eventually defeat your processor's caches. You could easily wind up running a thousand times slower than if you used the cache well.

So you first want to look at data structures which store many elements in a single block, so that they're adjacent in memory and you won't have to chase nearly as many pointers.

- If you just want an ordered group of elements, use a "Vec", which is similar to a C array.

- If you're going to add elements at the back, and remove them from the front, look for a queue. These can be implemented with ring buffers or slabs of memory containing multiple elements at a time. There's a couple in the standard library.

- If you need to keep elements in order and search for them, you might actually want a B-tree, which again uses slabs of memory. There's a nice BTreeMap in the standard library.

Basically, by the time you've analyzed your problem, there's a 95% chance that a doubly-linked list was just the wrong data structure. Cache locality just has too big an effect on performance.

But if you really need a linked list, go to https://crates.io/ and search for "linked list" or "doubly linked list." Flip through the first page or two, and look for something with lots of downloads and nice docs. Check if it supports the APIs you want for your use case.

Also take a look at petgraph, which is an awesome Rust graph library: https://crates.io/crates/petgraph This has a zillion downloads (by Rust data structure standards), plenty of reference docs, and good support. It knows about cache locality. And a linked list is really just a special case of a graph.

But basically, you shouldn't be using doubly-linked lists unless you know exactly why you need one. They're a nice teaching exercise (except in Rust or functional languages) but they're actually pretty specialized.
The IRS and The HMRC do want to know where all your income comes from - J random buzy body or an employer should be told to GTFO
Here's an evaluation of the Estonian system (originally from 2014, I believe) by independent experts: https://estoniaevoting.org/

Money quote: "What we found alarmed us. There were staggering gaps in procedural and operational security, and the architecture of the system leaves it open to cyberattacks from foreign powers, such as Russia. These attacks could alter votes or leave election outcomes in dispute. We have confirmed these attacks in our lab — they are real threats. We urgently recommend that Estonia discontinue use of the system."
How Exercise May Help the Memory Grow Stronger
I attempted the AI Box Experiment (and lost) (2013)
Researchers have found many, many flaws in Estonia's e-voting system[1].

[1]: https://estoniaevoting.org/
You are only issued one voting card.
Just spare a couple minutes of your time to watch this excelent video by Computerphile: Why Electronic Voting is a BAD Idea [1]

[1] https://youtube.com/watch?v=w3_0x6oaDmI
10-20k concurrent users is nothing. I maintained ejabberd with 500K concurrent and built customj Erlang systems handling million of concurrent users per node.
> Im saying you shouldnt have your authentication inside your business logic. It should be a separate service.

And I am saying this is a wrong, counterproductive idea. It complicates your authetication for no substantial gain, and will only result in additional vulnerabilities.

> Store your salt someplace secure, not in your frigging rails config.yml or inside env on your webservers or anything else that is publicly addressable.

So you don't even understand how a salt works. Why should we take security advice from you again?
It's shit. It might be fine if you're living in a luxury flat but otherwise a lot of Chinese cities are shit. Maybe not in 30 years when they develop further but I don't understand how anyone could want to live there. I'm excluding the wealthy areas of Shanghai in these, I'm talking more of the tier 2/3 places.
The real solution to the picture thing is to help forge those photos.
Create a booth where ballots aren't counted, and let people vote however they want there, and let them take pictures.
A picture then says nothing, because the coercer cannot verify the picture.
The biggest hole here is that the coercer might follow you into the polling station to see if you use the fake booth.
That makes sense. I guess it's a mixed bag having many possible routes home
Florida shooting: armed officer never went in to confront gunman
There is also this talk from All Systems Go! [0] that goes in details about the architecture of cockpit :) .

[0] https://media.ccc.de/v/ASG2017-99-cockpit_a_linux_sysadmin_s...
I’ve heard from someone who actually met with him at Innovation Works that Kai Fu actually encourages the startups he funds to be derivative. It is much less risky that way, and VCs in china don’t like much risk,
Preferring to transplant proven businesses from elsewhere.
It's called abstracting. The problems fit the Monad interface. Details are in the implementations.
My understanding going in, and experience with the studio monitors I have bought, was that they are built specifically for listening at optimal angles and distance only.

I have seen how sonos and other wireless products are used - to fill a room with sound. That's it - they aren't looking for stereo separation, they want a nice sounding... pa system.
This one seems to have a bit better audio/video quality: https://www.youtube.com/watch?v=Tsa6BBAkTdo
Usually someone complains to me that GC FP languages lack deterministic finalization, I end up explaining how to use higher order functions to achieve it.

The problem with with, using or similar approaches is that they grew with the language and the majority of them don't allow for trailing closures.

More modern languages like Swift or Kotlin make it much nicer to achieve that, making something like using a simple function call.
Perfect Mobile App Ideas for 2018
Show HN: Alfred – A loyal and tireless butler for your Stellar wallets
Penta Freight becomes newest member to join Pharma.Aero
The current manual system works. Why is it terrible? Most results are available within 24-48 hours an electronic system may speed that up but for no appreciative benefit.
Best guess is that it is similar to Germany. In Germany, there are no anonymous prepaid SIM cards anymore. They're now registered to your name.

Thus, in theory, the gov has access to it too.
Technologists are starting to wonder if the Unabomber was right
QuickBASIC Lives on with QB64
I was expecting an article on how deal-seeking mommies achieve fulfillment in finding coupons and winning free stuff from online giveaways :(
Hardly scales.
Technological diffusion has been happening since Ogg the caveman invented the wheel. Heck, there is evidence that even writing was diffused from one location in Eurasia, though the Chinese vehemently deny the possibility.
That's not actually a limitation of emacs lisp. It's just a design decision.

I know exactly the spot in the code where they could do what you suggest, because I've often wondered why they don't.

elisp gets a bad rap. But it's mostly self-inflicted.

Also http://www.patrickkphillips.com/grammar/is-it-a-bad-rap-or-b...

A “rap sheet” is a criminal record, and a “bum rap” meant a false accusation (or even a false conviction). Even when the charge was valid, it should come as no surprise, a guilty party might claim it was a “bum rap” just to save face.

Had no idea what a bad rap actually meant.
Not to mention that, in my experience – and the job data seems to back this up – there are often more career opportunities in rural areas (but not all rural areas). I assume this is due to the fact that the group of people competing for the jobs available are much smaller in numbers than you find in larger urban areas.

While one job in the city might attract 100 applicants, one job in a small community of 100 people total might attract two applicants. This forces rural employers to be less choosy about who they hire, and enables applicants to be less special as they do not need to stand out from the crowd in the same way their big city counterparts need to.

While I am not about to suggest that college is only for building careers, I find a large segment of students treat it as nothing more. When you remove the feeling that you need a college degree to get a job, as is the case for many who look for work in rural areas, that removes the reason why many want to attain a degree.

Generally, education for education's sake is not something our society values. We are, I think quite unfortunately, taught from an early age that jobs are the whole reason for attending school. Few, regardless of whether they live in a major city or in the country, recognize the value beyond that.
In an ideal world, sources are great, but there’s a bunch of practical problems with the idea that everything, anyone says online should have some sort of attribution:

* How do I attach sources for my opinions or logical/moral arguments?

* I could spend an hour collating sources and writing a solid, reference based comment. A troll could destroy me in seconds with zero effort by claiming my sources are CIA funded or inherently biased.

* The internet has sources for anything you want to believe. I could easily google a bunch of authoritative looking sources confirming Flat Earth Theory, and then how will you refute them? Spend another hour discrediting those sources? And then what? I write a quick comment about how you’re obviously biased because of your media bubble.

Remember a troll doesn’t need to win the argument - he just needs to (a) cast enough shade so that an observer feels like maybe it’s subjective and neither viewpoint is correct, and (b) make you feel like it’s not worth the effort and hassle to argue with these morons.

If I (a troll) can write two x 1 minute comments that cause you to waste 2 hours of your time proving nothing, I’ve won.
You end up with something that F# community calls railroad programming, each monad works like a rail switch driving which of the functions actually gets called on it.

So if they are in an error state it is like a nop, until someone actually retrieves the error value.
Something that people don't seem to know how to do (despite several attempts by known rust developers) are zero-copy streaming iterators.

Tracking the lifetimes of references in this way gets really hard really quickly, and rust isn't currently able to work it out
I think you are making the mistake of letting your own knowledge and needs dictate your imagining of how this and other products like it are used.

Do you think sono's are used as TV audio replacements (aside from the sound bar they now have I guess)?

Every single one I have seen in use is to fill one or multiple rooms with audio without having to run a bunch of wires. That's it.

No one is going to put a stereo system in their kitchen, but they will 100% put a single speaker that fills the room with audio.
Yes its depressing to see lot of dead people under the rug of so-called liberal journalism and we are siting on that rug and talking about democracy and how to remove a dictator because we dont like him etc etc. I do like the "literary" ideas (don't know if that right word) which does not work practically. I am more concerned about the livelihood of people (alive), democracy is not for dead people.

I don't deny the benefits of information age, that is huge blessings for everyone. Probably it will take some time to reap the real benefits but I am afraid the cost is getting higher, as too much information/disinformation to filter out facts from fictions. And in most of the cases states and media agencies are part of that fiction and friction created in the society, take it China or US.
> Excellent! It used to be that the tech community was the most vocal against any scheme to increase the use of tech in voting. That consensus seems to have weakened.

How? Here's the main conclusion from the report

> The monitoring group came into the conclusion that online voting should not be introduced in general elections, because the risks involved are greater than the benefits.
Most of our electronics are made in china, many are definitely not designed there. Anything made for Apple definitely isn’t, most American branded electronics aren’t either. If it is designed in china, it will be obvious by the Chinese brand (e.g. Lenovo); the only big foreign company I can think of that lends its brand to Chinese designs is Nokia.
>Human rights are not US-norms

In the main, they are not. But they are general platitudes, whose interpretation is left to the individual countries, and is subject to the power relations between them.

A country, then, might be seen accusing or even bombing another (supposedly) in defense of those rights, when itself doesn't follow them.

>There is nothing special with Chinese people that makes dictatorship good for them while it's bad for us.

If only it was so simple. First, there are different concepts of what's OK and what's not. A crude example: US people don't like kings. English people are OK with their (but they don't have much power there). Thailand people love them.

Then, there's selective judgement. E.g. the US can have the largest prison population (25% of the world for 5% of it's population), and the most death sentences, mass surveillance programs, arbitrary cop killings, or even torture camps off-site, but it's OK because it has "free elections" (where two parties alternate in power for 50+ years and vote for more of the same -- never mind gerrymandering). Whereas another country is portrayed as some nightmare regime for not having elections, whereas life there might be better in those other terms. Sure, there are people that complaint for all of the above, but they still happen (and have happened for decades), and few judge the government/country in whole for that or say that it must be overthrown/invaded whatever (whereas for other countries, they do).

There's also selective enforcement, e.g. in how Saudi Arabia can be a worse regime for its citizens in all of those aspects, but as an ally it's not scolded for that, nor does it face sanctions/retribution that non-favorable (i.e. competing) countries that face.

Then there's people who have no idea of world history, little understanding of diplomacy, and how fragile states can be, and what local antagonisms and powers are held back even by some "bad" at first analysis regime, that play god, intervene (to bring "democracy") and, even assuming they do that in earnest, they end up causing civil war and chaos (see Libya, Iraq, and so on). So while "There is nothing special with Chinese people that makes dictatorship good for them while it's bad for us", there could very well something special with China as a country, and it's constitution of people's, history, antagonisms, etc, that a change would unleash hell.
What made Google wave so great to you? (Even better than slack/Discord/Trello)?
Last time I checked, Sweden was ran pretty well and corruption was low.

There seems to be a vocal contingent of disenfranchised young white males with a sense of entitlement. Most of them will grow out of it, and any sane political environment is flexible enough to accommodate them in the meantime.

Like so many things, the Internet makes it seem interesting, but I'm not sure there will actually be "interesting times" ahead in the classical Chinese sense.
I hope you are joking or else a lot of people like me who don’t have any idea about software are just somehow fooling everyone quite successfully :)
> It's important to keep in mind that college is meant to enrich people as individuals, not explicitly prepare them for jobs.

This is false. This claim ("colleges are for enrichment and learning; not preparation for a job!") is being trotted out a lot more recently. I consider it to be a pivot equivalent to the Bitcoin Bros' (LLC) pivot from "clearly this will replace currency" to "clearly it has been a store of value all along".

Job preparation/income/career enhancement has always been a huge part of the motivation to go to college. Even as many colleges have marketed themselves as "we're not just job prep; come here for the joy of learning", they have also spent huge amounts of resources on making their graduates competitive in the job market. Note that I don't think that expenditure necessarily paid off/was sufficient, just that career preparation is definitely a huge priority for colleges and people who attend them.
Or Aix, HP-UX, SmartOS
Followup to this article: http://lesswrong.com/r/discussion/lw/ij4/i_attempted_the_ai_...
https://www.youtube.com/watch?v=w1dNTUu2MLg&t=892
Yep, me too. How could I be racist, one of my best friends is black? I just mean the other kinds.
I wonder if there would be interest in sim swap parties. This is an idea I had with Oyster cards in London where you get together and swap Oyster cards with other people to confound the profile building.
Supporting X11 clients on Mir servers
Personally, I feel the reason we think of these as completely different problems is that it isn't necessarily natural to see the abstraction between all of them. I don't understand monads fully myself, but it's still kind of missing the point to say this.
Plus, getting a job is a numbers game. While there are, in absolute numbers, more jobs in large population areas, there are many more people wanting to have those jobs.

When you are competing against 100 other people for a particular job, you need something special to set yourself apart in order to gain the attention of the employer. A college degree, especially before it became popular to get one, was seen as a highly distinguishing feature.

When you are in a community that only has 100 people in total, you might be the only person who applies for the job, guaranteeing you the spot no matter what your background is.
How is your theory related to the article?

Cause the article is about intelligence and i was describing something that i think is a key part of intelligence: "generalization".

To achieve general intelligence one has to be good at generalizing.
I have also used Bayesian quantification of uncertainty in pricing forecast models. Decision makers love a measure of uncertainty when one recommends a pricing scenario that can have significant impact on revenue. Also, you get the chance to build multilayer models to combine knowledge from independent samples. PyMC3 is fantastic for building these models within Jupyter and Gelman's Bayesian Data Analysis is a great introduction for different Bayesian model applications.
Pedal the Cycle (centralisation vs. de-centralisation of systems)
Yes, very cool!

A bit off topic, but I would pay good money for a well done port of Pharo Smalltalk to the iPad. Not sure what the issues would be for Apple to permit this. There are good Haskell and Python IDEs for the iPad: Raskell and Pythonista
Show HN: dind-machine – liberate docker-machine setups
BuzzFeed Scalable Request Handling: An Odyssey (Part 2)
My one gripe is the author doesn't exactly explain what the problem with those ad-hoc solutions are. I lied, I also have the gripe that the author doesn't talk about the noncomposition of monads and tease monad transformers.
BuzzFeed Scalable Request Handling: An Odyssey (Part 3)
Cool article about reasons to join communities.
I advocate for this approach and want to see it adopted everywhere. It is essentially a hybrid of the opt-in approach (pinning) and opt-out approach (floating), where you can get essential security updates while not having interface changes forced on you.

Semver is not enough. This week I spent the better part of an entire day hunting down an obscure bug that couldn't be replicated by someone else on the team. It was a new build environment, so it was unclear where the problem existed. The dependencies were pinned—but some of the dependencies' dependencies were floating (e.g., "^1.2.3"), and one of those dependencies introduced a subtle breaking change in a minor version. This could have been resolved much faster if the locked dependency list was checked in (poor practice in an inherited codebase), but the problem remains.

It's not surprising that Russ Cox has been thinking about this. Just like Go's explicit error handling forces the developer to consider every error condition, "imver" forces the interface designer to explicitly consider older versions, instead of letting versioning implicitly handle it. The result is, hopefully, a more thoughtful change management process.
25% of motorcycle accidents don't involve cars, just riders screwing up.
You can. Here's a blog post from somebody who uses it with an Elixir backend.

https://changelog.com/posts/why-we-chose-turbolinks