Why have today's designers stopped dreaming? - chestnut-tree http://www.creativebloq.com/computer-arts/stopped-dreaming-41411268 <comment><USER2> Design was never about creativity (surprising the user, being unique, being different), it was about letting the user get things done. Now that this has been achieved what more do you want? It's like fashion industry people wondering why everyone's cloths are so boring. Their idea of fashion is art and expression, the normal person's idea of fashion is usage.

The more "different" and "creative" and "unique" your site's design is, the more trouble and friction a user encounters trying to learn how it functions. So every site on the net looking similar might piss off designers but for users it's a joy.

<comment><USER3> If design was just about letting the user get things done, can we conclude that iPad is terribly designed? I can do almost nothing productive on it.

<comment><USER4> Getting things done and productivity are not the same.

If the thing I want to get done is watching a movie while I'm on a train then the iPad works well.

If I want to edit some code then a laptop is better.

<comment><USER3> Sorry for confusing watching movies with _getting things done_

</comment></comment></comment></comment><comment><USER5> > _Perhaps the essential question we should be asking ourselves each time we > approach a new site design project is: why would we not choose to be > different?_

Um, because we've figured out what works for landing pages, in an overall sense. Being different probably means forgoing conversions, which can translate into failure.

This isn't to say there isn't still room for improvement, of course. But improvement is now more incremental, with lots of A/B testing and whatnot. And for good reason.

If designers still want to be wild and creative, there are still plenty of places to do it, like personal blogs or personal projects or working on specific projects that value cutting-edge design because it fits their unique market.

But for most websites struggling to turn a profit or just gain traction period, "dreaming" is not a luxury they have. And it's disingenuous of the author to suggest that this is somehow a failure, no matter how faux- inspirational it may sound.

<comment><USER6> Pretty bold claim that the tired design described (in such a funny way) in the article is some kind of über design and all subsequent designs will be incremental tweaks on it...

Isn't it a little like saying everything should be written in Java because it's safe and who can afford to take risks?

Nothing ventured, nothing gained I'd say. Taking a bit of risk on marketing can help differentiate. Isn't it also a risk to go with what's common, blending in with the pack?

<comment><USER7> I think the claim is something more like:

• UX is good when it works in tandem with human cognition and psychology.

• HCI science--the study of human cognition and psychology, as it relates to doing UX--can point us toward designs that are _objectively better_ in their human usability.

