skysight-inc/HackerNews huggingface dataset:
I think its a combination of things.

For starters, its built on a volunteer basis, so there is no monetary reward for making it easier to use.

Also, some of the developers are probably actually unaware of the main concepts in UX design and even don't want the software to be user friendly because to them that is synonymous with 'dumbing-down' the system for beginners.

>http://developer.gimp.org/gimpcon/2006/index.html

GIMP targets experienced users. If we acknowledge that GIMP is not (primarily) for beginners, we cut off a lot of problems such as “do we need to support that,” etc. Peter noted that a “GIMP Light” would not just have some options cut off from the menus: it would have a completely different user interface, even if it would use the same code under the hood.

Some developers work on GIMP to promote the Free Software movement and would probably not contribute if GIMP was not free. Others think that GIMP should provide fun for its developers, although our user base has grown a bit large for just doing fun experiments. We have to acknowledge that we address a user base that may be more experienced in image manipulation than we are, so the developers are partially out of the target group.

Before converging towards a definition of the GIMP target groups and GIMP vision, there were several discussions involving examples and use cases, whether GIMP should be the best image manipulation program in the universe (best for who?), whether those working on icons and those working on photos have the same needs (number of images open, relative sizes), whether people need to switch frequently between GIMP and other applications (browser or editor for web work), whether we will support painting with shapes and natural media, etc.

Eventually, a GIMP vision emerged...

What GIMP is:

GIMP is Free Software

GIMP is a high-end photo manipulation application, and supports creating original art from images;

GIMP is a high-end application for producing icons, graphical elements of web pages, and art for user interface elements;

GIMP is a platform for programming cutting edge image processing algorithms, by scientists and artists;

GIMP is user-configurable to automate repetitive tasks;

GIMP is easily user-extendable, by easy installation of plug-ins.

What GIMP is not:

GIMP is not MS Paint or Adobe Photoshop

TODO

Make it easier to perform repetitive tasks (macro recording)

Provide a UI with a low barrier to entry

GIMP should be easily extensible by the average user: one click-installation of plug-ins

Well, "a UI with a low barrier to entry" was on that TODO list at least. If they had hundreds of thousands of dollars lying around, probably someone would have been hired to focus on that one. But they have zero dollars and its not a big enough priority for most of the developers to motivate the type of changes required.
I was one of the last Mach people at CMU. The BSD emulation on Mach 3.0 was implemented by stubs that made IPCs to the BSD emulation server, which then made additional Mach API calls to implement the UNIX semantics. This design was generally half as fast as an in-kernel implementation (e.g. Mach 2.5 or a commercial UNIX kernel). In the mid-90's we figured out how to make up the performance gap by refactoring the BSD emulation to put some code in the same address space as each application (ie in the libc .so), which allowed you to avoid the RPC to the emulation server in most cases (eg http://dl.acm.org/citation.cfm?id=168639). So I don't think it's fair to say that microkernel implementations of UNIX are inherently slow; instead I would argue that the simpleminded approach to UNIX emulation was the real problem.

None of this technology made it into a mainstream Mach distribution because the band broke up: Rick Rashid and his staff and students went off to work at Microsoft Research. Brian Bershad took over the project and then moved to University of Washington. It was also becoming clear in the mid-90's that the OS didn't really matter much anymore, since the big money was being made in Internet applications. So most of the hackers who might have worked on new operating systems during this time ended up working on application servers and web apps instead.
> Please note DC, the place with the most gun control in the country, is also by far the most violent, with the most murders per capita by a huge stretch.

It's worth it to note then that as gun control has increased in D.C., the murder rate has dropped tremendously.

http://news.yahoo.com/dc-pace-fewer-100-homicides-2012-09471...

from ~500 in the early 1990s to under 90 this year.
Is there some way I can contact you directly the next time I find an example of this? I'm happy to send you all the diagnostic data your heart desires.

