skysight-inc/HackerNews huggingface dataset:
I like to think of a functor/applicative/monad f a as being "more or less" an a.

For example, take a list of Strings. It's "more or less" a single string, it just hasn't made up its mind yet :) When you say fmap reverse myStrings, you're saying: yeah yeah, I know my string hasn't made up its mind yet, but just reverse it. So you reverse all the possibilities. When you say

(++) <$> myStrings <*> yourStrings

you're saying: yeah yeah, I know my string hasn't made up its mind yet, and neither has your string, but just concatenate them. So you concatenate all the pairwise possibilities. The monad stuff says you can do control flow: (yeah yeah), but if my string is this long, and your string is a palindrome...

Promises: A Promise Int isn't an Int, but eh, it's more or less an Int. Just as you can add 1 to a regular Int, you can fmap (+1) promisedInt. Just as you can replicate 3 'a' to get "aaa", you can

replicate <$> promisedInt <*> promisedChar

to promise some repetitive String. (And presumably promisedInt and promisedChar will resolve themselves in parallel!) The monad stuff: if this promised Int ends up being prime, then...

Parsers: A Parser Int (something that can gobble up a string and produce an Int) isn't an Int, but (in some contexts, if it's helpful) you can think of it as being more or less an Int. Saying fmap (+1) intParser says make a parser that parses whatever intParser does, and then adds 1 to the result. Doing

replicate <$> intParser <*> charParser

makes a parser that tries to parse an Int, and then a Char, and then gives you a repetitive String. Monad stuff: if I parse a prime number, then...

Functions that take some fixed argument type, say Float. A Float -> String isn't a String, obviously, but it's more or less a String :) It's just missing a Float. If I say fmap reverse justNeedAFloatToBeAString, I'm making a new function will take a float and then reverse whatever you get by feeding it to justNeedAFloatToBeAString. If I

(++) <$> almostAString <*> almostAnotherString,

I'm making a new function of type Float -> String that feeds a Float (the same Float) to both subcomputations and then concatenates their results. Monad stuff: if this almost-Int ends up being prime...

Functor says you can treat a single f a as more or less a single regular a. Applicative says you can treat any number of f a values as more or less any number of regular a values. Monad says you can do control flow with f a values as if they were regular a values.
Worked as a health tech for 10 years around seniors. I can confirm the behavior of men and women differ at these times through social means. Men want to know how their child is doing, women on the other hand care more about how her child makes her appear socially.

I'm not sure I think it's constructive to point out differences in gender though. On HN, it automatically triggers me. It's already difficult enough for a women to get a job programming without being harassed or her talent overlooked.

Not to mention, how would you feel if every guy trying to "help" you was actually trying to take a pass at you? Invaded? Creeped out? I dated someone for a few weeks at my last startup but don't really want to see anyone now.

If you want to get non-biased information on technology and women, I highly recommend http://geekfeminism.org/ and http://rationalwiki.org.

If you run an open source project, definitely consider getting a code of conduct. Any serious project has one by now.
Thank you! Cue frantic scramble to unvouch a couple of posts that I should have flagged!
Momentum Is Growing for a Global Climate Deal in Paris
Yep. Will further flagging contribute towards a flagkill of the post.
10 of the Best Christmas Gifts for UX Designers
C++ Fun with(out) keyword explicit
Well it's altruism at work.

Also, don't forget someone else might have already noticed this same insight, so with some game theory one can easily end up sharing an insight, cancelling out their competition.

Also I think this insight has been pretty easily known for a while now.
The name of the town is Senta, although I guess that any nearby town which has bilingual population would do.
Show HN: Tasktopus – lightweight, offline task manager for Mac OS X and Windows
Site's down for me.

http://webcache.googleusercontent.com/search?q=cache:OXupz2Z...
I actually bought a copy of that years ago, or rather paid for a manual which was the way you supported the author in those pre-Millennial days.

I tend to use sylpheed on Linux at home now when I need an off-line client.
I rarely visited SO for answers and I went through the novice phase like everyone else but I didn't pick the path of least resistance every time I'm faced with a technical problem, because I have a held belief that you can't accumulate knowledge and expertise if you don't polish your debugging/troubleshooting skills and make yourself go through the painful process of solving technical problems on your own without the help of someone else and I could say that help very much in honing my skills.
Implementing a sort of generic, sort of type-safe array in C
Erlang is probably not the best example. Programmers using Erlang are almost certainly of a different caliber than those using Ruby and Python. I don't think it's very productive to study dynamic versus static typing without also controlling for the experience and discipline of the programmer. This is an element that many of the academics want to ignore because it's difficult to quantify, but I wouldn't trust any argument that exluded the human element because it's ultimately humans who use these tools. I still haven't seen anyone address Elben Shira's original point about the difficulty involved in understanding the return values of a function: what's really in that immutable request map? How do I use it?

