skysight-inc/HackerNews huggingface dataset:
This has nothing to do with whether you read it from "a (template) file" or "the database", it's only about what _format_ it is in. If the template contains HTML, then the conversion to HTML (for the HTML part) is the identity function, of course, the same if the database contains HTML - if you want to use the same thing in a plain text email, you will have to convert to plain text. If, on the other hand, the template file or the database contains plain text, the reverse applies: conversion to plain text is the identity function, conversion to HTML is the usual replacement with entity references.

That you are using "dirty/tainted" and "clean" only shows how deep the confusion is. There is some justification to use those terms when talking about before and after validation, but other than that it's probably an indication of confusion (which also seems to be the common usage).

Take, for example, a general plain text field for optional free-form text. There is essentially nothing that could be validated (other than maybe that it's a valid UTF-8 string). Now, you want to generate a plain text email using the user input - how would you "sanitize" it?

There is nothing "better"/"cleaner" about any particular encoding, be it plain text, HTML, SQL, or any other, they are simply different encodings, and you have to always use the correct one, not the "best one"/"cleanest one", and you have to always know what format the data that you are processing is in so that you can convert correctly.

This jargon is not at all concise, actually (some people mean "remove 'strange' stuff/clean it", others mean "escape it", ...), and it makes you think in ways that obscure the actual problem that you are solving: Conversion between data types/data representations.
I wonder if it's a coincidence that 1, 4 and 9 are also the squares of the first three natural numbers. And, consequently, of course the relative dimensions of these: http://en.wikipedia.org/wiki/Monolith_%28Space_Odyssey%29
http://ehcache.org/
http://ehcache.org/documentation/configuration/fast-restart#...

Based on a quick googling, this looks like it would be an example of that. Frankly, I don't normally want my cache to persist so it isn't something I know much about. [e.g. I store persistent data in Cassandra or MySQL]
> Nothing about that language prevents code being full of bugs, [...]

Certain classes of bugs are impossible. You can still introduce all the possible bugs.

> Certainly, a competent Haskell programmer [..] will not introduce hidden side-effects.

I know this was meant as sarcasm, but even an incompetent Haskeller can not introduce hidden side-effects.
I recall reading that this was a big problem with downtown Denver back in the 60s or 70s. The whole downtown area was covered in parking lots because people were sitting on land waiting for it to go up in value. It was having a negative impact on trying to turn downtown into an attractive hub for more business to come in.

edit - found it http://usa.streetsblog.org/2013/05/13/how-denver-repaired-it...
"Conflate" is very often, and properly, used to mean "treating two unrelated things as though they were related," which I believe is exactly what the poster meant to say you are doing. You can make an argument that "trying to conflate" would be more accurate, but only if you're more of a linguistic prescriptivist than most editors.
Might not be Java but still interesting, it made me think of one of my favorite little quirks in C++:

#include <cmath>

//Floating point model: Strict:Precise:Fast
//Will code execute
float a = nanf("");
if (a == a)//S:No P:No F:Yes
(do something);

if (a != a)//S:Yes P:Yes F:No
(do something);

if (a < 0.f || a > 2.f)//S:No P:No F:Yes
(do something);

if (isnan(a))//S:Yes P:Yes F:Yes
(do something);

NaN's (Not A Number) can propagate a long way through your code, possibly reaching places where they cause real problems. When dealing with input, especially networking, one should always check for NaN's. Basically the rule with NaN's is: The comparison always returns false if any NaN is involved. But as you can see; specifying the fast model throws that out of the window. (Code was otherwise unoptimized.)

In the third statement an otherwise fine check is done to make sure the value in a is sane, it doesn't get changed but its certainly not what you'd want it to be.

Whole lots of fun can be had when serving this to game servers. :D
Mozilla moving forward
Different experiences, I guess. Your "contrived use case" is my "only reason I've ever used strstr". That said, I haven't done a ton of C programming, so maybe my experience is atypical.
I don't think you can say that he does not own copyright.

I have worked in and paid attention to employment law as far as it pertains to copyright in both California and New York. From what I have been told by competent lawyers in both states, this would be an open and shut case. Even if the contract didn't say anything about it (which would be extremely unlikely), work done by an employee on a project related to what the company does is a work for hire and therefore belongs to the company.
Hello and welcome to the gail.com FAQ.
Here's the most complete crt emulator I've seen: http://www.jwz.org/blog/2011/01/cathode-vintage-terminal-emu...
I agree with Steve here - in this instance a catalogue of code examples would be much a great deal compelling than natural language explanations.
noelwelsh, thanks for the comment! Timestamps do fail pretty miserably for handling conflict resolution - while my algorithm does use timestamps, the timestamp is hardly responsible for the actual synchronization. It just provides a basis to initially sort things off of, and then the conflict resolution kicks in. Obviously I'm going to need to do a pretty detailed post on how this works, cause unless it can be battled-tested and skeptically investigated by others, it is only as good as snake oil. So more on this soon! Thanks for bringing it up.
also read:
http://blogs.law.harvard.edu/doc/2014/04/12/earth-to-mozilla...

https://news.ycombinator.com/item?id=7584900

was on HN homepage earlier in the day.
It's way too easy to cause a massive blackout in the US
"If only you could see the things I've seen with your eyes"
You don't need the HTML here. Just put in double spaces instead... good luck on your hunt. I'd stay away from odesk and try to build up your personal relationships with folks. Find some local meetups if possible... even if you have to drive to a larger city.

Edit: Go re-read your resume. The opening paragraph is too long. Focus on things you have accomplished. You are too self depreciating... remove the stuff about IRC and how you had to break your bad habits. You are not selling yourself well. More self confidence in your presentation of yourself will go a long way.
Encrypted 32gb microSD card containing all sensitive information removed from phone prior to flight/border checkpoint thus rendering what is on the phone itself to be unimportant and maybe even substitute another password-protected microSD card with interesting but non-sensitive info (maybe a risqué photo or two of the wife and some saucy conversations)?

Anyone know if something as small as a single microSD card positioned in the densest part of the suitcase will show up on an X-ray?
This actually sounds like a pretty cool and useful project, but I had to force myself to overcome the site, which I think does a poor job of marketing.

The headline is a bit confusing -- it's not obvious that something can be "embedded" and "distributed", let alone "massively." You might rewrite it to tell me what the project does, not what it is.

Besides that, as a developer, what I want to know is:

- Why should I use it? (Instant in-browser storage synced to a distributed server network)

- How is it implemented? (it seems to be a javascript project, but that's only mentioned once)

- How do I run it? (It run daemons on servers and stores the data in S3)

- What do I have to do to configure it? (Seems to me like "The granularity and frequency of these snapshots can be tweaked by you" means "Prepare to get elbow-deep into telling gun how to shard")

If you just take the answers to these questions and make them either bullet points up above the video, or headers for your marketing essay, it would help people like me digest the project enough to be interested and read more.

Finally, while I'm being a grinch, I'd adjust your styles just slightly to make the site more readable. At the very least:

- Make `#main` narrower; perhaps 700px or even less (long lines are hard to read)

- In `body`, apply a line-height of maybe 20pt (the lines seem too close together for the font size)

- Also in `body`, drop the text-shadow. Shadow on white tends to just make things look blurry.

All that said, I am interested in learning more. A self-hosted Firebase would be a real boon for many projects.
Of course, we've been told that a clean-slate design is doomed to failure. But we believe that all traditional OSs have failed and are unfixable. If this is the case, there really is no alternative to clean slate.
I've been using threads to do co-operative multi-tasking, for a while now.

Every place that I'm tempted to write an event-driven finite state machine, or something similar, I spawn a thread instead. I get to write synchronous code, which feels much more natural to me.

For instance my actor, running in a thread, calls a function like advance(). That drops data into an object, and wakes up the main thread, and blocks.

The next time the main thread wants to give processing time to the actor, it describes the world into the same shared object, waked up the actor's thread, and blocks.

Doing a switch like this dozens or even hundreds of times per second seems to work pretty well, especially if the main thread only gives execution to the actor thread when it needs to - inputs have changed, etc.

For my use cases, it radically simplifies my code, and I have a small number of different inputs to handle, so it has been scaling well.
Or you could just make a sequence of several stages itself be a stage, collapsing the preponderance of abstractions like this post talks about. Then, instead of having a mutable property holding a directory, you might just use a function that takes a directory and returns a stage. You could have another function that takes a file and returns a stage. Guess what...this is starting to sound an awful lot like a monad.

Departing a little from the OP's topic, I think it's interesting that your outlined design relies significantly on mutable state ("a property of type directory"). I think one of the biggest advantages of Haskell is its purity, which discourages you from thinking about things in terms of mutable state. This has far ranging positive effects. It makes APIs much easier to understand and use. That in turn results in Haskell programs having MUCH more code reuse than other languages.
I'm still mad about the Brendan Eich thing. Like, mad. I'm totally fine with anybody pursuing whatever kind of political agenda they want, but at the moment you start to derail real progress, the moment you attack one of the best organizations who has literally been busting its ass for the last decade to change the world for no profit...

Well, you declared war. I think this whole debacle should be a rallying cry that we're not going to accept this kind of bullying anymore.

The worst part is, the progressive platform has some really important things to say about the way we live. We're not an equal society yet. We still have more changes we need to make to secure the freedom and happiness of everybody, especially groups that have been historically marginalized.

All the more reason to shut down the bullies who have domineered the narrative, produced nothing but useless bickering, and have sought nothing but divisiveness at every turn in the everlasting quest for more pageviews. I'm looking at you, Gawker.

Don't tolerate this any more. Brendan Eich was just one casualty. It's time to start sticking up for ourselves.
I just wanted the Cathode font ...
In my experience, both. It starts with business users creating rules without having a clue what they are doing and it ends with the system becoming so complex that it would have been better off being written by engineers using tools more appropriate for the job.

Typically what happens is that business discovers they can now implement every last feature they desire without getting any push back from engineering so they go wild implementing new features without realizing the consequences. There is no VCS, no QA, no testing. There is no one telling them they cannot do something because it won't scale, it isn't secure or it won't be maintainable.

Their only metric for success is that they get the result they want now and the long term consequences be damned. Worse yet, every single person using the rules engine is acting independently and not as a team. There is no code review, when the rule works to their satisfaction it gets pushed into production.

At first everything works fine and people get promoted for saving money on engineering costs but then the rules start getting more complex, start becoming composed of other rules, need to have more complex actions or need to integrate with third party systems. Eventually the simple rules engine turns into a bastardized programming language that everyone adds onto and never modifies because no one understands how a modification will affect the 4000 other rules in the engine. At that point you end up having to do a complete re-write, which is something I have had the displeasure of doing in the past.
Reminds me of running pouchdb in the browser and couchdb on the servers. Except for the automatic conflict resolution bit, which of course is where the real magic is.

> It gets data synchronization and conflict resolution right
> from the beginning, so it never has to rely on vulnerable
> leader election or consensus locking

Super curious about how this works.
I'm withholding my judgment on the tech - it all seems a little too good to be true - but the copy on your page is great, I actually read every line of it which rarely ever happens when I visit a technical page.
How do I get started with full stack JavaScript?
I'm a Django web developer but am looking to switch to full-stack javascript. However, there are so many tools and libraries that people deem standard when it comes to javascript development that the learning curve is looking quite steep. Choosing between all the MVC frameworks, build tools, package managers, etc is a bit overwhelming. Any advice on how to get started as painlessly as possible?
Hey Mark, I'm interested in several different features.

First off, you make a great point about "Hosting your own database is a pain" and/or expensive. I'm sure you know about the raging debate that has been happening between MapReduce and Parallel DBs, and a big part of the reason that MapReduce (Hadoop) style has had so much support is because it's easy and cheap. In lots of instances it may run slower, but why pay for the hassle when you can just run Hadoop for free (not including server costs)? You're making the same point here. Whats the threshold on money savings? How much does it cost to use a DaaS (SQL or NoSQL) compared to what you want to do with Gun/Redis? (Also, is this going to be open source?)

Next, the conflict resolution should be interesting. What kind of eventual consistency guarantees are you hoping to have? I see you're planning on addressing this.

I'm also interested in the querying. That is, are you using Javascript? My problem with what you're saying about current query languages is that it's not really that hard to get the bare usage out of them. Simple queries in SQL are extremely straightforward. In addition, declarative languages really make things easier for the programmer, not harder. Who wants to have to deal with all the nuances of a join? Certainly not me.
StoreDot: Answer to Smartphone Battery Problems, Recharge it in 30 seconds
Those are the exact same steps it would take to learn to use Sublime Text!
This is the reason why we believe the Tao--the way--is essential to an OS. It is the programming paradigms and use, combined with OS semantics, which is the genius of UNIX.
Great suggestions! Already fixed one of the things, and working on updating the others! (Although content will take a while longer). Thank you so much.
You have to get a lawyer's advice.
"It's time to start sticking up for ourselves"

Can you clarify what group does "ourselves" reference?
Linux based? Well fuck Technicolor then, there's no mention of GPL source code... and I would not be surprised if it's U-boot based.

As for the "fuck" part, AVM with the Fritzbox ain't a bit better, though. Looks like all cable routers are locked down and no sources available - probably to prevent people from building DOCSIS sniffers or network disrupters (30-apartment house, all connected via DOCSIS on one link, now good luck finding the asshole).
Bootstrapping, not an excuse for being cheap | The Startup Guy
Building Carousel: How we made our networked mobile app feel fast and local
Brilliant: "Rather than trying to bring as many customers as possible on board, start with just a few perfect customers: the kind who you can build your product for and who will adore your product once they put it to work. Until you have that handful of fanatical customers, you shouldn't focus on scaling your customer base."
> But this is a valid point. If you're using company hardware and resources, you're arguably spending resources owned by the company.

Really? you are going to try to defend this point of view?

OK, so he should just pay $3.50 for the electricity and internet he used for those commits and everyone will be happy.
What I would love is a site(s) that lets me get all that stuff used, in decent condition and quickly.

It kills me how much money is dropped on kids stuff that is not used for a significant period of time.
My next internet router is going to be a solar powered flying machine?
Yes it does! Preferences -> Font, and under “Modern”, it will let you use any monospaced font.
AngularJS Directives, Using Isolated Scope with Attributes
I found the header image a bit disconcerting, and immediately hit Back (I'm at work).
I think you are missing my higher point. I am not defending JS or C++ for that matter (please note that I was not using C), but the fact that giving enough time you can break most languages to do something silly, in which case I don't blame the tool but the people using it.
Another effect of the internet is that it is now trivial to find out the second-hand value of something.
Are the rates displayed invalid when routing outside of the San Francisco area? I see the callout, but it still seems to work..
HTC used to have an iconic clock on their Android handset, for which they always used 10:08 in marketing materials.

This probably stems from a tradition in advertisements for analog watches. They are usually set to some time between 10:08 and 10:10. Not only is this setting symmetric and therefore pleasing to the eye, but also any printed brand name is clearly visible and unobstructed.
> Misinterpretation, not bullshit.

Fair enough. I'm still curious about the generation method though: I can imagine that testing all texts ever published takes $200k if you go up to 40 characters, but if you use a unique text it might be different. There are a lot of variables here, including honest misspellings, punctuation use, spacing (non-tech people seem to find spaces weird in passwords), capitalization, usage of names, etc.
This font even takes into account the imprecision of analog scanlines — the lines that make up the characters are subtly rounded. It’s a very enjoyable font, though a bit impractical :-)
Come to think of it, Maven maps plugin goals to execution phases in a "monoidal" way. Each plugin has a number of goals, and each goal can be mapped to one or more phases: https://maven.apache.org/guides/introduction/introduction-to... In a way, each plugin is a "mini-lifecycle" in itself.

When more than more goal is mapped to a phase, the order of execution corresponds to the order of the plugins in the POM (which means that "plugin aggregation" is associative).
Check out zidisha.org. They explain why micro-financers have to charge up to 40% (!!!) interest to cover loan management costs.

They have a new, eBay-like take on micro-financing. You earn about 5% on your loan, while knowing 50% of loans will fail.

I like their concept and plan to throw a couple hundred into the wind and see what happens.
The future will tell about Ethos' success. But I think the earlier adopters will be the tech savvy community that wants security & privacy and buys into Ethos' programming model.
Specifically, it's not obvious why a Tesla-owned "store" would employ fewer people than an independent "dealer".
There is a stark contrast with how Drew Houston of Dropbox defended Condi Rice vs Mozilla's lack of effort in defending someone that instrumental part of what Mozilla is today.

https://blog.dropbox.com/2014/04/our-commitment-to-your-righ...

His pointed response is short and stern. "We’re honored to have Dr. Rice join our board"

Mozilla's was apologetic.

"We didn’t act like you’d expect Mozilla to act. We didn’t move fast enough to engage with people once the controversy started. We’re sorry. We must do better."

If Drew is the chairman of Mozilla, he would said. "In 16 years that Eich was in leadership position in Mozilla, he welcomed and worked with everyone with different personal beliefs, religious values, and sexual orientation. We are honored to have the creator of Javascript as our CEO". End of story.
"the moment you attack one of the best organizations"

Nobody attacked Mozilla. You're totally off base.
Anything that I do with my time, my equipment and my brain outside paid work hours belongs to me. If there was a contract that insisted on it not being so, there is no need to offer the said clause the protection of law.

You are speaking on a matter of what you feel is moral right, not what is law. As a matter of law, I know that New York State a decade ago was set up so that, by default, a professional employee (ie anyone who doesn't punch a clock and isn't a contractor) is considered "always at work". The default is that everything you do is owned.
It's a valid question regarding why we'd sell it when we don't do much on it and it's bringing in cash. We're really occupied with our new venture, so we have no time to work on it. On the current trajectory, with no input from us, it will slowly fade away. Eventually the cost will outweigh the profit and we'll still have an obligation to our customers. Honestly, it may turn out that keeping it is the best option, that's why we're going to write about it as we progress.
I don't want to sound overly enthusiastic, but I do
think that this fits the bill 90% of the way.
Great presentation[0]; pricing explicit and almost
exactly what I would have imagined; and, of course,
sane pick-up and delivery. I even hunted around for
a spelling mistake to have something on the opposite
side of the ledger. No such luck.

Alas, I'm a few thousand miles short of becoming
a valued customer.

Now, hopefully, you're wondering about that last
10%: It's point 2 in your "How it works":

> Pack your things carefully and take pictures of the contents.

I'm sure legal would have a word or two to say about
that, but: how much would it set me back if you
did that, together with providing a rough
description of the box' contents? This, then,
would appear on my account page's List of Boxes.

The details are devilish, of course, and
supreme caution is indicated: you don't want
a prominent "take-a-peek" option to adversely affect
the trust of your more privacy-conscious clients.

[0] Which, incidentally, doesn't appeal to me, as I am
solidly in the tarsnap aesthetics camp, but we both
know what to make of that.
Each city has different prices and availability. I assume this will work for anywhere, but will use SF prices.
Since this has the scanlines “baked in”, just be sure to disable Cathode’s own emulation or it’ll be pretty ugly.