I suspect in some cases it may be due to timeouts or row count limits. I tend to do very broad searches, and then narrow the results with filters. This works great in Matrix, but with Orbitz (which uses the same data source), I tend to hit invisible limits where I can see that some of the rows have just been cut off from the results. (E.g. I can book flights A or B for leg 1, and flights C or D for leg 2, but for the combination I can only book (A,C), (A,D), and (B,C). The B-D trip is in Matrix results but not Orbitz, and this kind of truncation only happens when I have lots of results.

I don't know for sure that Hipmunk follows the same pattern, because I haven't used it in quite some time, but I'm happy to send bug reports IF AND ONLY IF I can have confidence that a real human is reading them.
I first learned about them from a digital logic perspective, so they were already very practical tools for me when I ran into them in my theory classes. One of the best free resources I can find in short order is the wiki article on them. http://en.wikipedia.org/wiki/Finite-state_machine The wiki page on deterministic finite automata would be useful to see the CS theory/language side of the idea. http://en.wikipedia.org/wiki/Deterministic_finite_automaton
Reminds me of YQL (http://developer.yahoo.com/yql/) - one of the more underrated things by Yahoo for developers.
I agree in principle. However, sometimes it is useful to bundle things together if that's how things work in the real world, like Ruby on Rails + Github + Heroku in a RoR book. Then again, it would be counter-productive to add in totally irrelevant things like vim or emacs.
I returned my first (Toshiba) Win8 laptop less than 1 month ago after (a) the (Synaptics Multi-touch) trackpad stopped working entirely (after Win Update pushed Synaptics 16.2.10.3, the version Toshiba authorizes), and (b) even after recovering and switching to 16.2.21 (the newest release from Synaptics' website), it worked very unreliably and the simplest feature (which I require), single-finger scrolling, would not work at all.
Alright, all fixed up and should work with the actual content and the newest dexy. Shoot me problems if you try it.

http://gitorious.org/learn-x-the-hard-way/learn-x-the-hard-w...
From 1997 to 2001, Lanier was the Chief Scientist of Advanced Network and Services, which contained the Engineering Office of Internet2, and served as the Lead Scientist of the National Tele-immersion Initiative, a coalition of research universities studying advanced applications for Internet2.

==Looks like his first "contra" essay was in 2000.

(Per Wikipedia).
Ask HN: Incentive-based task manager for parents & children
What about a mobile app that facilitates incentive-based task completion between parents and children? A parent creates a "prize" that has a cost of X "points".The parent then creates multiple tasks (e.g. household chores) that award points upon completion. In order to complete a task the children must submit evidence of completion (e.g. pictures/videos of them washing the car, doing their homework, taking out the trash). Once the parent has approved the task, points are awarded to the children. The child can then use these points to redeem for a "prize" (e.g. spankin' new Xbox 720).
I think a great way to deal with this is to have services/actions that return the appropriate hashes. Pass the hashes into your views and let them do what they're going to do with them. You won't have biz logic creeping into a view that way because views are dealing with dumb hashes, not real entity objects.
Metrics are great but they won't tell you the user passed on your software because you're missing width/height info on selection

Similarly it seems easy for metrics to mislead you into thinking the most important features for your app are the ones that get the most usage. It could easily be that some other features users would like far more but are currently hidden or poorly designed so that users are avoiding them
Thanks for the tip.

Will definitely check it out.
> It's like my thinking process turns to goo after the first few layout steps.

If you've gone beyond a few layout steps, consider factoring out more small functions from your code. I've found that even very large Haskell codebases tend to end up with mostly two or three types of functions: short single-purpose functions of a few highly expressive lines, long but conceptually simple pattern matches covering a data type with many constructors, and long but conceptually simple monadic functions sequencing a flat series of steps gluing together other functions.

You'll spend most of your time reading and writing the short functions, writing types and names that make them self-explanatory, finding ways to factor out more of them, and occasionally staring at them and thinking "it feels like I've missed some simpler way to write that"; the long functions will fly off your keyboard almost as fast as you can think and type them.
The discrete nature of MIDI and its purported effect on music is one of the main example complaints in You Are Not a Gadget, and one of the easier ones to evaluate. Has the richness of music been decreased since the MIDI standard was promulgated, or has it increased?

Music is like many other sorts of human information systems (natural languages, laws, business practices) in that there are various forces both for and against standardization. Standards in music are much older than MIDI; the equal-tempered tuning of the Western scale is exactly a somewhat unsatisfactory compromise forced by standardization.

More here:
http://omniorthogonal.blogspot.com/2010/02/review-you-are-no...
If you're stuck then I'm finding there two common causes:

1. It's a structure problem, so you have to go back to organizing the concepts and how each chapter flows. Try changing the first lesson as a way to start rethinking this.

2. It's an audience problem, so you have to go figure out who the book is really for and then constantly try to write it for them. Try even changing who it's for and then see if that makes the book work for them.
My interesting idea was being hilariously wrong about the security properties of my original design.
I'd argue this is why many open source project who's target audience is not developers are not nearly as good as their commercial counterparts.

When the software is made for artists there's a very different dynamic at work then when a a similar piece of software is created by engineers just to scratch an itch .
If you are including fictional engineers, I'd suggest Hiccup from the "How to Train Your Dragon" movie. It was basically through his engineering skill that he captured Toothless. It was also engineering to provide Toothless with a prosthetic tail and figure out how to fly with him. Learning how to train dragons was a mix of science and engineering. He's continued demonstrating an engineering and scientific approach to problems in the "Gift of the Night Fury" short and several of the "Riders of Berk" cartoons.
I really dislike the title of the article. When I read "domestic computer systems" I think of civilians and their computers, not domestic vs foreign. Is it just me?
If I'm teaching someone rails deployment and making their first rails app, then maybe but that's a whole lot of indoctrination there. You have to pick, but to me you're basically just making customers not programmers.

If I'm teaching someone who doesn't know how a computer loops in a while loop or what a variable is, then you're advice is counter productive. None of that is useful for them and just gets in the way of what they need. At best you're just impressing them with a flashy demo that they may not even really understand.
Gabo Esquivel - Javascript Developer & Entrepreneur
Does the end goal extend beyond getting household chores done and into educating children to intrinsically want to do chores?

You improve what you measure. Is points what you want to measure?
I've never read the book; not sure if that is how it ends.
I don't think you need to abandon the S. I think FSMs embody the core of functional thinking. Structuring your computation as a FSM splits your code into your current state and a combinatorial logic block that takes a current state and outputs a new state along with some optional side-effects. Splitting your computations into pure functions that hold state on their end-points sounds very much like the philosophy behind FP.
I find there's no point in participating in SO beyond a certain level of ability. If you ask a truly difficult question, the odds of getting an answer from someone who knows what they are talking about is not very good. Meanwhile, any sort of discussion question gets closed.

The remainder is basic to intermediate questions that get answered with "this is a duplicate of X".
I disagree. Adding github + heroku to a Rails book is a mistake. Too much time is spent setting up things you don't really need to learn how to code with Rails. Its a big drag.
Imagine if at school you were taught how to write cursive while also being taught how to hold the pencil. Shit gets complicated too fast.
Not sure exactly what a condo is, but appartments do in New Zealand. Also, there are plenty of buildings above roads (like bridges kind of) here, so I guess that's sort of similar.
I hope you can reveal more details of how you are going to accomplish what you've set out to do in the site.

In general, technically minded people who care about privacy like to see these kinds of solutions in open source form or there will be heavy resistance to trust it.
Hm, I never thought there would be anybody interested in this stuff so it's all over the place.

Basically what I've done is to model state machines using a bunch of C macros, added a simple event system to drive the state transitions (receipt of message translates into an event) which allows you to run any number of statemachines in parallel inside a single C thread.

The events are prioritized to make sure that urgent stuff gets processed first (such as statemachines terminating).

Imagine turning a very large bowl of spaghetti into a neatly ticking Swiss watch :)

The particular element that made this a powerful tool was the fact that statemachines (unlike function calls) are restrictive, the state-to-state transitions are all known up front and any state changes that are not explicitly allowed are forbidden. This simplifies design and debugging. An extra benefit of doing it this way is that to run the resulting code on a cluster requires only one (relatively, see 'fallacies of distributed computing') simple addition, a way to pass messages between statemachines on different nodes.

The end result of all this is that what was an absolutely gargantuan knot of hard to read code became almost trivial by comparison, each statemachine is so simple that the business logic portion is usually less than a page of code or so (with a few exceptions), and all of the boilerplate is abstracted out and taken care of by the macros.

Statemachines are small enough that they can be tested with ease and can then be glued together using instantiation from within other statemachines.

The main loop of the program reads input and as soon as it has a complete message will instantiate a statemachine to process it and will then send that statemachine the message to set the ball rolling.

I'll see if I can find the time to describe the method in a bit more detail, statemachines communicating using messages is a powerful metaphor for many programming problems and I think it comes into its own when you're making really complicated systems that have to be very predictable and reliable.

Note that even though there are some parallels with threads threads are simply multiple paths of execution running in parallel through the same body of code, statemachines are different in that instead of functions calling other functions statemachines operate on a single chunk of data (called the state) and will note the changes to the state by transiting to a new state. Every program you write is in essence a statemachine but you normally don't make the states explicit, instead you embody the (single) state that you've got in the combination of program counter, stack and data memory. That makes the state rather hard to untangle at any given moment.

Using statemachines explicitly breaks up this giant state vector into smaller ones that operate on much simpler pieces of data using a series of permitted operations, the outcome of which is rigidly defined.

I hope this all makes sense (it's 6:15 am and I haven't slept yet...)
Meh, I was just being lazy and should have done it yesterday. No harm done.
Startups Adjust to Web's Down Cycle
I could see myself using this.
I made a similar minesweeper solver that employs many of the same techniques. It really is an interesting algorithm to play with and involves some deep delving into combinatorics and probability. Glad to see someone else had the same thought process (or obsession)!

You can play with an HTML5 demo here: http://mrgris.com/projects/minesweepr/demo/player/

One fun side-effect is that once you have the core algorithm, you realize there's no reason minesweeper must be constrained to a grid. It works just as well on hexagonal tiles or on the surface of a cube.
No, this is now the latest template. That's what I'm using in all my books now, and it's coming from a more advanced project for writing music books http://orkestrix.org/

My goal was, if I could write about code and music at the same time, then making a build system for books would be easy. The above is the end result of that work. Enjoy.
I've always wanted to dive into these guys. Is there a good introduction for fluent Haskell programmers somewhere?
I admit, some of the draw of that gig was my curiosity of "how on earth is what he's trying to do possible?" Alas, it turned out that my original intuition was correct.
I don't use raw LaTeX anymore. Check out the new README and latest repo as I've switched to rST and full on Dexy to do the build.
When I was 11 my neighbor paid me $7 to wash his car. Is this what Cherry was about?
No, I advise against telling students to use it unless they're ready.

Use whatever the hell works for you if you're writing a book. Well, except Microsoft Word.
Minecraft: The Story of Mojang[1], just released this morning, is really good. It looks at Markus' original idea, the expansion of the company, the small team environment working on something huge, and lots of the other areas that the game has infiltrated in the past 3.5 years.

If you're including The Indie Game Movie, I'd say it's as least as qualified.

[1]: http://redux.com/minecraft-movie
The key insight is that they're essentially the same thing.
Well that's what CSS was supposed to do, but since it never gave us a way of equalizing heights except for tables...

Then tables are obviously the way to go.

Resorting to JavaScript hacks when HTML/CSS provides you with a solution, despite it being "non-semantic" in some people's eyes, seems unnecessary. (Of course, there are cases where tables won't work either, and JS is your only option.)
As opposed to your layout being entirely dependent on JavaScript? I'm not sure I see the difference between requiring JavaScript code to manipulate the layout versus using CSS to do the same. Why is one better/worse than the other?
It's not like they needed 28 people, assigned 28 feds to work on the project and then hired 28 contractors so the feds didn't have to do anything, but that appears to be what you are implying.

Like most large organizations, the government has tons of different projects going on at the same time. When they take on a new project, sometimes they use actual federal employees, sometimes they use contractors with federal oversight. Sometimes they use a mix of both feds and contractors. It usually depends on what kind of funding they can get approved. They do not often hire more people than they need for a particular project, because right now it's pretty hard to get money for anything, and most politicians remain grossly uninformed about the significance of anything having to do with computers.

It's a fact that an enormous amount of taxpayers' money that gets wasted each year, but pen testing vital SCADA systems across the U.S. doesn't seem like a waste of time to me. I know that the article mentioned nessus, netcat, and nmap, but the tools that are used in the security world don't matter nearly as much as the people who are using them. Also, do you think that the NSA is really going to tell you every single piece of software that they are using for penetration testing? They were merely giving examples.
While true, all crime in the US has dropped significantly in the last 20 years. Many have suggested Roe v Wade had a big impact in this, but I'm not sure it's conclusive. From Freakanomics, the theory being that many would be kids in bad situations would have ended up as criminals 18 years later were instead aborted. This has led to a big overall crime drop.

Whether it's actually because of this isn't the point though, crime has dropped a lot everywhere, and the violent crime in DC is still much much higher than other places with far less strict gun control.

FWIW, the strict gun control in DC started in the late 70's. It may have gotten stricter over time, but I'd say it's a stretch to say that it getting stricter 15 years later was causal to the crime drop.
Most of this is true, but I found that it completely falls flat on its face once you want to do any reasonable HTML output. htlatex is an abomination that should be destroyed in the fiery pits of hell after some long quest with a ring and some hobbits.
check out: http://www.snapshopinc.com/solutions/
Story Research
Pardon my ignorance, but what made this a great idea? I'm not overly familiar with the company, but it seems like yet another "instead of going to place X to have service Y, X will come to you." It doesn't strike me as entirely novel. And most businesses following that pattern sputter out because they're just not scalable or there's little demand.

$5.25 MM seems like an awful lot of money for something with seemingly few exit opportunities. So I assume there's something I'm missing here.
Why are critical systems like powerplant control on the internet?

Or are they talking about the old "drop a usb stick in the parking lot and hope some idiot plugs it into their control panel computer" approach?

In which case I say crazy-glue the usb ports and devices like mouse/keyboard into the system.
You say you've done your research, but you still clearly don't get the concept. Any authentic high-level hacker worth the name that you might contact will hack your script by deliberately giving you wrong information. For the Lulz.
The Aviator?
Linux had a working version when the FSF had a longterm vision. There is nothing impossible in their design and more complex systems such as Windows or Inferno/Plan9 exist. In the case of Windows imagine how many hours were spent in its design. When Linux came out it worked and everybody was shocked, Hurd was never able to do this.
He derives his power from engineered gear, but he himself isn't an Engineer.

Also, the batmobile is rather poorly designed. With its underbody being so flat against the ground, it is incredibly vulnerable to IEDs, to say nothing of a stray bit of rubble.
Collaborative list building is a great idea.