• A design radical-enough to not look or work like current UX--a novel "UX paradigm"\--would, at this point, necessarily be one that ignores what we currently know about HCI. It would therefore, probably, be horrible. (Individual designs from such a novel paradigm could be _surprisingly okay_ , if they manage to find some other _local_ maximum in UX-space--but since the paradigm goes against the grain of human intuition, it wouldn't generate any _globally_ optimal designs.)

</comment></comment></comment><comment><USER8> There is just too much of "me too" in design nowadays.

I was really dismayed when MS came up with Metro/Modern and suddenly most vocal designers flipped switch and started to produce designs inspired by the new MS's design language. No creativity there at all, just plain boring simplistic uniformly colored boxes.

I guess even Apple caught the metroitis with iOS 7. No idea what went on over there, from UI that was appreciated as the most beautiful, polished and envied it just borrowed approach from the most controversial that many find disgusting (hey, was the default color palette chosen by color blind people?).

We had the same problem when hiring designers for our creative product - <AUTHOR> designers just flat out copied all sorts of ugly trendy flat designs. I really don't want my app to look like it was designed by the 5-year old Miró that just discovered boxes in MS Paint.

What is happening in design? Is it the same thing that happened with classical music when modernists completely broke historic standards and started to produce "intellectual" music that maybe 5% of population can appreciate, the rest just suffers through?

I can automate creation of ugly boxes/flat stuff myself, I don't need designers to do that. From a designer I would expect something original, expression of craftmanship that will discern my work from the others. Not uniformity.

<comment><USER9> Microsoft didn't invent flat design or Swiss typography. These are just old ideas whose time came around...again. Design is not about recreating the wheel or even invention, but tasteful application of ideas (most non original) to provide the best experience to the user. Being inventive doesn't guarantee (or even help) with that.

</comment></comment><comment><USER10> The people copying the look and feel of the "startup page" are not designers, they're generally developers who want a quick site that looks familiar and gets the job done. More people than ever are creating for the web, but they're not all designers. The technology has lowered the requirements so much that almost anyone can create a web site, and that's not a bad thing—more people should be able to communicate through this medium, and we should embrace that.

But if you look at sites, personal or otherwise, of actual designers, you will find creativity. Creativity—the act of creative design—is what defines a person as a designer in the first place.

You could say the same of photographers these days. Anyone seems to be a photographer; but there are still a scant few who are artists.

"Not everyone can become a great artist; but a great artist _can_ come from anywhere." Give them a chance. Copying is but the first step.

</comment><comment><USER11> I've been thinking about this a lot lately and I'm glad Elliot is the one bringing it up. Back in 2007 when I first got started on the web, I remember being really excited about seeing new work released from my favorite designers.

Elliot was hands down one of my favorites for his use of type and textures. I even recall sitting up late one night (4 or 5 am since he lives in England) to see his personal site get a revamp.

Nowadays, I pay little attention, seemingly because of things like Dribbble. This excessive desire to share removes any anticipation from the work and in essence, makes it less exciting to see. I don't think I'm the only one that feels this way.

Speaking for my own work, it's just not as fun to spend time crafting a really cool design when you know that it will be seen and tossed aside in a few days. I'd argue this is mostly subconscious, but I do find it belittling my work before it even finds a solid focus.

One thought on this struck me not too long ago while reading The Art of Worldly Wisdom by Balthasar Gracián:

"Never show half-finished things to others. Let them be enjoyed in their perfection. All beginnings are formless, and what lingers is the image of that deformity. The memory of having seen something imperfect spoils our enjoyment when it is finished. To take in a large object at a single glance keeps us from appreciating the parts, but it satisfies our taste. Before it is, everything it is not, and when it begins to be, it is still very close to nonbeing. It is revolting to watch even the most succulent dish being cooked. Great teachers are careful not to let their works be seen in embryo. Learn from nature, and don't show them until they look good."

Sharing is great, but I think it's become more of an addiction to feed than a process for improving the craft at large.

<comment><USER12> It's funny how that quote encourages perfectionism and, if applied to development, would discourage anyone from creating a minimally viable product (MVP).

<comment><USER11> It won't be popular, but I'd argue that the MVP school of thought is responsible for a lot of junk being introduced into the world (when it didn't need to be). Inevitably, when given a route that _appears_ easy or is misinterpreted as such, people will cut corners and act as thought they've "done the work."

I'd say all of this plays into a bigger whole, but that the majority lies in the favor of junk/homogeneity is no mistake.

</comment></comment></comment><comment><USER13> Design is fashion. It's trends. And personally, I really like the flat trend (though that's the modernist in me, I also enjoy Le Corbusier and Mies Van Der Rohe while many look at their designs as stale).

I agree that cookie cutter sites are becoming more common, but that's because most designers are following the trend. Flat is fresh after years of skeuomorphic design literally everywhere. It's simple, it's clean, and yes, there isn't much you can do within those parameters. That doesn't make it bad design.

Look at any arbitrary modernist building. 90% of the time, it's terrible: boring, simple shapes; uninspired color choices; too much concrete. At the time it was a breath of fresh air. Moreover, when it's done _right_ , it's beautiful forever:

[http://www.fallingwater.org/img/home_assets/new_first.jpg](http://www.fallingwater.org/img/home_assets/new_first.jpg)

[http://www.theconservationcenter.com/Farnsworth%20House.jpg](http://www.theconservationcenter.com/Farnsworth%20House.jpg)

[http://3.bp.blogspot.com/\--ru1VYyd8Dw/TrdHRcLZrrI/AAAAAAAAAa...](http://3.bp.blogspot.com/--ru1VYyd8Dw/TrdHRcLZrrI/AAAAAAAAAaM/WAgu4AGg- Us/s1600/Villa+Savoye.jpg)

</comment><comment><USER14> I think we all know that this type of article indicting designers for lack of creativity isn't something new. But I certainly can related to the author's sentiment and here's my take on it; the number of good web designers with proper design training only accounts for a small percentage of the people producing web sites.

Despite web design being a visual medium, not everybody working in the industry is a visual web designer. There are print designers struggling to make transition, there are developers doing designs out of necessity, and there are people who are learning everything from scratch. And the nature of the Web makes it's easy to lift and 'borrow' things from other people, so you will see a lot of convincingly good designs that are not necessarily produced by designers with design training.

Most web work can be copied with basic use of Photoshop, access to stock photos and portfolio sites, and some attention to details. But there is only so much you can do when you don't know how to draw, use and mix colors, lay- out types. This will contribute to sites looking the same. A trained designer has much bigger set of tools and skill-set at his or her disposal. Simply knowing how to draw well, opens up all sorts of creative possibility, but it's a skill that takes a long time to develop.

So in a nutshell, I don't think it's that designers have completely given up dreaming. It's just become harder to find great designer's work because the denominator of non-designers has grown so large.

There are other contributing factors, such as increasing number of stakeholders now driving designs in the name of semantic design, usability, accessibility, codeability and maintainability, but I'm sure others will touch on those issues.

</comment><comment><USER15> I'd kind of prefer it if they stopped dreaming and started working seriously. I've converted a couple Android apps to Google's new design style with unlabeled action bar icons in the top and other flat design concepts and they all just fell flat with users. Users could find a big, glossy, 3D button at the bottom of the app great. Make it a single color icon without a label and hardly any of them find it, or even try it. Designers really need to stop dreaming and start being a little more practical. Sure Google's and flat design look nice. But they don't work well. It's just silly designer dreaming without real usage data supporting it.

<comment><USER16> The same thing happened with the removal of the menu button on Android. They moved one of the most used buttons from the most convenient spot, right beside my thumb, to the top of the screen. On top of that screens these days are almost all over 4.5 inches, much larger than the average thumb. Same thing goes for applications with drawers. The drawer icon is a far as possible from my thumb making it the least practical design imaginable. I find apps with the split action bar to often be the most practical and convenient even though they don't look as good.

<comment><USER17> has to do with screen size and orientation...

because android has more screen size variations the most common orientation is landscape and thus reason for moving the menu button location

</comment></comment></comment><comment><USER18> Can you provide some examples of creative, non-cookie-cutter websites that you think work well? I agree with your general sentiment, but examples of alternative designs would be a little more actionable and inspirational imo.

</comment><comment><USER19> It's a good question, but an impoverished blog post. There are no Big Ideas since the Desktop Metaphor was discredited. That's not to say design has fallen asleep. You can of course get highly trained highly competent and highly experienced design inputs to a product. But, it's more about filtering what works from what doesn't. Who is reaching for a new paradigm?

Maybe Facebook's buy of Occulus Rift will ignite an arms race in 3D design that leads to something really new, if the daunting literalism of 3D can be overcome.

</comment><comment><USER20> _Perhaps the essential question we should be asking ourselves each time we approach a new site design project is: why would we not choose to be different?_

Isn't this an obvious, if unfortunate, commercial reality? The fact is that cheap, mass-produced products have a large market that is willing to pay for them.

If you can make such products with less time and money than you would need to create original, thoughtful, customised work for every job, then you have a viable business model. Moreover, your business model can be implemented by people who don't have the skill and creativity required to do bespoke work.

Fortunately, there will always be a market for premium sites, with original designs that are carefully planned with the site's goals in mind, and with a look and feel that are matched to the client's brand. There will always be clients who need a completely custom web app to fit their particular needs. And these kinds of client will always be willing to pay a premium for good work.

For better or worse, there are simply a lot more clients who don't have that kind of budget, and for whom a site that is built from a decent template with a basic CMS in half a day does the job well enough. And there are even more who don't want a template that is exactly like everyone else, but can settle for the work of a newbie web developer who doesn't know much but can manage to fire up Yeoman and throw together some HTML5 Boilerplate and Bootstrap and a couple of jQuery plug-ins.

</comment><comment><USER21> Creating is hard, copying is easier

And once created, and people get accustomed to that language, it makes it easier for them to use (everybody knows what an x in the corner of a window does)

</comment><comment><USER22> Some people are extraordinary and blaze trails. The rest of us do our best with existing tools that are known to work. What's the problem? It's the same as it ever was. If you think you can come up with a better design, go nuts. If no one else adopts it, it's probably not quite as good as you think it is.

</comment><comment><USER23> A while back someone said to me "you don't work for a company, you work for the Valley". The meaning that the valley has become an entity unto itself. If that proposition is true, then the valley has become something equivalent to a large organization, like a big company, but much more of a loose confederation. But like other large organizations, it can be come lethargic and stuck in their ways. Only people who are connected the right way get opportunities and there is a set bureaucracy and so on. There has been an argument going on whether a large organization can be innovative. Another interesting question is whether a loosely confederated organization like the valley can loose it's innovativeness for the same types of reasons large organizations have trouble being innovative?

</comment><comment><USER24> A lot of similarity of websites has to do with usability. If I go to a website that is similar to others I frequent, it is easier to figure out what to do. This is proven out in user testing. Those sites that are familiar will do better in converting and win those A/B tests.

How many times have you been to a site with a different design and have to spend a few minutes trying to figure out the navigation? If you are trying to get your users to do something, familiarity is what wins.

Maybe our common definition of creativity is wrong. Good design isn't always "new and cool." Often the best design simply achieves a goal within given parameters.

</comment><comment><USER25> This is very similar to the argument made here: [http://montrealrampage.com/king-ludd-10-the-tedious- tyranny-...](http://montrealrampage.com/king-ludd-10-the-tedious-tyranny-of- flatland/)

Unsurprisingly, I agree with the conclusion, that services which happen to be delivered over networks actually have little place doing much branding at all, and users should be in a position to take more control of the look and feel. CSS etc. simply isn't enough, and simultaneously isn't accessible enough to normal people.

As it stands the incentives for design innovation are getting wiped out by a need to not offend anyone.

</comment><comment><USER26> It's definitely a bit surreal that even a crypto library vulnerability not only has its own web site but that the site is almost indistinguishable, like every other site launched today, from an Apple product announcement page.

<comment><USER27> Why does it need to be distinguishable? It's a purely informational site whose intent is to educate its users.

If anything this is exactly the sort of site that should follow an expected format, so that users spend more time digesting the information presented instead of learning where everything is.

It's like a restaurant menu - there is some variation between every one, but ultimately they conform to an expected format, _and that 's a good thing_.

There's being different in order to improve upon something, and there's being different for the sake of being different.

</comment></comment><comment><USER28> Oddly, on mobile this site robs 33% of my screen with persistent header and footer elements.

See: this is a web page.

[http://justinjackson.ca/words.html](http://justinjackson.ca/words.html)

</comment><comment><USER3> No time for dreaming, busy patching for IE.

</comment><comment><USER29> Cars, clothes, homes, and furniture all found a standardization. We barely had computer UIs 20 years, so UI design was of an indeterminate form. Now we know the basics form and rules, thus design is now in the details.

</comment><comment><USER9> I'm a researcher married to a designer. My wife has many more creativity constraints in her job then I do in mine, but she builds usable products for today while I get to think 5-10 years out.

</comment><comment><USER30> very true, specially in the field of web-design. If you browse the latest 10 pages of themeforest.net templates you will find all similar designs (infact exactly what you mentioned in your article in a detail manner :) )

Since the comeback of flat design everybody is becoming a designer because all they need to do is put big pictures and 1 or 2 colors and bordered boxes and vola! you are a designer

<comment><USER31> Looking for cutting edge design on themeforest is like looking for culinary innovation at a 7-11.

</comment></comment><comment><USER32> I couldn't agree more. For a "creative" profession, there is a startling lack of creativity among designers. I'll admit that I am not a designer by any means, so maybe I just don't fully understand the challenges and issues that designers have to deal with. However, I do get annoyed when I show up on a site and it looks and behaves just like every other site, with the same fonts, same colors, and text that doesn't tell you anything about the product. It really does get old.

<comment><USER33> The difference between art and design is that design serves a concrete purpose. Obviously there is creativity involved in designed, but the creativity of a good designer is about solving problems. This manifests in different ways, but for interactive or industrial design _usability_ is the most important concern, and therefore, all else being equal, uniformity across sites is a good thing. Forms of visual design whose primary concerns are either/or attention-grabbing (eg. billboards, posters) or communication (eg. magazine, flyers) naturally enjoy a bit more creative leeway.

With established norms stabilizing on the web, UI creativity there can and should decrease. However that said, there is always the possibility for optimizing towards narrower and more specific problems, but this must be done sparingly since new interactive paradigms introduct a cognitive load on the user which may not be acceptable for the intended audience.

<comment><USER32> Well in terms of layout and functionality, sure, I understand the need for consistency. My comment was referring to the artistic element of color schemes and fonts. That is the part that gets annoying when everybody does it the same. You can have consistency of function while being creative with colors and things like that. I love it when I show up on a site with bold colors and unique design ideas. It gives me the impression that the company is willing to try new things.

<comment><USER33> Maybe you're just annoyed everyone is using Twitter Bootstrap?

<comment><USER20> It's not just Bootstrap, though, is it? It's also flat design, similar colour palettes, similar fonts, using one big hero image or some sort of carousel, and numerous other details.

And the real kicker is that _most of these aren 't done well_.

Aside from having a very limited expressive range, flat design has all kinds of usability problems that plenty of people have called out from the start. The fact that both Microsoft and Apple have chosen to adopt flat design does not change that unfortunate reality.

I cringe a little every time I see a web site using Proxima Nova, a font which renders _horribly_ at many sizes and in many browsers, whatever all the renting-you-fonts-for-money services will tell you about how optimised their fonts are. I wince even more when I have to use a site with trendy thin fonts that are so hard to read under many conditions that I have to start hacking the CSS around to make it more comfortable. At least there is a small silver lining here: Helvetica is less common in font stacks now, so everyone on Windows who has printer fonts installed can breathe a sigh of relief.

Carousels have problems that are well known to anyone who studies usability, yet people persist in using them, presumably because they care more about looking cool in a demo than having a site that is actually effective. Or they just don't know any better, because they don't know anything about usability, and anyway they feel compelled to use at least 98% of what's in their template on every project. After all, the only acceptable alternative is to use a hero image that automatically scales to full page width, thus reducing modern, good quality, high resolution monitors to displaying heavily pixellated versions of clip art that is probably irrelevant anyway, and obviously no designer would do something silly like that.

It's not the consolidation and uniformity that bothers me. It's consistently doing things that just _aren 't very good_ that I find frustrating.

</comment></comment></comment></comment></comment><comment><USER34> Nope, but they only keep their dream in the head. Client want other useful design (not dream) right now.

</comment><comment><USER35> Because dreaming gives us infinite scrolling bullshit "ux"

</comment><comment><USER36> no suitable resources for implementation.</comment>


ZenPayroll Is Not Hiring Hackers - <AUTHOR> https://zenpayroll.com/blog/zenpayroll-is-not-hiring-hackers/ <comment><USER2> I'm embarrassed to see such nonsense coming from a company we funded. A hacker is not intrinsically someone who throws things together to see if they'll work. The phrase "kernel hacker," for example, doesn't mean someone who writes OSes in that way. It means someone who is deeply familiar with OS internals.

<comment><USER3> This is clearly a case of semantic disputes.

Hacker in the MIT definition of the word emphasizes cleverness and playfulness, and I think this is how most people (including the HN crowd here) usually mean to use the word. I should note that the term 'kernel hacker' has more or less developed on its own, separately, as a phrasal noun. One could very well argue that the definition of 'hacking' extends to sloppy implementation methods, so calling the logic in the submitted post 'nonsense' may be going a little overboard here.

[http://en.wikipedia.org/wiki/Hacker_(programmer_subculture)](http://en.wikipedia.org/wiki/Hacker_\(programmer_subculture\))

<comment><USER2> Has "Lisp hacker" also developed separately as a phrasal noun? "Unix hacker?" "C Hacker?"

The term "hack" extends to sloppy implementation. I wrote about that here:

[http://paulgraham.com/gba.html](http://paulgraham.com/gba.html)

but the word "hacker" doesn't simply mean someone who produces hacks in that sense.

</comment></comment></comment><comment><USER4> I'm the CEO of ZenPayroll and I want to apologize for any misunderstanding with this post. Our intent was to highlight the business critical nature of payroll and the fact that we spend a lot of time making sure things are done correctly.

There are many definitions of the term "hacker" and I strongly believe there is no single right way to build software. Every team has to find the approach that's right for them and I want to sincerely apologize to anyone that was offended by the terminology we used.

We're proud to be a part of the YC and HN community, and many of my teammates are avid participants in HN.

If anyone wants to chat more with me directly, my personal email address is email@example.com.

<comment><USER5> I think you messed up with this post. You've apparently alienated to some extent one of the company's best and most prominent friends. And I believe most of the post's readers will feel you've mis-defined what it means to be a "hacker".

</comment></comment><comment> sjm-lbm IMHO, the thing that makes the post compelling isn't what they claim they aren't hiring (hackers, of course), but the detail they go into about who they _want_ to hire.

It's annoying to me when job descriptions like "hacker" or "rockstar" get thrown around, mostly because they tell you nothing about what a company is actually looking for. If you're looking for a hacker, are you looking for someone who can conceptualize problems quickly? A person who feels OK editing a production database directly? Heck, most nontechnical people will assume that "hacker" is probably some sort of security vulnerability tester. The problem is that I'm only some of those things - and, frankly, nobody is all of them.

What's impressive to me about this post is how much time they spend stating the things that they do value, and why they value them. That's much more meaningful than the headline about who they aren't.

</comment><comment><USER6> This is such a welcome change. There's nothing wrong with "hacking" and being a "hacker", but it truly does connote the idea of fiddling with something until it works and then saying "tadaa!"

As a developer (and sometimes developer lead), I strongly prefer a process wherein "hacking" is only the first step. As the old adage goes:

1\. Make it work

2\. Make it right

3\. Make it fast

"Hacking" is only step 1. We've all seen the results of a codebase where there is no step 2 or 3.

<comment><USER7> I don't know if I agree with that adage. I think "Make it right" should come first. It's very easy to assemble perfectly constructed, but not fully functional, pieces of software into a coherent piece. It's comparatively very difficult to "fix" something that already works, both psychologically and practically.

<comment><USER6> I don't think the whole project should work like that, I think the _developers_ should work like that.

Example: I want to make a node.js push server. I've never made a push server, let alone a node.js one. The first thing I'm going to do is make an "echo server" just to verify I understand what I'm doing. If I'm doing this for Unity or Flash, I'll quickly learn I need a separate "policy server" to even make this work, so I'll hack it together until it works.

I'll then iterate on this until I have a client sitting there and at random times it receives "push events" and reacts to them by printing something to the console or lighting up something on the GUI.

This is Step 1: I've hacked it, I made it work.

The point is that I wouldn't dare push my changes to everyone else yet. I'm going to iterate a few times, add a couple more of the features I know I'll need. I'll quickly discover the abstractions I need for this to have something of an architecture. At this point all the little nitpicky things and API calls I needed to do just to "make it work" get put in their proper places. Build scripts are made or modified. Tests are written.

This is Step 2: I've made it right. I haven't overengineered it, but I've expressed my solution in terms of the abstractions that make the most sense. I can bring in my experience outside of this specific problem to determine how far is too far. YAGNI and all that.

Next, I might throw a wild amount of connections at it. I might have it generate as many push notifications per second as it possibly can. I'll find some crashes, some resource leaks, and some REALLY naive, slow code that an hour ago I thought was OK. But that's alright, it's almost never the abstractions that are slow, it's an algorithm that needs to be improved or replaced, or an API I didn't quite understand.

That's Step 3: make it fast.

When all is said and done, I probably have 10 - 20 commits in my local repository. The first ones were absolute brutish hacks. The middle ones were factorings and abstraction exploration. The latter ones are performance tweaks and polishing.

This never gets pushed to anyone else, it's my private experience and workflow. These commits all get rebased on top of everyone else's finished work and squashed into one commit. I will still HAVE my local history, but nobody else needs to know or care that version 0 of my push server was held together with duct tape and bailing wire.

When a whole team works like this (and if you're lucky enough to find a team that can), really good things happen. "Hacking" is still involved, it just turns into "engineering" by the time the code has to move out of my basement and start paying its own bills.

</comment></comment></comment><comment><USER8> I understand both points of view on the usage of the term "hacker" but I think most people are missing the key point of the post.

Payroll is incredibly difficult to do. Even more so to do well. Having spent many, many years in the space I can honestly say that it is one of the most taxing systems I've ever been involved with.

A lot of startups and the folks that are interested in them are looking for cool, hip and fast moving projects to jump in and out of. For people of that mindset, payroll is one of those fields where you will be consistently frustrated.

It is filled with thousands/millions of a little one-off rules (per employee, per state/province, per country, per vertical/horizontal etc. etc.) that it can drive a type-A go-getter insane. I think it is better to get that out of the way first before possibly attracting the wrong type of talent.

</comment><comment><USER9> I'm tired of the term "hacker" being thrown around this way. Authors just attach whatever meaning they want to it.

[http://www.catb.org/esr/faqs/hacker- howto.html#what_is](http://www.catb.org/esr/faqs/hacker-howto.html#what_is)

<comment><USER10> I also prefer the original definition, but I think you're fighting a losing battle. I think in common use, there's now three definitions:

1) The original definition. Someone with curiosity who digs into the internals of systems, more or less

2) Crackers who 'hack into' protected systems

3) Someone who works for a startup that's "going to change the world"

<comment><USER9> The third one is what annoys me the most.

</comment></comment></comment><comment><USER11> I wouldn't say that being a "hacker" or "hacking code" _necessarily_ implies doing a low quality job, or anything of the sort. But from a cultural standpoint, there does seem to be a bit of a dichotomy between "hackers" and "software engineers", although I think an individual can be both.

When the day comes that Fogbeam can hire employees, my goal is try focus on hiring engineers more than hackers (with the above caveat in mind). I'd like to establish a culture of people who take a great deal of pride in delivering a well-engineered, high-quality product, that maximizes code reuse, maintainability, modularity and all of those other things. I'd even say I want people who value _gasp_ process _gasp_ , -- as long as the process isn't overly top-heavy, bureaucratic and burdensome.

<comment><USER12> I definitely wouldn't say low-quality code, or even messy code, but I agree "not software engineers" is a reasonably fair description.

Two kinds of hackerly code that I think are common:

The big, messy, system that you get to work through iteration in an unknown/exploratory problem space. This might be the most classic variety. IIRC, the term 'hacker' was coined, or at least popularized, in the MIT AI Lab for this kind of software, as they were famous for building some pretty monumental but hairy systems. The codebase of some of the big classic Lisp programs, like CMUCL, Emacs, or some of the Symbolics stuff, might fit in this category of hackerly productions.

A small, clean, and elegant program or system designed largely by one person. Fabrice Bellard's 'tcc' is a good example of this kind of hackerly production.

Those lead to pretty different end results, but they have in common a focus on individual creativity and/or virtuosity rather than method/process. I tend to find that style of programming the most interesting to read about and observe, but the point is well taken that I might not want that hackerly approach (either kind) applied to lots of software. Something like train control systems, or business rules, might benefit from something more boring and industrial.

</comment></comment><comment><USER13> Perfect linkbait for this crowd.

</comment><comment><USER14> It seems they are confusing hackers with hacks. I've often found that hackers deliver better quality code than process hacks. It's probably going to be a hacker that finds out for you that you have an Xss problem that is exposing your clients information

<comment><USER15> Hackers solve problems. Hacks defer them.

That said, I really like their sentiment; our company is filled with shirts and signs that say "Build" as a contrast to "Hack," because some things are actually important to do right, not just fast.

<comment><USER16> _our company is filled with shirts and signs that say "Build"_

Do you need special sunglasses to see them?

<comment><USER17> I sure hope that is a They Live [0] reference.

0 - [http://en.wikipedia.org/wiki/They_Live](http://en.wikipedia.org/wiki/They_Live)

</comment></comment></comment></comment><comment><USER14> Good call, imagine you had a task like taking the input from the form for the employees wage.

A good developer with no knowledge of IEEE754 might do something like this:

      float hourlyWage = hourlyWageTextbox.text.floatValue();

While a hacker with intricate knowledge of IEEE754 might insist that everyone do the following:

      string hourlyWage[] = hourlyWageTextbox.text.split('.')
      int hourlyWage = hourlyWage[0].to_int * 100 + hourlyWage[1].to_int

It's essential to get rid of all these hackers who just slow down the dev process with extra unnecessary code. After all a quick unit test will show that there's no benefit from all the extra work of storing currency values as cents.

<comment><USER18> Well, while the developer might have cased a few rounding errors, the people with an hourly wage of 6.8325 are in for a nice bonus paycheck the month the hacker starts work...

<comment><USER14> Haha good point

</comment></comment></comment><comment><USER19> Several posts are talking about 'hacking' and the meaning thereof. In my mind, it is pretty simple - it's a reference to Zuckerberg's "The Hacker's Way", which goes to considerable length talking about there being no need to get it right the first time, just prototyping and releasing something to see if it works, and so on. Great for Facebook and the like (debatable, but I digress); a disaster for payroll apps, dialysis machines, and most of the rest of the engines of our economy.

</comment><comment><USER20> Fair enough, but you may want to consider hiring a designer who can make the text on your website and blog legible on systems that aren't retina MacBooks or similar.

The low contrast between font and background (especially on the site proper, where it is mostly grey on grey, more so than the blog) combined with the font's thinness makes the text really fall apart when viewed at lower resolutions or on non-IPS panels.

<comment><USER21> Weird that it works fine on my 6-year-old Dell laptop.

<comment><USER22> You don't get any broken loops on lower-case 'g's?

<comment><USER23> Not on my seven year old Dell.

</comment></comment></comment></comment><comment><USER24> I wish to see more job posts like this. Nice work.

<comment><USER25> I thought it was good too. It stands in great contrast to a series of hiring posts from another payroll startup earlier this year. Those posts emphasized the exact opposite - I think one even talked about developing on the production branch - and saddened me as a result.

<comment><USER26> you haven't lived until you've put pdb statements directly on a production machine and kept restarting the web server to catch a bug after days trying to catch it the normal way.

</comment></comment></comment><comment><USER27> I think it's kind of hilarious how these guys are badmouthing hackers as slinging things together, and then go on to aggrandize the government and payroll systems. Most systems are slung together with lots of duct-tape, and I don't think government/payroll is an exception.

</comment><comment><USER28> Hacking is yielding an output from something other than the basic expected output. That doesn't mean it has to be thrown together, or done in a non efficient way. Hackers are immensely intelligent people, and if they're not then we must be battling over semantics.

</comment><comment><USER29> Interesting. Maybe they should hire a small training department to teach their programmers how not to be hackers.

</comment><comment><USER30> Lex: I'm a hacker!

Tim: That's what I said: you're a nerd.

Lex: I am not a computer nerd. I prefer to be called a hacker!</comment>


Making AIDS a memory on World AIDS day - <AUTHOR> http://1000memories.com/blog/24-making-aids-a-memory

<comment><USER2> It is very important to remember those who mattered to us and, your real motives aside, remember what was endured to get us where we are today. However, if HIV/AIDS has impacted your life in any significant way, I urge you to take a look a this documentary.

<http://www.houseofnumbers.com/> On Netflix: <http://www.netflix.com/Movie/House-of-Numbers/70125403>

</comment><comment><USER3> I understand your company wants coverage and exposure, but the marketing for a death site is always going to come across as creepy and exploitative unless you're in a funeral home.</comment>


MPAA: Making All Domain WHOIS Data Public Will Advance Privacy - <AUTHOR> https://torrentfreak.com/mpaa-making-all-domain-whois-data-public-will-advance-privacy-181117/ <comment><USER2> Public WHOIS data is probably useful for commercial services, so that you can know who you are buying from. Other than that I suppose won't need (although there should still be some WHOIS data just so that you can see when it was registered, at least), although anyways it can be avoided if you do not use a domain name at all, or use a different TLD service than the official one I suppose.</comment>


HIP: Convert CUDA to Portable C++ Code - <AUTHOR> https://github.com/GPUOpen-ProfessionalCompute-Tools/HIP <comment><USER2> It's a poorly-chosen title but a very cool project: it's not a source-to- source translator, you as a programmer are writing C++ instead of CUDA, and it compiles down to either CUDA or ROCm depending on whether you've got an NVIDIA or AMD GPU.

Very cool!

<comment><USER3> They claim to have a tool to do the CUDA to C++ conversion

* The "hipify" tool automatically converts source from CUDA to HIP. [https://github.com/GPUOpen-ProfessionalCompute-Tools/HIP/tre...](https://github.com/GPUOpen-ProfessionalCompute-Tools/HIP/tree/master/hipify-clang)

</comment></comment><comment><USER4> My first question was "what about OpenCL", and they seem to address it here: [https://github.com/GPUOpen-ProfessionalCompute- Tools/HIP/blo...](https://github.com/GPUOpen-ProfessionalCompute- Tools/HIP/blob/master/docs/markdown/hip_faq.md#how-does-hip-compare-with- opencl)

<comment><USER5> Indeed, "The HIP API is less verbose than OpenCL and is familiar to CUDA developers."

I have only looked at both approaches rather than developed for them but I am currently planning some GPU development and OpenCL seems like horrid mess to start with.

The frustrating thing with OpenCL is it gets mentioned constantly in these discussions as a "less proprietary" alternative to CUDA but it gives every impression of being one of those multivendor kitchen-sink concoctions - it's got a thousand flags to accommodate 100 flags/vendor and get improvements at a snail's pace to accommodate those vendors as well. Which isn't to say that it's something that can't developed for, just that it's intended for teams assigned to develop for a given chip and produce something essentially proprietary for chip (given are those "nice" customization flags) and so it's useless for the _individual_ , independent developer. Thus OpenCL seems ultimately _more_ proprietary than CUDA, which we can see is now convertable to other code because clearly not that different to start with.

Anyway, HIP looks far, far better OpenCL - something that allows the developer to just write C++ and then target whatever. With luck, all vendor will be forced to support this.

<comment><USER4> That's a good point, although I'd argue that _anything_ is less proprietary than something that literally runs only on a single vendor's hardware.

Also, I feel that _proprietary_ shouldn't be used as a synonym to _targeted at specific hardware_ , because being truly independent of the hardware might just be too much to ask for.

But it's interesting to consider why HIP doesn't support compiling to OpenCL. They don't seem to address this in the FAQs, but I think the reason might be that in addition to all the other problems, OpenCL is terrible as an intermediate language for compiling C++ to OpenCL. If it wasn't, then I don't know a good reason for why something like HIP wouldn't support it out of the box. I mean, compiling C++ to C basically requires a full-blown C++ compiler, which is a huge investment of resources, so I really wonder how the decision was made to base OpenCL on C99. Because of all this, I'm not sure how to understand HIP in relation to the rest of the ecosystem.

<comment><USER6> > But it's interesting to consider why HIP doesn't support compiling to > OpenCL.

It's not HIP that will support compiling _to_ OpenCL, but rather the compiler toolchain will have an OpenCL compiler that will compile down to ISA [1], promised to be released for the ROCm stack in the coming weeks [2].

[1] [https://www.phoronix.com/forums/forum/linux-graphics-x- org-d...](https://www.phoronix.com/forums/forum/linux-graphics-x-org- drivers/open-source-amd-linux/881414-amd-radeon-rx-480-on- linux?p=882080#post882080) [2] [https://github.com/RadeonOpenCompute/ROCm/issues/30](https://github.com/RadeonOpenCompute/ROCm/issues/30)

</comment></comment></comment></comment><comment><USER7> What about Fortran support?

</comment><comment><USER8> Meanwhile, still nobody cares about compute shaders.

<comment><USER9> For actual compute apps, no. But for doing image post processing in games, most AAA games use compute shaders. This might even include (deferred) lighting.

This might change with Vulkan since it doesn't need a windowing system (like OpenGL) to do compute or offscreen rendering. So far it hasn't been viable to do OpenGL compute shaders because you need to set up a window (or a pbuffer) and you need to have X11 running (or interact with window system on Win32/OSX).</comment></comment>


1968: Engelbart demonstrates the mouse, email, collaborative work, hypertext, video conferencing - <AUTHOR> http://video.google.com/videoplay?docid=-8734787622017763097&q=engelbart

<comment><USER2> +Ahem+

And, here I thought that Microsoft had ripped off all those ideas from Apple.

+Ahem+</comment>


Cryptonomicon - <AUTHOR> http://journal.dedasys.com/articles/2008/03/09/cryptonomicon <comment><USER2> This book is great. Cryptography. Pirates. Finux. Battle scenes. Fantastic wit.

What more can you ask for? Definitely a must read.

</comment><comment><AUTHOR> Kind of off topic, but this book is fantastic hacker reading - in my opinion at least. If you don't actively dislike Stephenson for some reason (de gustibus non est disputandum), and haven't already read it, this book is worth a look.

<comment><USER3> And if you do dislike Stephenson based on his other writing, this is still certainly worth a try. I thought it was excellent, but didn't enjoy his other books (other than Snow Crash).

</comment></comment><comment><USER4> It always bothered me that Enoch Root dies in Sweden during the second world war (page 541 in my copy) and then suddenly appears in a Manila prison in the 90's (page 860)

I mean what's up with that? He's a main character - did Neil Stephenson just forget that he killed him earlier in the book or what?

<comment><USER5> He has an elixir which allows him to be resurrected. He uses it in the Baroque Cycle as well as Cryptonomicon. If I remember correctly he also uses it to revive Bobby Shaftoe.

<comment><AUTHOR> Right - in Sweden, when he dies, Hacklehaber stays in the room with him, and then walks out with some guy under a sheet, which is evidently Root.

<comment><USER4> Aah, always wondered about that.

Thanks for clearing it up.

<comment><AUTHOR> There are a bunch of other things that are also a bit clearer if you read the Baroque cycle, which also add to a rereading of Cryptonomicon, like the Samurai swords in the trunk of the Shaftoes' car.

</comment></comment></comment></comment></comment><comment><USER6> The parts involving Goto Dengo were for me the most interesting.</comment>


GoDaddy goes public and opens up 30% - <AUTHOR> http://techcrunch.com/2015/04/01/godaddy-goes-public/

<comment><AUTHOR> Just shows, it does not always matter how "tight" your code is, or how innovative your technology is, or design, or product. Marketing trumps all. I'm sad inside now.

I honestly would love to short and buy some PUT options, but GDDY will probably soar based on investor and banks pump up, and their marketing engine. Their product is absolute garbage though.</comment>


Show HN: Parking Lot design Problem - <AUTHOR> Please provide feedback [https://github.com/ranjeet-floyd/ParkingLotProblem] Problem statement : [https://github.com/ranjeet-floyd/ParkingLotProblem/blob/mast...] This code was rejected in one of Company interview, stating desing is not good. <comment><USER2> Wow, did you read the rules? Point 9 says, don't make this public, and here you are.

</comment><comment><USER3> I spotted the problem, it is Java in 2017.</comment>


Ask HN: Minor vs Major in CS - <AUTHOR>

I hear all the time on HN about people succeeding in programming without a CS degree, but that's only recently become a reality for me. I realized I wanted to major in CS in my sophomore year, and I've been taking CS courses since then. Unfortunately, because of the lack of course offerings and prerequisites, the only courses available have been Introduction to Programming and CS 1 (and CS2 this semester). Because of this, finishing a major in CS in by the end of my senior year will be almost, if not entirely, impossible (not from a difficulty standpoint--the classes just won't be offered), which is when my four-year debate full ride runs out.
Should I stay an extra year/semester and get a major in CS, or get a minor in CS instead?
If my fifth year was free as well, should I finish the major? <comment><USER2> It really depends on your work ethic and mentality towards doing extra work. In order to become fully prepared after college, you need to have a) a deep passion for programming (i.e. personal programming projects), b) great work ethic to continually learn new things (i.e. tools, languages, etc), and c) the ability to search out fellow programmers and get help. If you're confident in the things I've mentioned before, then regardless of what degree you graduate with you'll be fine.

However, if you're not sure which industry you want to work in, not mature enough to learn and program on your own, or even if you're unsure about whether you can handle the class workload, I say bite the bullet and take the 5th year. I graduated class of 2010 after 5 years, and I have to say that if it wasn't for that extra 5th year I wouldn't have matured enough and been prepared mentally or emotionally for those job interviews and the working lifestyle after college.

Additionally, all the classes definitely provide some value to you, even though it's not obvious at first. For example, I took a compiler class in my 5th year because I was interested in how a language is constructed and then broken down into low level code. Although I never work on low level programming (I do server engineering with Ruby on Rails), the exposure of compilers and language grammar helped me understand how Ruby conceptually differs from other languages and why Ruby is better (or worse) than other languages in certain situations.

So in conclusion, if you're determined and know where you want to be 3 years from now, don't worry about whether you graduate in 4 years or not. However, if you're unsure about the things mentioned above, consider the 5th year without worrying yourself about the money. As a programmer, you'll do just fine financially.

</comment><comment><USER3> Any company worth working for will value material, real-world experience over an academic degree. You'd be much more likely to get a job at that kind of company if you dedicated your 'fifth year' to working on an established open- source project, rather than finishing up a major in CS. After a year of working on an open-source project, you'd have a trail of patches and bug reports demonstrating your programming competence, and hopefully you'd also have established enough rapport with one or two of the project leads to use them as references (and probably also for job leads).

If your fifth year at school really is free, and you're enjoying the college experience, then there's no harm in spending another year there. You will learn a few things in your upper-level CS classes that you'll use at some point in your programming career. But there's nothing you can learn in any of your CS classes that you can't learn on your own outside of the classroom. The only real value of a CS education at a brick-and-motor university is a) being immersed in a community of academic pursuit and discourse, and b) the alumni connections. And you don't get much value from those things just by attending classes -- you have to go out and pursue those relationships with your professors, classmates, and alumni.

</comment><comment><USER4> All depends on how you plan to get that first job. If you already have a company lined up, are planning on joining a startup, or are using the alumni network at your university, you should be fine. But, if you're going through your university's placement office or planning to resume-apply, the lack of a full major will really hurt your job chances.

If it was free, definitely stay and do it. You will learn the most interesting things in that last year, particularly if you fill your CS electives by volunteering to work on a professor's research project.

It sounds like you are going to do so anyway, but strongly consider asking the scholarship provider for an extension. If you have a reason, many of them have a relatively simple form and approval process (at least, the corporate one I'm most familiar with -- MSFT's 4-year full ride had basically a rubber-stamp extension).

</comment><comment><USER5> For me personally, I found the first two years of my computer science degree to be focused on the "how" of computer science. Getting the basics down so we could move on to the "why." Years three and four was where I truly came to appreciate computer science. Algorithms, discrete math and lots of applied theory are the cornerstones of what I use today, all of which came in the later years. With that said, if you can front load most of the later classes earlier, a minor could prove just as valuable.

</comment><comment><USER6> Do a 5th year. Study/Major in Computer Science. Maybe you can do honors?</comment>


A $2,400 Fine for an Airbnb Host - <AUTHOR> http://bucks.blogs.nytimes.com/2013/05/21/a-2400-fine-for-an-airbnb-host/?hp

<comment><USER2> The one aspect of this story that has me asking questions and scratching my head is: why were the charges dropped only to be revived? Who made the call for the case to be reinstated? Airbnb is a great service, I don't see why local Governments like New York are so against the idea. I can see why personal driver services like Uber are somewhat under scrutiny, but the only person who has something to lose is the owner of the property being rented out on Airbnb, not the person staying nor the city the property resides in. The whole situation reeks of lobbyist propaganda and cash.</comment>


Prophecy Sciences (YC W13) Wants To Transform Recruiting - <AUTHOR> http://techcrunch.com/2013/11/20/prophecy-sciences-wants-to-transform-recruiting-with-a-blend-of-neuroscience-games-biometrics-and-machine-learning/

<comment><USER2> Seems to be a risky approach, the signals (pupil dilation, heart rate, etc.) described are ones that are known to be influenced by age, gender, race and medical conditions (including pregnancy).

If large companies adopt it, there will almost certainly be lawsuits around it (there are people who will specifically apply for jobs at wealthy reputation- sensitive companies with the primary aim of suing them for discrimination when they get rejected; they often look out for things like this).

(for those curious in the US the Uniform Guidelines on Employee Selection Procedures (1978) describe the kind of validation tests you need to do on stuff like this to stay on the right side of the law)

</comment><comment><USER3> A polygraph got into YC?</comment>


Malicious PDFs: How to Protect Yourself - <AUTHOR> http://securitybits.net/malicious-pdf-how-to-protect Malicious documents were the most commonly encountered exploit via the Web in 2008 and continued to be the most prominently encountered exploit in 2009. This is due to a large number of exploits for programs like Adobe Acrobat and the Microsoft Office suite, the ubiquitous use of documents via the Web and the built-in support into the browser. <comment><USER2> The trouble is that a pdf doesn't feel like an executable file. It feels like a simple document. Even though I know better, I don't think I treat it with the same caution as downloading a program or even a word file. Perhaps that will change with time.

</comment><comment><USER3> Suggesting that users use Google Docs to open all PDF files is just too far for non-security nuts. GDocs is fairly okay for when you know the url to the PDF but at least 50% of the time I don't know the url. For example, if I have in Google and see a PDF as search results, the url is a google url, not the url to the PDF.

And most of the time, the malicious attacks occur as an email attachment. Can GDocs open this? Not that I know of.</comment>


What it feels like to be rich - <AUTHOR> https://www.linkedin.com/today/post/article/20140602141149-5858595-what-it-feels-like-to-be-rich

<comment><USER2> It feels like being level 60 in World of Warcraft versus level 5: pretty much the same.</comment>


Riak-0.8 Released with support for Map/Reduce functions in JavaScript over HTTP - <AUTHOR> http://blog.basho.com/2010/02/03/the-release-riak-0.8-and-javascript-map/reduce/

<comment><USER2> The docs for the javascript mapreduce are available here: <http://hg.basho.com/riak/src/tip/doc/js-mapreduce.org>

</comment><comment><USER3> Isn't map reduce patented by google?

<comment><USER4> Indeed it is ([http://patft.uspto.gov/netacgi/nph- Parser?Sect1=PTO1&Sec...](http://patft.uspto.gov/netacgi/nph- Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=/netahtml/PTO/srchnum.htm&r=1&f=G&l=50&s1=7,650,331.PN.&OS=PN/7,650,331&RS=PN/7,650,331)). I'm not aware of them ever attempting to enforce it though. There are plenty of examples of companies which hold patents that they've never enforced (IBM comes to mind).

<comment><USER3> Agreed, yet it is so random and hard to predict who will attempt to enforce patents and which patents are actually valid that it is basically unfair to small companies who seek to compete and innovate.

I point it out because it is useful to always be mindful of their absurdity.

</comment></comment></comment><comment><USER5> Will this be faster than lets say... mongodb?</comment>


Bubble sort is the fastest sorting algorithm - <AUTHOR> https://www.quora.com/How-efficient-is-bubble-sort/answer/Dale-Thomas-8?share=1 <comment><USER2> It it ever actually faster than [https://en.wikipedia.org/wiki/Smoothsort](https://en.wikipedia.org/wiki/Smoothsort) ?

<comment><USER3> Forget smoothsort, it loses out to insertion sort even. Divide-and-conquer n*lg n algorithms tend to switch to insertion sort when the size of the partition goes below a certain value because of how fast insertion sort is.</comment></comment>


Show HN: Scribblechat for iOS (OpenGL chat client with handwriting) - <AUTHOR> https://getscribblechat.com <comment><AUTHOR> maker/cofounder/cto here.

Eager to get some community feedback on this app launch. I'll spare this audience the marketing speak and go right into what is different:

\- OpenGL instead of UIKit. The message stream and individual messages are all 3D meshes with shader materials on them. Making them easy to animate/interact with each other in novel ways.

\- Handwriting instead of Helvetica. We're using a patented system from our other product (handwriting.io) to generate 3D meshes of handwriting. This adds a surprising amount of personality to a chat session.

\- Effect system marketplace. Because the effects (on text and replies) are JS+WebGL they can be deployed without shipping app updates. Hopefully with a decent SDK visual devs would enjoy making chat effects on this platform.

Thank you for checking it out!</comment>


Apple in Talks with Comcast About Streaming-TV Service - <AUTHOR> http://online.wsj.com/news/articles/SB10001424052702303949704579457554242014552 <comment><USER2> _" Apple Inc. is in talks with Comcast Corp. about teaming up for a streaming- television service that would use an Apple set-top box and get special treatment on Comcast's cables to ensure it bypasses congestion on the Web, people familiar with the matter say."_

Wow, I can't believe how quickly and with such little fuss Net Neutrality was killed. Shouldn't it be highly controversial for Apple to be exploiting this situation?

<comment> shock-value There are some subtleties that seem to make this situation different than Comcast's strictly prioritizing some internet traffic over others. Apple seems to want to use the part of the pipe usually reserved for cable VOD. Though perhaps you could argue that separating VOD from the internet portion of the pipe (which has been the case ever since VOD existed) is itself a violation of net neutrality principles.

<comment><USER2> As you mentioned, a lot of people already have a problem with cable companies' VOD getting preferential treatment, but I think it's an order of magnitude worse for cable companies to then lease out the VOD bandwidth they've carved out for themselves to the highest bidder.

With this precedent set, Youtube, Netflix, and Amazon Prime could all end up paying a Comcast Tax to remain competitive with Apple. If that happens, all of a sudden there will be way fewer video or other high bandwidth startups, unless they're lucky enough to get sufficient VC to pay off the cable companies. No new Dropboxes or Vimeos.

Also, I think this situation is fairly different than, say, Motorola manufacturing set-top boxes for cable companies.

The Apple boxes will be sold in retail stores directly to the consumer, and are an attempt by Apple to create a Netflix/Roku killer. Apple paying a Comcast tax to gain competitive advantage seems to be a pretty clear violation of what Net Neutrality was all about.

<comment><USER3> So, because Netflix and Youtube get the same deal to compete w/ Apple, it somehow affects companies in the dropbox space?

I think there are a few things -- like video -- that are sensitive to latency and need consistent bandwidth. Most things aren't like that. Dropbox specifically was built to sync over slower connections.

I'm not sure how I feel about what Apple's doing here, but I know I feel differently than you do about the implications.

<comment><USER2> I guess you could quibble with Dropbox as an example (except when syncing with a new device, or uploading a massive file to immediately transfer to another device or share with others), but I don't think it changes my point at all.

In fact, it probably helps prove it by demonstrating the lengths U.S. startups have to go to to work around the bandwidth congestion created by the cable monopolies.

It also shows that the end of Net Neutrality will hurt innovation. Online file storage didn't really take off until Dropbox came up with a way to work around shitty bandwidth (as well as device interoperability). You claim that only a handful of video startups would be affected, but I bet the real number is probably in the hundreds or thousands, and many of those haven't yet had the opportunity to build a userbase big enough to pay a bandwidth tax. There could be countless other applications in VR, gaming, video, and who knows what other sectors, that are held back because of the bandwidth situation in the U.S, and an end to Net Neutrality would almost certainly make it worse.

</comment></comment></comment></comment></comment><comment><USER4> Yet another streaming service that Australia won't get. But that is the least of my concerns, Apple signing agreements with providers like Comcast to guarantee speed is the start of something horrible. Apple are encouraging some very slippery slope behaviour if the rumours are to be believed.

Before too long, we'll be seeing paid packages along the likes of; Priority Youtube Speed Pack $5.95 per month, Unlimited Google Searches $1.95 per month amongst others. I think this is the beginning of the end of net neutrality people buckle up, it's going to be a rough ride.

<comment><USER5> Indeed. This will be Apple's lever to make sure it never faces any credible tech competitor in selling media again.

</comment></comment><comment><USER6> If the streaming service comes with a typical Comcastic price of $80/month like their cable service, then this thing will be DOA. People don't want to pay a ton of money to watch 5% of the 500 channels you're forcing them to buy - they want to pay a reasonable price for only the content they care about. If this Comcast/Apple thing offered channels a la carte, the TV holy grail on my opinion, then it could be great. But, call me a pessimist to think that a cable company is forward thinking in any way, and not simply locked into their current and dying cash cow business model.

<comment><USER7> Live sports is another one. If I could buy ESPN, NBC Universal, and the Big Ten Network a-la carte, I wouldn't need any other cable stations. Netflix- style access for sitcoms and movies would be fine for the rest; currency is much less critical for those.

<comment><USER6> Along those lines, I found it was far cheaper to go to a sports bar and eat and drink beers every Sunday instead of getting Sunday Ticket.

<comment><USER8> Went on a bit of a tangent here...sorry.

I hear this argument frequently. This is not a practical solution for those watching their favorite NHL/NBA teams 82+ games a year or MLB 162+ games a year. IIRC ESPN gets $6+ per subscriber-month and would greatly fear reprisal from cable providers if they offered a way to watch without a subscription.

Due to the leagues' stranglehold over dissemination of their live events and major sports channels large budgets to pay them, there really is no end in sight for wannabe cord-cutters that want to watch their teams. There are three outcomes I foresee: 1. the status quo, 2. a company w/ deep pockets (Apple, Google, Netflix, etc) convinces a major sport to take their money, or 3. piracy of live sports streams becomes more reliable and easier to consume. #2 is possible but would still be a big gamble. I fervently believe the rise of bittorrent escalated alternative viewing options for non-live events, so I secretly am hoping for #3.

All of the live pirated streams I have seen are horribly unreliable and seem to get shutdown with ease. I'm a software engineer, maybe I should make a live P2P streaming protocol! Can't put what I want on it due to living in the US and fear of prosecution, but maybe just the simplicity will help the industry.

<comment><USER9> Can't speak for any other sport, but the pirated stream options for the NHL are absolutely impeccable.

</comment></comment></comment></comment></comment><comment><USER10> Take a moment and remember the state of TV today so we can avoid all the discussion about how "obvious" the TV experience is years from now.

<comment><USER11> You mean, how Netflix innovated and showed everyone how it should be done? Or do you mean, when Apple buys their way into a collusive agreement with a monopoly provider giving them preferential access?

</comment></comment><comment><USER12> Non-paywall link: [https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&c...](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CDYQqQIwAA&url=http%3A%2F%2Fonline.wsj.com%2Fnews%2Farticles%2FSB10001424052702303949704579457554242014552&ei=Z4QvU9i3D5Hr0QHL9YGoDg&usg=AFQjCNGqZ0phTS0rcFQmkASnZTByV2ljTA&bvm=bv.63556303,d.dmQ)

<comment><USER13> Same paywall for me there.

</comment></comment><comment><USER14> My question is this: Is Apply in talks to release something for the Apple TV? Or is this in preparation for a new device,; possible iTV? The article notes "set-top box" but that could just be lost in translation between the source and the writer and whomever is in between.

Of note: here is a similar article not requiring the WSJ sign in: [http://www.businessinsider.com/apple-talking-to-comcast- for-...](http://www.businessinsider.com/apple-talking-to-comcast-for-apple- tv-2014-3)

Second note: you can load the google cached version of the story for free: just search the story title.

</comment><comment><USER15> Here are the details from 2012 on Comcast's prioritization system that is used for Xfinity Xbox traffic: [https://ber.gd/2012/05/13/comcast-traffic- prioritization/](https://ber.gd/2012/05/13/comcast-traffic-prioritization/) (discussion: [https://news.ycombinator.com/item?id=3974259](https://news.ycombinator.com/item?id=3974259) ) I wouldn't be surprised if Apple is discussing using the same system.

</comment><comment><USER16> Why are you linking me to an article where I have to sign in?

</comment><comment><USER17> I see that Netflix want's to introduce more tiers in their pricing ... a bloody good idea so then they can tell their Comcast based subscribers how much extra they need to pay each month for quality service.

Why must I as a non US based customer of theirs help fund the poor state of competition in the US broadband market ???.

</comment><comment><USER18> Disable JavaScript if you want to read it for free.

</comment><comment><USER13> Nothing DRM-free to expect. Next.

</comment><comment><USER19> Apple Inc. AAPL +0.79% is in talks with Comcast Corp. CMCSA -1.20% about teaming up for a streaming-television service that would use an Apple set-top box and get special treatment on Comcast's cables to ensure it bypasses congestion on the Web, people familiar with the matter say. The discussions between the world's most valuable company and the nation's largest cable provider are still in early stages and many hurdles remain. But the deal, if sealed, would mark a new level of cooperation and integration between a technology company and a cable provider to modernize TV viewing. Apple's intention is to allow users to stream live and on-demand TV programming and digital-video recordings stored in the "cloud," effectively taking the place of a traditional cable set-top box. Apple would benefit from a cable-company partner because it wants the new TV service's traffic to be separated from public Internet traffic over the "last mile"—the portion of a cable operator's pipes that connect to customers' homes, the people familiar with the matter say. That stretch of the Internet tends to get clogged when too many users in a region try to access too much bandwidth at the same time. Apple's goal would be to ensure users don't see hiccups in the service or buffering that can take place while streaming Web video, making its video the same quality as Comcast's TV transmissions to normal set-top boxes. While devices such as Microsoft Corp.'s MSFT -0.42% Xbox gaming console and Roku Inc.'s set-top box have made some inroads in the TV industry, none offer the kind of fully formed TV service, with the guarantee of network quality, that Apple desires. Apple has spent several years exploring various avenues to enter TV, but it has been unable thus far to find business models that media companies and cable providers find appealing. Getting the support of Comcast would give Apple's plans a big boost. The companies share a common goal: advancing set-top box technology so that TV more closely resembles the easy-to-use apps and streaming-video services to which consumers are growing accustomed. Innovation is becoming a high priority for content-owners and operators amid pay-TV subscriber losses and fears that a younger generation of consumers will forgo paying for TV altogether. Apple and Comcast aren't close to an agreement, said one person familiar with the talks. Delivering the service quality Apple envisions would require Comcast to make significant investments in network equipment and other back-office technology, according to people familiar with Comcast's thinking. The companies also differ on how deep a relationship Apple should have with Comcast's customers. Apple has proposed that users would sign on to the new device using Apple login IDs, and it is interested in controlling customer data, the people familiar with the matter said. Apple also has asked for a cut of the monthly subscription fees paid by customers, these people said. Comcast wants to retain significant control over the relationship with customers and the data. Furthermore, Apple must acquire significant TV programming rights from media companies, one of the people said. Comcast would want to ensure that the price Apple has to pay to acquire rights wouldn't cause the service to be priced higher than traditional pay-TV service, this person said. Apple has had discussions since at least mid-2012 with Time Warner Cable Inc., TWC -1.34% the No. 2 operator, people familiar with the matter said. Those talks, known internally at Time Warner Cable as "Project Jupiter," came to a standstill when the cable operator became a takeover target, the people said. Comcast in February agreed to acquire Time Warner Cable for $45 billion, a deal regulators are reviewing that would give Comcast a total of 30 million U.S. customers, after proposed divestitures. Under the plan Apple proposed to Comcast, Apple's video streams would be treated as a "managed service" traveling in Internet protocol format—similar to cable video-on-demand or phone service. Those services travel on a special portion of the cable pipe that is separate from the more congested portion reserved for public Internet access. People familiar with the matter said that while Apple would like a separate "flow" for its video traffic, it isn't asking for its traffic to be prioritized over other Internet-based services. Those distinctions are important because of merger conditions Comcast agreed to as part of its 2011 acquisition of NBCUniversal. Those "net-neutrality" restrictions, which will be in place through 2018, say Comcast cannot "unreasonably discriminate" in how it transmits network traffic. The Federal Communications Commission is in the process of drafting net-neutrality rules for the broadband industry after the U.S. Court of Appeals for the District of Columbia in January tossed out an earlier set of regulations the agency had in place. The FCC has signaled that its new rules will prevent Internet service providers from blocking or slowing down access to Web content providers that don't pay a toll. It isn't clear what approach the FCC will take to a situation in which a provider such as Apple wants enhanced treatment for a cloud-based service in partnership with an operator. The FCC also could consider net-neutrality proposals as part of its review of the Comcast-Time Warner Cable deal. Under the FCC rules the court struck down, broadband providers were allowed to treat managed services differently from public Internet traffic. The agency noted the potential risks, however, if broadband providers invest too much in specialized last-mile services but "constrict or fail to continue expanding network capacity" for the public Internet. Comcast could see value forming a partnership with Apple to add and retain customers. In addition, the Apple device likely would be sold at retail to customers rather than leased through the cable operator like a traditional set-top box—something that could reduce Comcast's capital expenditures over time, said one person familiar with the talks. At the same time, though, Comcast has been aggressively investing in and deploying its own Internet-connected set-top box and guide—dubbed "X1"— that far eclipses capabilities of its old boxes. To date, Comcast has limited the managed-video services it offers only to its own cable TV services. Apple's interest in separating its streaming-TV service from ordinary Web traffic highlights growing concerns in the media industry about the Internet's ability to handle the increasing consumer demand for online video. Netflix Inc. recently agreed to pay Comcast to directly connect to the cable provider's network to improve the quality of its streaming-video service. That "interconnection" deal was different from Apple's proposed approach in that it didn't address how Netflix's traffic would be treated over the "last mile" to households. The arrangement Apple is seeking could give it a leg up over other new entrants vying to offer online versions of pay- television service, such as Sony Corp. 6758.TO +3.47% , whose traffic would travel over the public Internet. Anticipation built about a breakthrough TV offering from Apple after founder Steve Jobs told biographer Walter Isaacson three years ago that he "finally cracked" a way to revamp the television. But Apple's only television product since then has been Apple TV, which offers users access to iTunes movies on the larger screen of a television as well as streaming video from Netflix, Hulu and other online services. There is some precedent to the kind of deal Apple is seeking with Comcast. The cable operator has a years-old relationship with TiVo Inc., TIVO -1.20% the DVR pioneer, which allows subscribers to receive Comcast TV service through TiVo boxes they buy at retail stores and, in some markets, with certain newer boxes access Comcast's on-demand library. Apple's proposal is different than TiVo's in that it has sought a share of customer fees and a deeper relationship with customers and content owners.</comment>


Google Even Fear Intel ME, Reduce Their Attack Vector with NERF - <AUTHOR> https://www.phoronix.com/scan.php?page=news_item&px=Google-NERF-UEFI-Linux <comment><USER2> The PDF slides are superb. I can't wait for the video. In the mean time: what an interesting times to live in, CPUs have hidden CPUs inside them, and these include a complete web servers and additionally can reimage your workstation even when powered off... And I feel bad because of feature creep in my software...

Sadly it seems there is no alternative in consumer CPU space.

</comment><comment><USER3> Mobile hijack ads. Careful with that link.</comment>


Ask HN: Anyone in NYC need an intern/temp for about a month? - <AUTHOR>

Hi all, I'm a self-taught programmer (Ruby/Python) at the moment but will be going to a dev-bootcamp October 21 to really get into web development. Meanwhile I have already moved up to NYC and have pretty much nothing to do but build toy apps until then. If anyone could use someone for about a month to do documentation or write tests for them I'd be happy to do it. I know that under a month is a really short time in terms of working but it's a long time in terms of tooling around by oneself. I'm really just looking for something that can be productive and interesting and expose me to what a dev shop is like. I won't fail fizzbuzz or anything and I learn pretty fast.<p>Edit: I can also speak Russian and do some other cool stuff too. <comment><USER2> Send me an email. We are not in NYC, but we have some dev-ops and python type work for a couple of our new products that are candidates to split out.

Full disclosure, we do a lot of software development as a product development firm, and are developing a number of our own products. We fully recognize we suck at some things and excel at many others. My comment history probably demonstrates that. Reach out if you have interest, we evaluate everyone as an individual on their merits not degrees.

<comment><AUTHOR> Awesome. I'll shoot one over right now. Thanks for the reply.

</comment></comment><comment> o0-0o I see you're talking to someone, but if you want - give me a buzz at 51.6.876. 8006 - ask to talk to the guy on Wall ST.

<comment><AUTHOR> Thanks for the reply, I'll give you a call tomorrow during business hours.</comment></comment>


How Working-Class Life Is Killing Americans, in Charts - <AUTHOR> https://www.nytimes.com/interactive/2020/03/06/opinion/working-class-death-rate.html <comment><USER2> Anyone else read this while counting the logical leaps being made between data and reason without any evidence?

There is no multi-factor analysis being done, only single factor correlations that the authors want so badly to point to evil capitalism as causation.

<comment><USER3> Well. I reacted to the charting, where the basis of each chart was designed to maximize the separation of of the two groups, and the color red was used make somewhat mild differences look more causal than they really are. And, yeah, there are probably other data points that were not included because they muddied the story line. But I can't agree with you that the tone was anti- capitalist. That people suffer when they feel trapped by their circumstances doesn't seem like a huge reach to me.</comment></comment>


Facebook to remove anti-government 'Boogaloo' groups - <AUTHOR> https://www.nbcnews.com/tech/tech-news/facebook-remove-anti-government-boogaloo-groups-n1232579 <comment><USER2> While Antifa still exist on the platform. Talk about hypocrisy....

</comment><comment><AUTHOR> I am concerned for the mental health of our young men in this country. This incident reminds me of A Clockwork Orange, not that this is in any way comparable to fiction. I don't know what the answer is.

> Facebook announced Tuesday that it is removing groups dedicated to the > Boogaloo extremist movement one month after federal officials alleged the > anti-government network's adherents used the platform to plan the murder of > a federal agent.

> The social media giant said it removed 220 Boogaloo Facebook groups and 95 > Instagram accounts that violated its policies against organized violence. It > said 400 additional groups that were tangentially associated with the > movement would be taken down, too.

> "Today we are designating a violent U.S.-based anti-government network as a > dangerous organization and banning it from our apps. This network uses the > term boogaloo but is distinct from the broader and loosely-affiliated > boogaloo movement because it actively seeks to commit violence," a Facebook > spokesperson wrote in a statement.

> In May, federal officials alleged that Steven Carrillo killed a federal > security officer during protests in Oakland, California, against the death > of George Floyd while in the custody of Minneapolis police. Carrillo > allegedly plotted the attack with a man he met in a Boogaloo Facebook group > and aimed to use protesters to "support our own cause" of a second Civil > War.

> Several self-professed "boogaloo boys" have been arrested in recent months, > charged with crimes including the murder of law enforcement officers and > planning terror attacks at Black Lives Matter protests.

> Carrillo was apprehended a week later shortly after killing a Santa Cruz > County deputy in an ambush and scrawling the word "boog" in his own blood > across the hood of a car.

</comment><comment><USER3> From the article: "Today we are designating a violent U.S.-based anti- government network as a dangerous organization and banning it from our apps. This network uses the term boogaloo but is distinct from the broader and loosely-affiliated boogaloo movement because it actively seeks to commit violence," a Facebook spokesperson wrote in a statement."

So this isn't all Boogaloo groups, only a supposedly (more?) violent subset.

<comment><AUTHOR> Apparently only a subset seek to commit violence, but I think they're banning all that are associated with the former maybe? Very unclear from context.

<comment><USER4> they have banned anyone who had many connections with the movement, it dose not even matter if you have not violated the guidlines.</comment></comment></comment>


Cryptography: An Introduction (2011) [pdf] - <AUTHOR> http://www.cs.umd.edu/~waa/414-F11/IntroToCrypto.pdf <comment><USER2> If you just want to get somebody interested in cyptography, I HIGHLY recommend: The Code Book ([http://amzn.com/0385495323](http://amzn.com/0385495323)). It's a great read for anybody who's done a little bit of history by walking you through the role of cryptography and hiding messages throughout history.

Covers most everything in the context of war history as far back and shaving a person's head, writing a message on it and then letting the hair grow back to hide it. Great read that will lay the groundwork of interest for a lot of people.

</comment><comment><USER3> This has a really nice section on work done by Jerzy Różycki, Henryk Zygalski and Marian Rejewski on the cryptanalysis of Enigma.

</comment><comment><USER4> This is a great book, I based our company's own proprietary crypto code on what I picked up while skimming through it. Kidding...kidding!

<comment><USER5> You are the worst.

</comment></comment><comment><USER6> We used this book as the source material for the cryptography course I took in the final year of my degree.

I can confirm that the content is very approachable. It even provides a great section introducing some of the core mathematics required.

</comment><comment><USER7> here is a very theoretical account by Luca Trevisan of Stanford

[http://theory.stanford.edu/~trevisan/books/crypto.pdf](http://theory.stanford.edu/~trevisan/books/crypto.pdf)

</comment><comment><USER8> Excellent introduction from an excellent academic.

</comment><comment><USER9> I'm currently working through Cryptography 1 on Coursera and struggling with some of the maths involved, so hopefully this will help.

[https://www.coursera.org/learn/crypto](https://www.coursera.org/learn/crypto)

</comment><comment><USER10> I don't see a finalization/publication date in the text... can anyone provide and source?

</comment><comment><USER11> this is a gem. it's hard to find all that info in one place.</comment>


What Is Declarative Programming (2013) - <AUTHOR> http://michaelrbernste.in/2013/06/20/what-is-declarative-programming.html <comment><USER2> "We say the operation is declarative if, whenever called with the same arguments, it returns the same results independent of any other computation state."

That's the use of the term 'declarative programming' by the functional programming community. There are some other uses of it.

Usually in computer science 'declarative programming' means: the problem is described and way to the solution is determined from the problem description. A declarative program describes 'what' and not 'how'. The detailed control flow is not described.

• specify static properties of problems

* solutions are computed

* no explicit dynamic behaviour

see also:

[http://en.wikipedia.org/wiki/Declarative_programming](http://en.wikipedia.org/wiki/Declarative_programming)

<comment><USER3> I've seen "declarative" languages that included if statements (explicit dynamic behavior!) still passed off as declarative. Some even add sequencing, and what not. However, its ok because they aren't part of the language core, just escape hatches on expressiveness :)

"Declarative" always exists in a spectrum: one's specification is another's implementation. It used to be that Fortran was "declarative" because you no longer had to write machine code and schedule instructions by hand! In truth, it is about how many, not just the kind, details can be omitted. E.g. the list order element is probably important, and if HTML couldn't guarantee that this order would be preserved at run-time, there would be some big problems.

<comment><USER4> > It used to be that Fortran was "declarative" because you no longer had to > write machine code and schedule instructions by hand!

Maybe, but even at that time, pure mathematics was still more declarative than Fortran, so it's not a relative term.

> In truth, it is about how many, not just the kind, details can be omitted.

I think it's about the kind of details that can be omitted. If I can omit implementation details (how to execute my code on a given machine) from my function declaration, then that is a declarative function.

<comment><USER3> Again, an implementation is just a more detailed specification. I can say "make me a cake", or I could provide a high level theory on cake baking so my cake gets made, or a detailed recipe, or I can describe all the movements needed exactly. Which one is declarative?

There are many levels in describing what one wants, that there is somehow a magical sharp line where it becomes "how" is not reasonable.

</comment></comment></comment></comment><comment><USER5> This blog post points out problems with the three criteria given in the article for what "declarative" means: [http://existentialtype.wordpress.com/2013/07/18/what-if- anyt...](http://existentialtype.wordpress.com/2013/07/18/what-if-anything-is- a-declarative-language/)

edit: addresses -> points out problems with.

edit2: the blog post also addresses the "referential transparency" characterization.

</comment><comment><USER6> Spreadsheet is a declarative programming system with a simple programming model and an amazingly intuitive UI, that has enabled a generation of non- programmers to do very complex computation and analysis.

<comment><USER5> Spreadsheets meet none of the three criteria given in the article:

* Independence: Spreadsheets explicitly rely upon mutable state for <strike>all</strike> some commonly-used operations (i.e., the value of cells).

* Statelessness: Non-independence implies non-statelessness.

* Deterministic: Non-independence implies non-determinism.

The reasoning for the last two point to an underlying problem with the criteria (removing the word "computation" from independence makes the three inter-reducible in any real-world machine). but yeah.

edit: all functions->some commonly-used operations

edit wrt downvotes: perhaps reserve judgement unless you've maintained a very large spreadsheet-based application written by non-programmers. Spreadsheets -- as most commonly used in practice -- do not meet the criteria above, except for the smallest/most trivial of applications. Period.

Now, perhaps the problem is the definition. Or perhaps the problem is that spreadsheets are awful at-scale (even assembly can be quite elegant for small problems or when usage is well-constrained). Or maybe both.

<comment><USER6> I think you've confused what mutable state is. The cell values entered by a user are input values. The derived value of a cell bases on the computation of other cells, which is not changed once computed. When a user changes an input value in a cell, a new round of computation of the whole spreadsheet is started. The input value are not mutable state during computation. The modal of computation of a spreadsheet is pretty much stateless.

The computation between cells are done by the declaring formulas and cell dependency. The order of computation or how the computation is carried out is not specified, which is what declarative programming is.

The input cells and derived cells are pretty much like the tables and computed views in a RDBMS, where SQL is a declarative language to define the view.

<comment><USER5> > I think you've confused what mutable state is.

Absolutely not.

Macros provide shared mutable state. Macros are used pervasively in spreadsheet programming. You cannot carte blanc ignore macros without some serious explanation.

> The modal of computation of a spreadsheet is pretty much stateless.

Relative references means semantics depend on code layout, which in most hygenic circumstances is an old-school GOTO. In truly awful uses, relative references recover the sort of code layout dependencies which even C avoids. This can definitely be _even worse_ than shared mutable state.

</comment></comment></comment></comment><comment><USER7> > Declarativeness is a property of code which subsumes what professional > developers typically refer to as functional and purely functional code. > While real world applications don't allow us to solely rely on declarative > code to solve all of our problems, we can embrace its positive qualities and > learn to overcome its shortcomings by following two basic approaches: > embedding and extending.

I like the balanced conclusion. So as I understand it,languages like Haskell(which I dont know) wrap states into a type that can be passed to pure functions right?is that what monads are about? A bit like promises in javascript where the developpers wraps an eventual outcome into an object and can reason about his code without worrying about what the value will be or even if the value will be at all?

More generally,how one does remove side-effects from OO code?since objects are statefull,or is the solution not using OO at all?

<comment><USER8> > So as I understand it,languages like Haskell(which I dont know) wrap states > into a type that can be passed to pure functions right?

I would restate this as: "In Haskell you write a description of a stateful computation." The "State Monad" is really just the illusion of mutable state, provided by passing the underlying state to each described computation. Actually-mutable state is possible with things like IORef, but these are impure.

<comment><USER9> You could also say it's just an implementation of mutable state. The "State" type and its operations are just a few lines of simple Haskell code. The implementation uses parameters and return values to thread state between functions. It's just a simple abstraction of a simple pattern of programming. It uses a monadic interface, which is convenient and gives you some syntactic sugar, but there's nothing magical about it.

From the Haskell point of view, so called "actually-mutable" state is on the other hand deeply magical, because it lets you do exotic things like having one thread modify a value in another thread. And that's possible through things like IORefs. But it should be avoided as much as possible.

<comment><USER8> Really I just wanted to point out that the State Monad is not actually hiding any "real" mutation anywhere, nor is it related to the IO Monad- I was confused on this point for some time when learning Haskell.

</comment></comment></comment></comment><comment><USER10> CSS should be a very good example...

<comment><USER11> CSS is a markup though and not a Turing complete language.

EDIT: Turns out that HTML5 + CSS3 are in fact accidentally Turing complete [http://beza1e1.tuxen.de/articles/accidentally_turing_complet...](http://beza1e1.tuxen.de/articles/accidentally_turing_complete.html). Regardless, it's still only accidentally Turing complete.</comment></comment>