Given experienced and disciplined programmers, the type system probably isn't as important. But given the quality of programmers who are using these languages in the real world, a good type system does seem to help.
Emotions (or sentiment) forms one of the three pillars of types of analysis for investments. The other two are fundamental (looking at a company's books and recent performance) and technical (looking at graphs and models).

Although this focuses more on the individual, market movements can occur due to shifts in sentiment and is one of the biggest drivers for change.
Well, er, Haskell does have destructive update. You are misunderstanding Ben's point is somewhat. "We present a type based mutability, effect and data sharing analysis for reasoning about such programs [containing mutable data]".

https://hackage.haskell.org/package/base-4.8.1.0/docs/Data-I...

https://hackage.haskell.org/package/base-4.7.0.2/docs/Data-S...
Formula E to run the first driverless car races
Xinul Is Not (your) Uncle's Linux
That's why I think nuclear and solar are a good combination: nuclear baseload and solar for extra daytime demand. It won't match consumption perfectly, but it'll do better than either technology alone.
>Are there people who get paid to do things that simple that they can be copied and pasted from Stack Overflow?

Yes, because the reality is that someone has to do it, and a half-assed effort from a developer browsing SO is still better than getting a random Joe off of the street for $10/hr to try it.

Not all companies have interesting problems to solve 100% of the time. It's not impossible that your company is trying to solve a problem that the majority of SO questions will answer, because your problem is just that boring.

If that blows your mind, you should know there are people that get paid well to do stuff that is a lot more simple than even cobbling scripts together from the internet.
I think there are two ways to view what the job most programmers do is. IMO it isn't to write code, it's to solve business problems. Code just happens to be the tool that you use to do that, most of the time.

Anyone who tries to solve a problem by staring hard at a blank piece of paper instead of just googling the answer is not making effective use of their time.
Way I read it the overuse of SO (along with C&P programming) thing was just one example/potential symptom -- he wasn't making a broad generalisation that all SO usage is bad.
I'd agree with most of the article except the "The day-to-day always gets boring" segment. If you don't like yourself, traveling merely results in not liking yourself somewhere else. If you are boring, going somewhere exciting merely results in an exciting place now including qty one boring person. If you don't like your job, being forced to participate in a hackathon will result in increasing the hatred of the job not loving it. The diversity part especially was racist, all brits are the same, all greeks are the same, there is more to diversity. Note how that section also neatly excludes all potential employees with social lives or family lives outside of coworkers due to the relatively intense level of required coworker socialization, yet categorized that very exclusion as diversity. This is especially striking on a holiday weekend, I had a lot of fun this weekend without a single coworker being involved, not even a phone call, so far anyway. It would suck from a stress standpoint never being able to get away from work, or having to give up holiday family time just to put food on the table.

An unmentioned advantage is there is some (ugh) synergy in the two separately described issues of elimination of giant monoliths and rotation of personnel. However, eliminating "can grok the entire system architecture" as a precondition of writing code doesn't mean nobody needs to grok the entire system architecture.

One way I've handled "Too Long; Didn’t Learn" professionally is to just fix stuff on a higher level. In the article there is an example of a boring inside tool acting as a "fake-Spark". Well why not just re-implement in Spark? The reason why not might tie into the other paragraph that paraphrases to "micromanagement is not fun", but just job hop until you find a professionally managed company then its all good.
The Android Security Jungle: Pitfalls, Threats, and Survival Tips
Unlike SMS, Whatsapp need Internet
And yet Android UI is mediocre and isn't a qualitative improvement on the previous status quo.

I think the point of GP is that listening to the 'someone who "gets it"' can speed up the development process. Indecision has costs, and you can run studies in parallel anyway. Sometimes costs of having to backtrack every now and then are outweighted by the benefits of moving fast.

RE arguments against testing in code - testing is cool and all, but at some point you have to ask yourself whether you want to ship a product or a test suite.

BTW. the whole anecdote reminds me of a story from Microsoft about problems coming from a group of PhDs:

http://www.joelonsoftware.com/articles/TwoStories.html
With great reluctance, I am over the last year starting to agree with your position on Haskell.

For many years I have had a lot of fun with Haskell, doing some NLP, and web stuff with Yesod and Scotty.

However, I am so much more production in a concise dynamic language like Ruby that I am re-evaluating my fondness for Haskell. Also, to a small degree, good IDEs like RubyMine catch some simple errors for you.

I, like Elben Shira, hope for radical new technologies that make me feel like I am developing in Ruby with the safety and speed of Haskell. I am looking forward to the future.
Wondershare Dr Fone 5.5 Crack and Serial Key Free Download
Could have done with cutting 90% of the tinfoilhat and feature things like the BBC's Micro Men
Amen https://en.wikipedia.org/wiki/Dominant_minority
This realization came to me when I was taking a coursera class and had to keep surfing while listening to the lectures. That's when I started using the pomodoro technique and it's been helping me since!
Indeed. Some would call it lazy - I prefer "leveraging the combined knowledge and experience of all humanity".
You are missing the forest for the trees. Reaching for Google and SO as your first impulse when confronted with a problem will deteriorate your ability to find your own solutions in the long run. Use it or lose it, as they say. And besides, any non-trivial problem can't be solved by copying code from SO alone.
> The computer powered by the chip that came out of the design was called the Acorn Risc Machine – or ARM.

NO NO NO NO NO.

The computer was the Acorn Archimedes.

The first one I had contained an ARM26.

Gah.
The Web is about to change forever – PageCloud
Gimp 2.8.16 Released Install in Ubuntu/Linux Mint or Derivatives Distros
I was in the same boat until I moved go Google apps for domains, and imported my Eudora content.

My mother is in the same boat right now, and looking for suggestions. UTF-8 and prevalence of HTML content are making it nearly impossible to keep using in this day and age.

Best features (not killer but very nice) are/were the storage format, and saving attachments externally, and not "in line" with the message.
It depends on the problems you're solving - SO does not help with problems of architecture. For code structuring, staring hard at a sheet of paper or nothingness can absolutely be more effective.
> dynamic languages offer cleaner syntax

Solely for syntax, my assertion is that this is just because dynamic languages evolve faster. Because they are easier to build.

E.g. one person can buy the dragon book(s), use parser/lexer libraries, get an AST, and then start an interpreter than just stores objects as maps, and evals things dynamically.

But very few people are going to write a new/novel type system on their weekends.

So that's why, IMO, all the sexy/modern syntax shows up in dynamic languages first, and then takes ~a generation or two to reach static languages, where you need a dedicated team to put the effort into the type system + compiler + expected tool set (IDEs/etc.).

(E.g. see Scala, Kotlin, Rust, etc., which have all, IMO, achieved the "syntax as nice as Ruby" level, but took large teams of people to do it).
I switched jobs a year ago: from a low paid startup job to a company that does project-to-project grunt work for local banks.

I (@Hisako1337) learned a lot during the past years, absorbed the whole mindset of Lean Startup, Customer Development and truly agile software development. I taught myself the complete fullstack, from User interviews to SPA frontend dev with advanced SEO, backend development with imperative, OO and functional mindsets (Love Elixir currently!), using different communication protocols (have a degree in distributed systems), and optimize solutions by using appropriate database solutions, from relational to document stores to graph databases. I even learned how to build desktop apps with web tech before it was as cool as today and currently I absorb every piece of machine learning material I can find/buy. Every bit of learning happens in my spare time, because: ...

Now guess what I do for a living for my current "FinTech" employer? Bugfixing a decade-old Spaghetti-architecture CRUD PHP app, doing pretty useless projectwork for customers (middle bank management).

I'm not allowed to improve things, because stuff might break and of course there are zero tests written. Boredom? I hate every Single hour at work. Most colleauges behave like braindead zombies. But the salary is quite good and I can't move to better job locations.

Others here might not believe that situations like described in this articles occur- but really- things can be fairly worse. I'd love having problems that are worth a question at SO, not the trivial gruntwork I'm supposed to do all day, with zero impact for anyone for idiots that have no clue but enough money.

Sorry for the rant- this article triggered a wave of emotions...
Most companies don't solve non-trivial problems. For instance, 90% of web development is regurgitating the same CRUD for different customers. Most of the work consists of wiring standard components together in a standard way, and slapping some CSS on top of it. If you're trying to think too much and reinvent too much, you'll waste a lot of time.

Source: did too much webdev in my life already, and wasted way too much time doing things by myself.
Of course, but anyone who tries to solve a problem by copying the first piece of code they find on SO without even trying to understand the problem is likely to be similarly ineffective in the long term.
Off topic: I don't know a single feature that would be as annoying as fucking toolbar/header/whatever showing up when you scroll upwards. Why everybody does this?
Can't argue with that. Although I do think architecture is where patterns start to be useful - again, relying on pre-existing solutions rather than creating your own.
Something no other commenters mentioned (so far) is every programming book starts out with "hello world" and this spread online not just to generic language teaching but into APIs and libraries.

Bootstrapping up from hello world is nearly guaranteed to work, write the entire thing first then try it is a recipe for pain.
I think, instead of dynamic languages, the current place of dynamic languages in the future will be dominated by hybrid languages.

Having no type annotations, even in highly dynamic languages, leads to lower maintainability. However, some type systems are too complicated, and over-engineered, the best example of which is Haskell (compare it to Agda or Idris, which can do more, but have much much simpler type system).
Technical workers solve technical problems not business problems. Upper management folks instead solve business problems. Our job as techies is to model/define the business problem in technical terms and then work on it. That's why they pay us and if some are not competent or proficient enough with their tech tools, that will reflect poorly on the quality of their finished product and copying and pasting won't always save the day for them. Also and this is very important, if they would like to grow professionally, they ought to work on their own and develop their skills organically or fear that they'll be stuck forever in the "apprentice" level for their whole career.
How am I misunderstanding? I am quoting exact words, after all. Re IORef and STRef, let's quote some more:

"Representing effects in value types is a double edged sword (p. 42). Haskell has fractured into monadic and non-monadic sub-languages (p. 44). Monad transformers produce a layered structure (p. 45)." These are section titles, be sure to read the entire sections which explain in details what the title means.
Нагиев признался – я тебя хочу
>I hope that's somebody's living quarters in the photo, and not their office! I've worked at a couple of offices that felt tightly packed, but they were nothing by comparison to that ;)

That looks like a typical university hackathon to me. Certainly not excusable if it is an office. Thankfully my only workspace (at an internship) had nicely sized desks for everyone, and the company was looking to expand by renting more office space rather than decreasing desk space.
Webstorm capabilities were still very weak compared to Phpstorm last time I tried.

My gf works in js with webstorm and was amazed by what I whas doing in php.

That said php is much more static than js.
>The age of dynamic languages will be over when you see a modern static language that supports self-modifying runtime environments as well as Common Lisp or Smalltalk presently do.

Example of such a language is Java. It's runtime is highly dynamic. Class loaders allow you to create new classes, pre-process bytecode, and many other stuff.
A Leader is a Teacher: Scaling yourself by making the time to teach
The business exists to make a profit, and it needs to perform financially as well as possible this quarter.

That does not always align with what is most interesting for a developer to pursue.

So in the short term and medium term, these goals are usually at odds. In the long term, you can find harmony between them sometimes if you try really hard.

It's impossible by definition for them to be in harmony all the time. Too bad, but that's reality. Each individual developer has to occasionally re-align them by making a job change.
I wouldn't call Imagination Technologies a successful company their IP is being shipped in billion of SOC's but they yearly revenue is below 200M and they operate at break even or a loss.
IT seems to be a case study of a company which it's IP is a corner stone in many consumer devices but some how never managed to capitalize on it.
ARM is a very good example of how to spin off your IP and make it successful even when your actual business (Acorn) is going bust.
7 Best Practices on How to Build a Product Roadmap
Jeremy Corbyn on Syria: Labour membership voices must be heard
> Use it or lose it

No pain, no gain.
If a business problem can be solved by copy-pasta, then it's a common business problem and copy-pasta hasn't really solved it.
I'd rate Elixir right now only as "up-and-coming". It is not yet an acceptable second-tier choice. Even in an environment where Ruby or Python (or the several other similar second-tier languages) are accepted without a second thought (as opposed to an environment where only first-tiers like Java or C(#/++/) are acceptable), Elixir will still result in some questions being asked that you better have a good answer for.

This is not a criticism of the language, simply descriptive of its current position. Go, which is substantially larger at the moment from what I can see, is just barely cracking that boundary that I described, and probably still has a good year or two before it's quite there.

Elixir is currently on a good trajectory, but I would definitely be concerned that trying to be a Ruby on top of the Erlang VM is going to make it a non-trivial challenge to get to the next level of usage, precisely because the Ruby space is covered, covered, and covered again with mature, existing languages. This is, again, not a promise from me it can't succeed, indeed I wish it all the best, just a description of its challenges. It is growing rapidly in its little niche but it may have a serious challenge getting to the next level.

And, back on topic, when this came up on Reddit, I'd observe that Elixir is the only dynamically-typed "up-and-coming" language I can think of. Nim is statically-typed. Rust is static. Go is probably on the way out of "up-and-coming" but it's static.

I also observe that all the dynamic languages are all adding static type support, even when the static type support is inevitably compromised by the dynamic portion of the language. In the meantime, I don't see any static language trying to move in a dynamic direction... in fact, many of the static languages are moving to be even more static! The net flow of feature work right now is strongly in the static direction.
We would all be better off if the world were more logically consistent, and we won't ever get there if our first response is to simply shrug. By denying the government any technical justifications for the collection effort, they are left with only naked lies.

As far as the ambiguous language of laws, wouldn't it be nice if they were written in a constrained syntax that allowed for formal verification [0]... ah but here I am being a programmer again.

[0] https://en.wikipedia.org/wiki/Attempto_Controlled_English