Removing duplicate lines from files keeping the original order with Awk - <AUTHOR> https://iridakos.com/how-to/2019/05/16/remove-duplicate-lines-preserving-order-linux.html <comment><USER2> I have a collection of such one-liners, for duplicates including how to form key for multiple fields, see [1]

[1] [https://github.com/learnbyexample/Command-line-text- processi...](https://github.com/learnbyexample/Command-line-text- processing/blob/master/gnu_awk.md#dealing-with-duplicates)

<comment><USER3> Wow this is great. I want to become more competent with text processing in the command line and this looks like a great place to start.

Thanks for linking this repo!

</comment></comment><comment><USER4> Awk is wonderful. It's an odd way to write programs, but for quick one-off processing tasks it almost can't be beaten.

Somewhat related blog post which I like to refer people to: "Command-line Tools can be 235x Faster than your Hadoop Cluster" [https://adamdrake.com/command-line-tools-can- be-235x-faster-...](https://adamdrake.com/command-line-tools-can- be-235x-faster-than-your-hadoop-cluster.html)

<comment><USER5> Article's like OPs about removing duplicate lines make me want to learn awk.

But it feels like it would be a net loss based on how seldom I currently need to write one-off scripts.

Based on experience, I'd probably have a perfect use-case for it every 2-3 years.

<comment><USER6> Even if you do, it's a better investment to learn a general high level language with strong scripting capabilities, but that is also good at many things else.

Sure, the days you'll need awk, you'll take 15 minutes instead of 2 writing your script. So what ?

But the rest of the year, you'll have a more versatile toolbox at your disposal for automatic things, testing, prototype network processes, make quick web sites or API, and explore data sets.

That being said, I can see the point of learning awk because, well, it's fun.

<comment><USER7> > Even if you do, it's a better investment to learn a general high level > language with strong scripting capabilities, but that is also good at many > things else.

And we already have that: it's called perl. :)

<comment><USER6> I tried very hard not to name a specific language so that the point is not cancelled by some lang war.

</comment></comment></comment></comment></comment><comment><USER8> And here is the ungolfed version:

awk '{ if (! visited[$0]) { print $0; visited[$0] = 1 } }'

<comment><USER9> Much more readable and understandable.

<comment><USER10> You can always write AWK in a file and read the script with -f, making it fully readable (and AWK is quite a pleasantly readable and surprisingly versatile language to write at that point)

<comment><USER2> to add to this, if you've coded one-liner first, you can convert to script using -o option

for ex:

        awk -o '{ORS = NR%2 ? " " : RS} 1'

gives (default output file is awkprof.out)

        {
            ORS = (NR % 2 ? " " : RS)
        }

        1 {
            print $0
        }

<comment><USER10> I wasn't aware of this, might come handy for "one liner edge cases".

</comment></comment></comment></comment></comment><comment><USER11> You need "gawk -M" for this for bignum support, so visited[$0]++ doesn't wrap back to zero, otherwise it is not correct for huge files with huge numbers of duplicates.

The portable one-liner that doesn't suffer from integer wraparound is actually

       awk '!($0 in seen) { seen[$0]; print }'

which can be golfed a bit:

       awk '!($0 in s); s[$0]'

$0 in s tests whether the line exists in the s[] assoc array. We negate that, so we print if it doesn't exist.

Then we unconditionally execute s[$0]. This has an undefined value that behaves like Boolean false. In awk if we mention an array location, it materializes, so this has the effect that "$0 in s" is now true, though s[$0] continues to have an undefined value.

<comment><USER12> > huge files with huge numbers of duplicates

At least on the stock MacOS awk, you can get up to 2^53 before arithmetic breaks (doesn't wrap, just doesn't go up any more which means the one-liner still works.)

        > echo '2^53-1' | bc
        9007199254740991
        > seq 1 10 | awk 'BEGIN{a[123]=9007199254740991;b=a[123]}{a[123]++}END{print a[123],b,a[123]-b}'
        9007199254740992 9007199254740991 1

Even with one character per line, you'd need an 18PB file before you got to this limit, afaict.

</comment></comment><comment><USER13> On a previous post people were complaining that math wasn't as clear as code. I'd argue that this this is exactly the kind of code-like clarity math notation provides you. I makes perfect sense, but only after 2 full pages describing what's going on in one line.

</comment><comment><USER14> Where I run into trouble with awk is gawk incompatibilities with the implementation on Mac. The gawk manual really sucks at telling you what exactly is an extension to the language, and I haven't been able to find a good source -- you just have to either guess and check, or cross-check against other ones' manuals (like BSD). Otherwise it's an amazing tool...

<comment><USER2> I thought the gawk book/documentation [1] did a good job of mentioning differences between various implementations, do you have an example?

You might find this [2] helpful (oops, seems like it got deleted, see [3] - thanks @bionoid)

[1] [https://www.gnu.org/software/gawk/manual/gawk.html](https://www.gnu.org/software/gawk/manual/gawk.html)

[2] [https://www.reddit.com/r/awk/comments/4omosp/differences_bet...](https://www.reddit.com/r/awk/comments/4omosp/differences_between_gawk_nawk_mawk_and_posix_awk/)

[3] [https://archive.is/btGky](https://archive.is/btGky)

<comment><USER14> > do you have an example?

Sure, try this:

      echo 1 2 | awk '{ print gensub(/1/, "3", "g", $1); }'

The logical thing for them to do would be to mention in bold and/or big and/or red font under gensub's documentation that it's an extension (e.g. try nawk), whereas looking through it I don't see any mention at all: [https://www.gnu.org/software/gawk/manual/html_node/String- Fu...](https://www.gnu.org/software/gawk/manual/html_node/String- Functions.html#String-Functions)

If I may rant about this for a bit, GNU software manuals are generally rather awful (though they're neither alone in this nor is it impossible to find exceptions). They frequently make absolutely zero effort to display important information more prominently and unimportant information less so (if you're even lucky enough that they tell you the important information in the first place). Like if passing --food will accidentally blow up a nuke in your hometown, you can expect that if they documented it at all, they just casually buried it in the middle of some random paragraph. Their operating assumption seems to be that if you can't be bothered to spend the next 4 hours reading a novel before writing your one-liner then it's just obviously your fault for sucking so much.

<comment><USER15> While I agree it should be more obvious, it does say in the opening section:

> Those functions that are specific to gawk are marked with a pound sign > ('#'). They are not available in compatibility mode (see section Command- > Line Options)

<comment><USER14> Oh dear lord. I've looked at that page probably twenty times in the past year and still not seen the note about that pound sign. Thanks for pointing it out. Man it's infuriating.

</comment></comment></comment></comment></comment><comment><USER16> This is a nice little run through of a real life example.

Once you realise that awk's model is _' match pattern { do actions; }'_ everything makes a whole lot more sense.

<comment><USER17> Awk also supports BEGIN and END actions that take place at the start and at the end of execution.

BEGIN might be used to initialise Awk variables or print initial messages, while END can be used to print a summary of actions at the end.

See [1] [https://www.grymoire.com/Unix/Awk.html#uh-1](https://www.grymoire.com/Unix/Awk.html#uh-1)

<comment><USER10> You can also use either BEGIN or END as the only entrypoints, essentially using AWK as you'd use any other programming language. Yes, sometimes this defeats the point of what AWK excels at, but it's good to know.

</comment></comment></comment><comment><USER18> There was a twitter thread ages ago where someone had written a collection of (php?) utilities - and the twitterer posted a laughing slap down saying why write a utility when this one liner and that one liner will do?

There was a lot of push back - and this article is a good example of why

If I wanted to remove duplicate lines from a file I would almost certainly _not_ use awk

I have never spent the time to get good enough with the _whole new and different languge_ of awk, and am unlikely to need to (my large scale file processing needs seem small, and if I do it's almost always in context of other processing chains - so a normal languge like python would be the natural choice

I could whip up something like this in python in a less time than it would take to google the answer, read up why the syntax works that way and verify I have not mistyped anything on a few test files.

Basically using awk takes me out of my comfort zone - for a one off task it loses me time, for a production like repeat task I am going to reach for a slew of other solutions.

I mean the title of this page loses the exclamation mark - and it took me two goes to spot it.

<comment><USER19> For many years my AWK knowledge was limited to basic '{print $1}' style usage. I never bothered to learn more. I tended to use perl when I needed a custom text-processing operation. Later, as perl became less a part of my working life, I began using ruby instead - they are pretty similar in spirit.

One day, nearly 20 years after it was published, I picked up a used copy of The AWK Programming Language by Aho, Kernighan, and Weinberger. Yes, they are credited in that order on the cover... I suspect intentionally. I only read the first N chapters, but it was enough. I used AWK many times within the following month, and I continue to use AWK on a daily basis. When the task is complicated, I will still use ruby, but often enough AWK is easier.

The point: you think "Why would I learn X when I can use Y?", but you won't really know the answer until you learn X. If I had never learned perl, python, ruby, AWK, shell script, vi macros, then I would probably be editing files by hand (!) like I sometimes catch developers actually doing (!!!). For a person who doesn't know these tools, that might actually be the path of least resistance. Investing some time here and there to learn new tools pays off in the future in ways that are unpredictable.

<comment><USER20> The basic imperative Python version is much easier to remember and read though, even for not-that-experienced Python programmers. I would expect laypeople to be able to more-or-less figure out what it is supposed to do.

      seen = set()
      with open(filename, "r") as file:
        for line in file:
          if line not in seen:
            print(line)
            seen.add(line)

Often (at least in my experience) this kind of operation is either (a) part of some larger automated data processing pipeline for which it's really nice to have version control, tests, ... or (b) part of some interactive data exploration by a programmer sitting at a repl somewhere, not just a one-off action we want to apply to one file from the command line.

In those contexts, the Python (or Ruby or Clojure or whatever general-purpose programming language) version is easy to type out more-or-less bug-free from memory, debug when it fails, slot into the rest of the project, modify as part of a team with varied experience, etc. etc.

<comment><USER21> One advantage is that

      seen.add(line)

can be changed to

      seen.add(hash(line))

which can be significantly more memory efficient for files with long lines.

<comment><USER20> Or perhaps better, if needs change the seen = set() object can be swapped out for any alternative object seen = foo that provides foo.__contains__ and foo.add methods.

This could involve saving previously seen lines in a radix tree, adding multiple layers of caching, saving infrequently seen lines to disk or over the network, etc. as appropriate for the use case.

</comment></comment></comment></comment></comment><comment><USER22> Got to love awk. My weapon of choice for ad hoc arbitrary text processing and data analysis. I've tried to replace it with more modern tools time and again but nothing else really comes close in that domain.

<comment><USER23> Interesting Ruby (MRI anyway) has command line options to make it act pretty similar to awk:

-n adds an implicit "while gets ... end" loop. "-p" does the same but prints the contents of $_ at the end. "-e" lets you put an expression on the command line. "-F" specified the field separator like for awk. "-a" turns on auto-split mode when you use it with -n or -p, which basically adds an implicit "$F = $_.split to the while gets .. end loops.

So "ruby -[p or n]a -F[some separator] -e ' [expression gets run once every loop]'" is good for tasks that are suitable for "awk-like" processing but where you may need access to other functionality than what awk provides..

<comment><USER2> I'd say it is more similar to perl than awk for options like -F -l -a -n -e -0 etc. And perl borrowed stuff from sed, awk, etc

I have a collection for ruby one-liners too [1]

[1] [https://github.com/learnbyexample/Command-line-text- processi...](https://github.com/learnbyexample/Command-line-text- processing/blob/master/ruby_one_liners.md)

<comment><USER22> Sed and Awk had a child and named her Perl. When Perl grew up she underwent an epigenetic shift and became Ruby!

</comment></comment></comment></comment><comment><USER19> See also, 'nauniq' (non-adjacent uniq), an implementation of this text- processing task as a full utility, with some convenient options for reducing memory usage:

[https://metacpan.org/pod/distribution/App- nauniq/script/naun...](https://metacpan.org/pod/distribution/App- nauniq/script/nauniq)

</comment><comment><USER24> I was wondering how awk work internally. Does it compile the script then run it ? Is it bytecode or lower level ? A finite state machine ?

<comment><USER25> They parse the script to a parse tree (abstract syntax tree) and then either interpret that directly (tree-walking interpreter) or compile to bytecode and then execute that. The original awk ("one true awk") uses a simple tree- walking interpreter, as does my own GoAWK implementation. gawk and mawk are slightly faster and compile to bytecode first.

If you're interested, you can read more about how GoAWK works and performs here: [https://benhoyt.com/writings/goawk/](https://benhoyt.com/writings/goawk/)

<comment><USER26> Did gawk change to bytecode interpreter recently ? As far as I can recall it used to be an AST walker. Wonder if I am misremembering things. Mawk used tobe more than 'slightly' faster than gawk. Maybe the recent change to bytecode have brought their perf characteristics closer.

</comment></comment></comment><comment><USER27> I have taken as rule to use awk only for trivial tasks and to switch to perl as soon as the syntax is slightly beyond my usual use cases. In perl, I would do:

        perl -nle 'print unless exists $h{$_};$h{$_}++' < your_file

<comment><USER2> perl borrowed stuff from awk, so you could also do

        perl -ne 'print if !$seen{$_}++'

<comment><USER28> Play a round of perl golf?

        perl -pne '$_=$#$_++?$_:""'

I'm rusty at this but shaved off six chars, five if you count the 'p' added to switches.

<comment><USER27> I have never seen this $#$var trick and google is not the friend of perl operators. Do you have any explanation ?

        perl -ne 'print if!++$#$_'

seems to work also

<comment><USER29> If you have array @foo in perl, $#foo is the index of the last element of the array, which is just the size of the array -1. So if @foo is undefined, $#foo is -1.

Using a variable instead of 'foo' is a symbolic reference, so this is effectively using the symbol table as the associative array. This means that this solution also gets it wrong if your file contains a line that matches the name of a built-in variable in perl. That would be tough to debug!

If your file contains

        This is the first line of the file

then during execution of

        ++$#$_

the result is the same as if you had written

        ++$#{This is the first line of the file}

So the variable @{This is the first line of the file} goes from undefined to an array of length 1, turning $#{This is the first line of the file} to 0.

Incidentally, this is why the snippet fails to work for a line repeated more than once: for each occurrence of the expression, the value returned is in the sequence -1, 0, 1, 2, 3, ... so it is only false for the second occurrence.

Using preincrement instead of postincrement means the values returned are 0, 1, 2, 3, ... which means that inverting the test makes it false for every occurrence after the first.

</comment></comment></comment></comment></comment><comment><USER30> Me: Wow, that associative array looks very powerful. Is there a way to leverage it to do something useful like convert curl-obtained JSON array of file patches from Github's API to the mbox format that `git am` expects?

Unix: No, that JSON data is too structured. But if you have a more error-prone format like CSV I can show you a neat trick to filter your bowlers by number of spares.

<comment><USER31> can't u just process JSON data with jq?

[https://stedolan.github.io/jq/](https://stedolan.github.io/jq/)

<comment><USER30> I'd still need to find a way to massage the data into the mbox format because _that_ is the ancient format that git understands.

I'm not saying that there isn't a way to do that. Only that it can only be done poorly with a big ugly (and probably buggy) spaghetti script that looks nothing like what the expressive demo suggests it should look like.

<comment><USER31> If you're getting a bunch of stuff with curl from GitHub can't you just use curl to get the patches directly from github?

Append .patch to the end of a pr or commit and it spits out the mbox formatted patch.

[https://github.com/jiphex/mbox/commit/f139c575e306a1691a31d8...](https://github.com/jiphex/mbox/commit/f139c575e306a1691a31d8c2f4b44f48984b1267.patch)

<comment><USER30> If you do that with curl it will redirect to the login page. Github obviously wants me to use their API.

I assume this wasn't always the case as the use case I'm referencing is a build script I'm debugging.

<comment><USER31> I just tried running curl on it now and it came back fine without redirecting me.

For a private repo you just need to set the correct options to curl.

curl -Lk --cookie "user_session=your_session_cookie_here" [https://github.com/your_org/your_project/pull/123.patch](https://github.com/your_org/your_project/pull/123.patch)

<comment><USER30> And what is the unix tool I use to automatically retrieve the session cookie and paste it there?

<comment><USER31> Naturally, you use curl. You just instruct curl to save the cookies that the login process sends back to you. Then you reuse those cookies on the subsequent request.

Found an example here.

[https://gist.github.com/d48/3501047](https://gist.github.com/d48/3501047)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER32> The tradeoff of this solution is it stores all (unique) lines in memory. If you have a large file with a lot of unique lines you might prefer using `sort -u`, although it doesn't keep the order.

<comment><USER33> Are you sure this is the case? Perhaps it's only storing the hash of the lines? If not then how do you do that?

IME this one-liner can churn through 100MB of log lines in a second. Other solutions like powershell's "select-object -unique" totally choke on the file.

<comment><USER32> It can't just store the hash of the lines otherwise it would drop lines in case of hash collision.

<comment><USER34> It depends on the implementation, but typically hash tables are used to store the elements and values of associative arrays:

[https://www.gnu.org/software/gawk/manual/html_node/Array- Int...](https://www.gnu.org/software/gawk/manual/html_node/Array-Intro.html)

I suspect that it's designed so that hash collisions are impossible until you get to an unrealistic number of characters per line.

<comment><USER35> I doubt it's designed to silently break in some cases. Unrealistic isn't realistic until one day it is and that is a bad day. I suppose it could just throw an error in the case of a hash collision, but I doubt it.

<comment><USER34> But what does it do, then? The page I links states that it uses a hash table. Hash tables apply a hash function to the key. Hash functions map arbitrary input data onto data of a fixed size. It's inevitable that collisions will occur. ~~even if you use some sort of clever workaround in the case of collisions, eventually you use up all the available outputs.~~ (my bad)

I'm not claiming that it will silently break! I'd be very interested in exploring the internals a little more and finding out how hard it is to get a collision in various implementations and how they behave subsequently.

EDIT: I've read chasil's comment and agree that it must be storing raw keys in the array. I guess awk uses separate chaining or something to get around hash collisions.

</comment></comment></comment></comment></comment></comment><comment><USER36> Awk ' visited[$0]++' or how badly HNs automatic title formatter messes up awk commands :)

Hint: You can edit it after you posted.

<comment><AUTHOR> Done, thanks for the hint :)

<comment><USER36> You are !done yet.

<comment><USER37> I think you meant !done[$bug]++ ?

</comment></comment></comment></comment><comment><USER38> The man page of (n)awk [0][1] is surprisingly short and readable.

[0] `man awk` on mac

[1] online version [https://www.mankier.com/1/nawk](https://www.mankier.com/1/nawk)

[2] gawk's man page works great as a reference [https://www.mankier.com/1/gawk](https://www.mankier.com/1/gawk)

</comment><comment><USER39> If I know this, I wouldn't make [https://github.com/beenotung/uniqcp](https://github.com/beenotung/uniqcp)

</comment><comment><USER33> So then, what is the one liner to preserve the filename rather than get a new deduped.txt?

Also how do you apply that command to the next file using shell history?

<comment><USER40> Use sponge! [https://linux.die.net/man/1/sponge](https://linux.die.net/man/1/sponge)

      awk '!n[$0]++' fileName | sponge fileName

</comment></comment><comment><USER41> open the file with emacs

menu edit -> select all

press 'escape' and 'x' keys together and write: delete-duplicate-lines

done

</comment><comment><USER42> This is very memory intensive. Which may not matter if the data volume is small enough. But it is also a bit hard to understand, at least not so obvious at first sight. For most use cases sort -u would be ideal and way simpler to understand, if you don't mind having an ordered file at output.

<comment><USER38> > This is very memory intensive.

Only for ones not familiar with awk.

It would make a lot of sense after you understand how awk works (as the article explains).

<comment><USER43> That does not make any sense. If it is memory intensive depends on awk, not on the person being familiar with it.

Sois it memory intensive or not?

<comment><USER44> The example AWK script will build an array of every unique line of text in the file.

If the file is large, and mostly unique, then assume that a substantial portion of the file will be loaded into memory.

If this is larger than the amount of ram, then portions of the active array will be paged to the swap space, then will thrash the drive as each new line is read forcing a complete rescan of the array.

This is very handy for files that fit in available ram (and zram may help greatly), but it does not scale.

<comment><USER45> I don't know how awk (or this particular implementation) works, but it could be done such that comparing lines is only necessary when there is a hash collision, and also, finding all prior lines having a given hash need not require a complete rescan of the set of prior lines - e.g. for each hash, keep a list of the offsets of each corresponding prior line. Furthermore, if that 'list' is an array sorted by the lines' text, then whenever you find the current line is unique, you also know where in the array to insert its offset to keep that array sorted - or use a trie or suffix tree.

<comment><USER35> Sure, you only need to compare when there's a hash collision, but you still need to keep all the lines in memory for later comparison.

<comment><USER45> Sure (though they could be in a compressed form, such as a suffix tree), but that wasn't the issue I was addressing.</comment></comment></comment></comment></comment></comment></comment>


HP is jumping into the pot business - <AUTHOR> https://www.washingtonpost.com/news/on-small-business/wp/2018/04/13/hp-is-jumping-into-the-pot-business/ <comment><USER2> Your cannabis oil cartridge is getting low. Please replace it to continue using this vaporizer.

<comment><USER3> Only Genuine HP HighJet (tm) cartridges will dispense properly.</comment></comment>


Borrowing from Solar and Chip Tech to Make Diamonds Faster and Cheaper - <AUTHOR> http://www.nytimes.com/2015/11/12/science/borrowing-from-solar-and-chip-tech-to-make-diamonds-faster-and-cheaper.html <comment><USER2> [https://news.ycombinator.com/item?id=10551210](https://news.ycombinator.com/item?id=10551210) looks related.</comment>


How to be creative - <AUTHOR> http://www.gapingvoid.com/Moveable_Type/archives/000932.html <comment><USER2> Old, but good.</comment>


Introducing ngTranslate - I18n for your AngularJS apps - <AUTHOR> https://github.com/PascalPrecht/ng-translate Tell me what you guys think <comment><USER2> Nice work.

It would be great if you could make the translateProvider have external sources, either a file or service that's downloaded or called on the server. Even downloading Java property files (or something similar) would be really great, since the client could use the same translation files that a lot of back-end devs would be using on the server side.

Edit: just noticed that you linked to some other Angular libraries working on localization. Nice, and helpful.</comment>


São Paulo's Outdoor Advertising Ban (2016) - <AUTHOR> https://99percentinvisible.org/article/clean-city-law-secrets-sao-paulo-uncovered-outdoor-advertising-ban/ <comment><USER3> Several comments from people who live there, all strongly condemning the measure for various unintended side-effects, all downvoted to oblivion.

Whether it's encouraging graffiti, removing important light sources which the city did not pay to replace, destroying culturally significant displays, or promoting sterilized monotony in the surroundings, it seems there are several good reasons why outright banning of advertisements might not be the utopian vision some claim it to be.

Being surprised to learn about viewpoints which contradict the popular narrative is the best you can hope for from a comment section, if the critique is offered in good faith.

<comment><USER4> I think it is worth mentioning that in São Paulo people tend to use the word "grafite" for artful murals and drawings and "pixação" for the stuff that is seen as vandalism. (there are some grey areas but that is the jist of it)

<comment><USER5> One of those grey areas is that there's a large portion of people who do pixação that see their art as an art form.

As an aside, I remember a short Brazilian documentary on São Paulo's "reverse graffiti" (doing a drawing or mural by skillfully removing dirt from a dirty wall, so that the white spaces create an image) where the police detained the artist doing it, despite the fact he was literally cleaning the wall.

<comment><USER6> I could see homicide as an art form and it would still be wrong.

</comment></comment></comment></comment><comment><USER7> I fantasize about American cities doing this. Ads don't make Times Square attractive. They make it wretched. I'd love to see the transformation like the London's pictured in the article.

> _the city would not only lose revenue from absent ads_

The money would have mostly come from residents, with a bunch of it going to the advertisers, who advertise to increase profits, away from the city. I would see the city _gain_ money.

I've seen plenty of billboards for soda and junk food, rarely if ever for broccoli. I imagine the change improved people's health and local farmers' lives.

<comment><USER8> The change made our lives worse, as due to lack of proper light, several streets became too dark and violence increased. And no, nothing change about the way we eat.

<comment><USER9> That's the city's responsibility.

<comment><USER10> A responsibility they are apparently not taking seriously.

<comment><USER9> Still no reason to support ugly advertising.

</comment></comment></comment></comment></comment><comment><USER11> I had always dreamed about a city without advertising, and couldn't wait to visit São Paulo. And when I did, I was completely shocked to discover... I hated it.

Until you experience a lack of advertising, it's hard to imagine quite how gray and boring and non-vibrant a city looks without it. Turns out billboards and panels full of dramatic movies and TV shows, beautiful smiling faces selling makeup and phones... actually add a lot of character to a city and make it feel like things are happening and going on.

Imagine if books no longer had graphic covers anymore, just all solid gray and beige and black covers, and you walked into a bookstore. It feels kind of like that.

If you're going to get rid of advertising, at a minimum you've got to replace it with something -- like a _lot_ of murals, like murals _everywhere_. (The Bushwick neighborhood of NYC has some areas full of street art, which works pretty well.)

<comment><USER12> Go to my hometown, Assisi [0], which is roughly 2,400 years old. A village of ~5,000 people sitting on a hill. Home of Saint Francis of Assisi. Walk around. There's almost no advertising, and yet, it's so beautiful to walk there. It's how a city is supposed to be.

The fact is, Sao Paulo is a brutalist city, not a beautiful one. I suggest you don't confuse the two. Of course you hated Sao Paulo. It's skyscrapers, it's car-centric, it's ugly.

[0]: [https://en.wikipedia.org/wiki/Assisi](https://en.wikipedia.org/wiki/Assisi)

<comment><USER13> I think the point is that if you were to scale Assisi up to ~20m, with a similar population density as Sao Paulo, it would still be ugly. It's a problem of population density.

<comment><USER14> It's a problem of poverty & investment - Vienna or Zurich are not that drastically sparser than Sao Paulo & are for the most part beautiful cities.

</comment></comment></comment></comment><comment><USER4> I'm surprised by all the naysayers popping up in this comment thread. Back when I still lived in São Paulo I remember that the Cidade Limpa law was extremely, almost universally popular.

<comment><USER15> It was.

I worked in advertisement and still can't ignore how terrible the city was with rampant billboards. Attempting to regulate it was not having any effect thanks to easy ways the law could be circumvented by the rich and (legally) powerful.

Banning them outright was a breath of fresh air.

</comment></comment><comment><USER16> A shining example showing that the flood of advertising is not unstoppable. Some US states have also limited it: [https://en.wikipedia.org/wiki/Billboard#Laws_limiting_billbo...](https://en.wikipedia.org/wiki/Billboard#Laws_limiting_billboards)

Hopefully more will follow.

</comment><comment><USER17> Paulista here. This clean city law or wathever is translated into destroyed our beautiful Japanese neighborhood ("Bairro da Liberdade"). Besides we are in dire need of economic freedom therefore this is just another hassle among 1000 regulations we have to follow to open up a simple bakery or emporium.

I'd rather have our cheerful city back than this trashy version of dusty "there was a banner here 2 years ago" marks all over the place.

<comment><USER18> Paulistano here too, and nikkei (so pretty much every weekend went to liberdade and sao joaquim).

I find it easier to walk around Sao Paulo now. And Liberdade is still a special place with the asian lanterns in the lamp posts, the Bradesco building, and there are stores with Noren and signs.

Only difference is that the signs are now proportional to the store facade.

And we still have grafitti that helps to keep the city interesting, as well as our Portuguese stone pavement and other little things that make Sao Paulo beautiful even without all the billboards and ads.

<comment><USER16> > beautiful even without all the billboards and ads.

Rarely do I hear the absence of ads framed as a challenge to beauty. So rarely, it only happened twice - your post, and the post you replied to.

<comment><USER19> people often think that what they're used to is beautiful. If you lived somewhere your whole life and all of a sudden it changed drastically, it's pretty easy to see how the old way could be thought of as beauty.

</comment></comment></comment></comment><comment><USER20> In my opinion not allowing the business to even have their name on their building is a step too far. Removing the billboards sticking out perpendicular to the road looks much better, but this picture that doesn't even have the name of the store on it seems awful [1]. It would be interesting to see numbers for how this affected businesses, especially if those businesses tended to be ones that relied on advertising (food especially).

Forcing people to give directions like "look for the big green building next to the blue building" doesn't seem like a positive to me.

[1] [https://99percentinvisible.org/app/uploads/2016/04/signage-b...](https://99percentinvisible.org/app/uploads/2016/04/signage- before-after.jpg)

<comment><USER4> Business signs are still allowed. The only thing the law does to them is stipulate how big they can be.

For storefronts less than 10m, there can be a single sign of at most 1.5m².

For storefronts from 10m to 100m, there can be a single sign of up to 4m².

For storefronts above 100m, there can be two signs, each up to 10m², placed at least 40m apart.

<comment><USER21> It seems that this law is a good idea executed with an unwarranted degree of severity. I've never in my life heard someone complain that shop signs are too big (it's the small ones that block the street that people hate). The advertising that should be banned is that which provides little value except to the advertisers, such as billboards.

<comment><USER4> Limiting the shop signs was a good thing too. Those big boxy signs were very ugly. Not only did they block the buildinv facade but they wre built out of cheap materials that would fade with time.

[https://99percentinvisible.org/app/uploads/2016/04/signage-b...](https://99percentinvisible.org/app/uploads/2016/04/signage- before-after.jpg)

Before the law, every shop needed their sign to be as big as possible to stand out in the mess. Now that all the signs are smaller it is not a probkem anymore.

</comment></comment></comment></comment><comment><USER8> I live in São Paulo. This initiative was and still is terrible, as propaganda not only works as... propaganda, but also as sources of light during nights.

Several streets became way too dark, and violence increased. Also, our Paulista Avenue used to look a bit like Times Square, but now it's just a dead street as the others.

All of this just because a politician got mad after seeing a outdoor featuring a couple in underwear (it was a panties ad).

<comment><USER15> Your message is full of allegations without citations and is one of the most intellectually dishonest comments I've seen in the subject.

Lights do not stop crime in the way you're saying. I've been robbed twice in well lit locations. And a tiny percentage of those billboards were lit. This whole point sounds like reaching at straws without any logic behind it.

Avenida Paulista never looked like Times Square. Thankfully, because Times Square is a halogen light hellscape only tourists can stand and for little amounts of time at that. Paulista looks great, and dare I say better than it could have ever looked had it had huge billboards blocking the little sky one can see.

This was NOT a politician decision on a whim. Come on. That makes me doubt you've ever lived in São Paulo. This debate was raging for years and only came to fruition after the inability of regulation to have any effect on rampant illegal advertising covering more and more of the sky.

<comment><USER22> > Your message is full of allegations without citations and is one of the most > intellectually dishonest comments I've seen in the subject.

> I've been robbed twice in well lit locations. And a tiny percentage of those > billboards were lit. This whole point sounds like reaching at straws without > any logic behind it.

The irony of this comment is something I hope the author themselves recognizes.

</comment></comment></comment><comment><USER23> I'm not sure I favor this. Clean buildings can look nice, but they also look a bit sterile.

I'm for removing the T bar signs. Imagine Tokyo without the signs and neon.

There has to be a workable medium where there is some signage without it becoming obtrusive and garish.

<comment><USER24> What are T bar signs? A Google Images search yields equivocal results.

<comment><USER23> Sorry outdoor billboards typically mounted on T bar structures.

</comment></comment></comment><comment><USER25> I live in Sao Paulo and the outdoor ban law now is being "ignored" since it seems not to be enforced anymore. Also, commercial buildings have found loopholes, like leaving huge outdoors and Digital Signage a little behind glass windows to say it is "inside the store".

</comment><comment><USER26> Fun fact: the city of Krakow banned any signboards protruding perpendicular to the walls back in 1892 [1]. Although the ban has never been formally lifted, it got forgotten after 1918. Now the entire city including the old town is cluttered with them.

[1] [https://jbc.bj.uj.edu.pl/dlibra/publication/136678/edition/1...](https://jbc.bj.uj.edu.pl/dlibra/publication/136678/edition/128890/content) — page 20 (26).

</comment><comment><USER27> There's a problem that maybe is related to this law, but the article haven't said anything about it. The increase of flyer distribution around the city. In the last years basically everywhere you go someone will stop you to give some flyers, paper that usually people will just throw in the streets and increase the pollution.

</comment><comment><USER28> From the pictures, it seems like this ban lead to people removing signage from buildings entirely, which I think is pretty inconvenient. When I'm walking down the street, it is helpful to know what stores I am walking past, and have some information about them (ex. the phone number on Ribnits in the before picture).

I think a better middle ground is to ban advertising that is not related to the structure the ad is on - that would get rid of a lot of the clutter created by billboards and third-party ads on things like bus stops, while still allowing stores to advertise themselves and what they do to people walking by.

</comment><comment><USER29> The streets without all those signs look much more pleasant

<comment><USER30> Assuming one might feel safe enough to walk on them.

<comment><USER31> Because of loss of light from the signs?

By the same token sign removal should open up the street potentially making it feel safer.

<comment><USER32> Not loss of light. Just extra violence due to economic/social upheaval I'd say.

</comment></comment></comment></comment><comment><USER33> Slightly OT - <USER2> [https://99percentinvisible.org/](https://99percentinvisible.org/) is a _really_ great podcast series.

I believe the notional theme is 'design' (and good design being 99% invisible) - but it's a wonderful mish-mash of stuff that's always interesting, all covered by the exceptional dulcet tones of "Roman Mars"

</comment><comment><USER34> i forgot sao paulo was the city with no advertising until after i visited..

but the most vivid memory i had in sao paulo was when we were in the subway and as we're exiting the subway my friend had his phone stolen while his hand was in his pocket touching his phone. my friend was upset and had to take time out of our vacation to call his banks and cancel his cards, etc.. but i was actually pretty impressed how they pulled it off (definitely a gang, and most likely everyone around us was in on it). the city seemed fine otherwise.

actually the other memory i had while in sao paulo/brazil was lots of people wanting to take pictures with four asian dudes? anyone in brazil shed light on this? i know there is a big japanese community in brazil so i'm curious what their curiosity was with us.

</comment><comment><USER35> How do you find the store or restaurant you're looking for?

<comment><USER36> Look at the business signage, rather than dig for it through all the advertising plastered around? Or use maps...

<comment><USER35> The pictures in the article show the business sings were removed as far as I can tell.

<comment><USER36> I thought that too, but going by the comments here it appears business signage is fine within the rules set

</comment></comment></comment></comment><comment><USER37> To put this in context: together with the advertising clutter, a lot of artistic graffitis were taken down in the process.

<comment><USER38> If there's one thing you can be assured of, it's that removed graffiti will be replaced by new graffiti. Only through prolonged removal each time it reappears do the new attempts stop (or at least get reduced to a trickle).

</comment></comment><comment><USER39> All of Hawaii does not allow any outdoor advertising. And I think it is wonderful.

City Of Los Angeles has regulations on different aspects billboards. BUT, city has no idea idea how many even exist.

</comment><comment><USER40> I grew up in Poland, which experienced explosive capitalism during the 90s and with it a surge of banners, billboards and ads.

Most of them done on the cheap and in bad taste - optimised to draw attention.

Fortunately at least in some cities regulations followed and most of that clutter was removed during the first years of the XXI century.

Only bad second order effect I experienced are people employed to lure you into some places like strip clubs etc.

My take is that banners should be allowed as long as there's a style guide issued by the city which they would have to follow.

Italy is doing great in this regard - the worst I saw there were outdoor photo prints of menus which aren't nearly as bad as large posters in safety-vest yellow I saw back home.

</comment><comment><USER15> (2016)</comment>


Creator of the Web works to liberate personal data - <AUTHOR> https://www.bbc.co.uk/news/technology-45706429 <comment><USER2> Recent discussions about Solid:

[https://news.ycombinator.com/item?id=18100895](https://news.ycombinator.com/item?id=18100895)

[https://news.ycombinator.com/item?id=18104867](https://news.ycombinator.com/item?id=18104867)

and earlier:

[https://news.ycombinator.com/item?id=16355311](https://news.ycombinator.com/item?id=16355311)

[https://news.ycombinator.com/item?id=12280764](https://news.ycombinator.com/item?id=12280764)

</comment><comment><USER3> This has been in the works for 15 years and it seems like OpenID bundled with personal storage. As far as I can tell, Tim Berners-Lee is the main feature.

I think Dat and SSB are the most promising technologies we have for data and identity respectively. I want to love Solid, but it already seems outdated.

I wish the team nothing but the best as we all work on fixing and enhancing the web.

Dat: [https://datproject.org](https://datproject.org) SSB: [https://scuttlebutt.nz](https://scuttlebutt.nz)

</comment><comment><USER4> If it's something you can download, double-click, and it instantly works, then it might have a future. Any additional step makes success less likely.</comment>


The only bad press is no press: What Ellen Pao's loss means for women - <AUTHOR> http://arstechnica.com/tech-policy/2015/04/the-only-bad-press-is-no-press-what-ellen-paos-loss-means-for-women/

<comment><USER2> "She said that sexism in high-tech industries often reflects a "death by a thousand cuts" and that those cuts are hard to prove in a court of law. "In a lot of these venture firms that are run by men, there's kind of a tribe that forms. It's often hard for women to become part of that tribe and often times they [the men] don't even know they're doing it.""

How are we supposed to get rid of discrimination and generalization in the work-place, when articles like this completely generalize all tech companies and men??

The loss for Pao should have brought about a decrease in frivolous lawsuits. Instead, there are going to be more.

I followed this story closely and I didn't see any evidence of sexism or discrimination. The jury also came to the same conclusion.</comment>


Microsoft requests legislation extending privacy protections in GDPR to the U.S. - <AUTHOR> https://blogs.microsoft.com/on-the-issues/2019/05/20/gdprs-first-anniversary-a-year-of-progress-in-privacy-protection/ <comment><AUTHOR> The article celebrates GDPR's first anniversary and details its practical benefits around the world.</comment>


Qualcomm Plans Exit from Server Chips - <AUTHOR> https://www.bloomberg.com/news/articles/2018-05-07/qualcomm-is-said-to-plan-exit-from-server-chips-amid-cost-cuts <comment><USER2> SamSung might be in a position to capture this market - their ASIC design chops are just as deep, they own the fabs/process engineering, AND they offer a one-stop shop with complementary DRAM, SSD, screens (however they're used in the enterprise), and other semiconductor offerings.</comment>


Video Game Industry Trends of 2008 - <AUTHOR> http://www.gamasutra.com/view/feature/3884/gamasutras_top_20_trends_of_2008.php?print=1

<comment><USER2> Off-topic, but I'm curious as to whether or not any Game Developers lurk/post on HN. I've always wanted to make a break into this industry, but the breadth of what a developer must know and is responsible for has always made me feel so Junior Varsity. I've been doing a lot of research into the industry and it looks like Lua, JavaScript, and ActionScript (prototyping langs) are all in the same family of languages that are valuable for VG developers. Having that in mind, what are the general requirements for an entry-level scripting position?

<comment><USER3> A lot of companies use in-house languages with similarities to popular outside languages. Unreal script for example would be accessible to anybody coming from a traditional java background but it is different in some ways, i.e. polymorphism based on 'game state' as a built-in construct. A lot of other in- house languages look like Python. Some companies script with LISP and LISP- derivatives. In my experience most game scripting has less to do with programming and more to do with game design. If you are interested in solving algorithmic and engineering problems, it's not the way to go. Game programming per se usually involves hacking almost exclusively in C, C++, assembly and shader languages.

No matter which direction you go, the best way in is to show them a body of work even if it's unpublished projects done in your spare time. If you only want to do scripting work and avoid systems-level programming, you can get into modding.

As for the 'breadth of what you need to know' you shouldn't be terribly intimidated if you're a junior person. Most generalist programmers at a game company are not much different from very good systems programmers at other companies. If you want to get into specialized fields like AI, physics, or graphics, you will need to demonstrate that specialized knowledge.

<comment><USER4> right on the money. the best game developers i've worked with were mostly self-taught (from indies to internal ea studios).

</comment></comment></comment><comment><USER5> I don't know about #8, everything Nintendo pumps out is amazing.

<comment><USER6> They have a process where only about one in five of the games they start makes it out the door. They cull ruthlessly.

<comment><USER5> That explains a lot. They really do pump out one solid gold hit after another, and even to drastically different audiences. From Wii Play to Twilight Princess.

I wouldn't count our Asian friends out.</comment></comment></comment>


What Humans Will Look Like in 100,000 Years - <AUTHOR> http://www.myvouchercodes.co.uk/whats-hot/what-will-humans-look-like-in-100000-years/

<comment><USER2> Fluff piece. You can make up a story for almost any change you envision. Good articles would think such stories through; this does not sufficiently do so (but of course, its conclusion would then be "we don't know")

For example, larger heads would eliminate all natural births, require changes to the female anatomy to let those heads pass the birth canal, or require huge changes to the way heads develop after birth. A serious attempt at predicting the future should have addressed this.

Similarly, why have so much bigger eyes that look like bieng in risk of dropping out of their sockets if we can fit cameras directly after birth? In 100 millennia, I would expect such cameras to be superior to natural eyes in every aspect, including the current main stumbling block light sensitivity range.

And of course, if we will conquer space, one can argue that legs would either atrophy or become additional hands.</comment>


Civilizer – personal wiki or note-taking app - <AUTHOR> https://github.com/suewonjp/civilizer <comment><AUTHOR> This is my open source project and it's for personal knowledge management or personal wiki; I've been using it myself for quite a long time, and it's stable... I think :-) It's a good tool to organize your knowledge or todo list or idea or anything

( I admit that this is a little bit promotional stuff, but it's not commercial purpose at all; )</comment>


Suggest HN: Good  lifestyle type business - <AUTHOR>

This post is as a result of a customer request that we get quite frequently.
A small business owner with a static site wants to move hosting and doesn't have their website files and/or login to their old hosting account.
Typically in this case unless you can get the old files off archive.org (which surprisingly you can although pages are often missing) the customer is stuck.
1) I propose a service whereby the sites of major hosting providers are slurped and archived in there entirety (remember these are static) to aid in at least having a starting point to site recovery and moving.
2) Case #2 would be the customer has the files and/or access to the old hosting account and just needs handholding which the new host doesn't provide.
My feeling is that this (in addition to moving sites which are still active) would be something that hosts would welcome if they don't offer it themselves.
Mediatemple offers a similar service:
http://mediatemple.net/sitemover/ <comment><USER2> And where is the money in backing up sites from other hosts? I don't really see it.

<comment><AUTHOR> The money comes from being a resource for anyone who needs to restore the site and use the archive as only one example. That "anyone" can be a service provided by the archive or access to the data can be sold to the person (tech or previous site owner) that wants to restore the site.

Even if for some legal reason the data couldn't be sold it could be offered in exchange for a donation.

This is not "archiving the entire web" it's archiving the type of sites (of size and purpose) that are most likely to need the service.

<comment><USER2> Look, I am probably an idiot, but I simply do not see how you would determine in advance who might want to pay you later for your upfront cost of keeping their data. But, hey, people do stupid shit all the time. I certainly do. I am just wondering out loud what the business model is here. I do not see a viable business here. But since I am not exactly rolling in dough, maybe that is just my own stupidity. Regardless, my suggestion is that there needs to be a payoff for doing this and if you are going to get someone else to seriously consider putting their time, money and effort into your off the cuff suggestion, it might help to point out the stupidly obvious means to rake in the dough with it.

Best of luck.

<comment><USER3> I'm with you on this one.

You're hoping that somebody 1) has a static website 2) wants to change hosting 3) doesn't have access to the source 4) just happens to call you

That's not a very solid customer.</comment></comment></comment></comment>


Learn Knockout.js in 30 minutes - <AUTHOR> http://learn.knockoutjs.com

<comment><USER2> Been there done the Knockout.js thing... try Backbone.js instead: <http://documentcloud.github.com/backbone/>

Not knocking Knockout.js ;) it's great for really small apps.

<comment><USER3> Have to agree here. backbone.js has a learning curve but imo backbone is based on more ideal design principles.

For example the first lesson in this tutorial is telling you to bind data to the view __by manually editing a DOM node__.

Whereas in backbone all your data exists in model objects as it should. Views get initialized/created by view objects, and the bindings are through events. So for the first example, in backbone, I'd use a mustache template to build my view, toss in the model object (obj.attributes) and bind the view rendering to the objects change event. Much more clear lines of responsibility imo.

Thus Backbone.js is definitely advocating much better design principles.

<comment> andrewl-hn I wouldn't dismiss Knockout right away.

Under the hood those data-bind attributes use the same event model as Backbone views. However unlike Backbone KO doesn't force you to write this event propagation code manually. In KO all I have to do is to declare what property of viewModel I'd like to show up without actually telling about the machinery. This helps quite a bit to reduce code bloat while still giving you all the possibilities of event model. For example one can attach more event listeners to any observable value.

In that 1st example tutorial the author shows bindings directly in HTML because that helps him keep sample code small and demonstrate bindings. Bindings are NOT the major feature of the framework - observables and dependency detection are. However bindings are perfect for demo as they tend to impress the newcomers quickly. They are visually appealing, too. A newcomer sees how little does it take to convert a static markup into a complete dynamic example and is more likely to continue with the tutorial and later try the framework out.

Also note that KO has build-in templates so no one actually forces you to put bindings inside your static (or server-side generated) html. But in general if you don't like having your markup annotated you can get away with pure-js bindings. No one actually stops you from that! The code is a bit more verbose in that case but still comparable to other frameworks.

However I would personally ague in favor if bind declarations inside your markup. Especially in templates that are usually belong to separated visual components or blocks. In practice even though you can put arbitrary JavaScript code inside data-bind values you always gonna have the simplest binding declarations possible: anything bigger than `visible: showItem` would seem unnatural and ugly. So you would define a `dependentObservable` for any computable values or complex conditionals instead. And that's a good thing: code should belong to JS, not HTML. But I would ague that binding declarations are about the same thing as DOM ids and classes: just a list of parameters that help rendering the DOM node correctly. It's not the code.

One thing that Knockout doesn't currently do that Backbone does is helping you structure your application. There are no `Models` in the framework by default although there's a plugin which does fine job. But KO doesn't make structuring you app harder either.

I particularly want to emphasize is that your `ViewModel` is NOT a model and it's not a kitchen sink. I see quite a lot of people who start working with Knockout put all the bindings, all the data, and all the methods into one single gargantuan object. That's not the way things should be organized! It's pretty easy to keep all your entities decoupled and separated. Knockout even has a mechanism to narrow binding context from the parent model to submodels (and access parent model if needed). So, for example, inside your user profile page one can have separate `ViewModel` objects for personal info, contact info, friends list and so on. So, modularity is not forbidden. It's still doable and Knockout doesn't make it hard.

I would ague that writing large structured modular applications is easier with an MVP framework. And it matters very little which framework one has chosen as long as there's one.

One last note: this learning tutorial is focused on current release (1.2.1). The upcoming 1.3 release is very stable and brings some nice little features that make most stuff that I talked about more prominently represented in the framework, more concise and prettier [http://blog.stevensanderson.com/2011/08/31/knockout-1-3-0-be...](http://blog.stevensanderson.com/2011/08/31/knockout-1-3-0-beta- available/)

I'd particularly like to point you to:

\- control-flow bindings (that let you keep most templates inlined)

\- 'with' binding and bind context switching (helps with sub-viewmodels that I talked about)

\- binding providers (helps you keep your HTML data-bind-free)

[EDIT]: formatting

<comment><USER4> Thanks for this insight. Having no experience in these new JS frameworks, I'm going to eventually have to choose one, and based on recent HN comments I had almost dismissed Knockout since Backbone is "clearly" better. The points you raised are very informative and now I'm back to looking at Knockout.

<comment> andrewl-hn See also my other comment below: <http://news.ycombinator.com/item?id=3355963>

I have to say that both frameworks have great supportive communities. As for features here's a very simplified comparison:

Backbone pros:

\- eases code structuring with Models and Collections

\- gives routing (history management)

\- template engine agnostic

Backbone cons:

\- Out-of-box UI support is weak.

\- Binding plugin is weak

\- No automatic dependency detection between the fields (I'm sure there are some external libraries to support that)

Knockout pros:

\- first-class dependency detection and event model

\- powerful UI bindings (be sure to check out custom bindings - they are very convenient and can make your life a lot easier)

\- top-notch templating

\- it's believed that MVVM pattern is more suitable for inexperienced developers and eases collaboration in team. My experience confirms that.

Knockout cons:

\- No models, doesn't help you with project structure - you're on your own

\- Model plugin is there but I can't compare it to Backbone, sorry. It does have synchronization with RESTfull backend.

\- Tied to a specific template library. It's possible to integrate other templates with custom providers but I don't know how easy/hard it is.

\- No routing support

I picked KO because I believe that framework should do the hardest part and it's ok if the easier parts don't get addressed well. When starting a project I asked myself what would be harder: deal with UI elements or with AJAX. UI seemed harder and Knockout addresses that a lot better than Backbone, so we went with Ko. My team loves it.

\</comment></comment></comment></comment></comment><comment></comment><comment>

Also these day you can pick both and get them running together: <http://kmalakoff.github.com/knockback>

</comment><comment><USER5> This is a top notch effort. As someone who has recently started looking at JS MVC frameworks, I've found there are a lot of options and not a huge amount of documentation or tutorials.

When it comes to differentiating between frameworks, tutorials like this go a long way, and help the entire JS community. I look forward to other JS frameworks coming out with similar, and getting more opinionated about conventions.

<comment><USER6> This is certainly true, specially when you work at a company that really doesn't invest enough research time in the choosing of a new framework as they should. You need to see the key features and a bit of hands-on trial fast to be able to showcase them even faster.

Of course it's not an ideal method of picking new technology, but sometimes you can't really argue about it and have to go along.

</comment></comment><comment><USER7> My experience with Knockout has been great. I have used it on two major products.

People are not really happy with the data binding stuff put directly into the markup but I always liked it because even in the big apps, I hardly had any binding which has been ugly. It's been pretty straightforward. There have been some edge cases but Steve has dealt with them in 1.3 version.

</comment><comment><USER8> The demo is pretty cool but I have a few questions:

\- Since all the templating is done on the client-side, isn't it bad for referencing? Note that this isn't specific to Knockout but to all javascript templating libraries in general.

\- data-bind seems to be an HTML5-only attribute. I guess this means Knockout documents require an HTML5 doctype. Can't this cause problems with older browsers, at least for validation? (The knockout website mentions compatibility with IE6+).

Otherwise, it seems really fun and easy to use and feels pretty snappy. It probably won't replace server-side templating for me yet though.

</comment><comment><USER9> Loving the lot of javascript-backed in-browser programming tutorials launching lately.

This one in particular has a nice UI and help overlay.

<comment><USER10> My favorite is still Cows and Closures. <http://nathansjslessons.appspot.com/lesson?id=1000>

<comment> andrewl-hn Oh, thanks for sharing! It's brilliant! I'll definitely give it to developers new to JavaScript.

</comment></comment></comment><comment><USER11> Off-topic legalese: Does the "(c) knockoutjs.com" at the bottom have any legal value whatsoever? Generally one would expect a person or a company after the "(c)".

<comment><USER12> IANAL but from my understanding, copyright is implied by default. You don't have to apply for a copyright, you get it automatically when you create something. knockoutjs.com would be considered a group, and a representative from the group could be appointed for legal purposes.

</comment></comment><comment><USER13> Be sure to look at Knockout Model too - it provides similar capabilities to Backbone e.g. for things like REST/JSON APIs.</comment>


Emot.es – All your favorite emoticons in one place - <AUTHOR> http://emot.es/

<comment><USER2> What ever happened to good old :) ?

<comment><AUTHOR> ╯‵Д′)╯彡┻━┻</comment></comment>


Software patents - <AUTHOR> http://www.marco.org/430351101 <comment><USER3> I believe software only bring out the danger of patents into the open, not because it is a poor fit.

Imagine that people are starting to have a printer that can print any objects from any design at will, including the biological kind. They benefit from sharing designs over time, because not only that their machine can print newer design, but their machine also allow them to recycle objects into new and better one. All that is left is the distribution mechanism for raw material, but once you reach a certain amount of material, you can basically transform old objects into new ones at will, barring the need for new raw and rare exotic materials. Perhaps, people who is able to complete a design will be rewarded with especially rare materials for them to experiment with?

Now what happen if the patent system is still in effect? That mean every person with a 3D printer is barred from printing designs from a patent of an inventor. In order to make lot of money, he essentially bar the people with 3D printers from printing so that he can sell his invention at the market for really high fees. If he come up with an innovative design for a self- replicating machine, he can bar the people with 3D printers as well from doing as they like for twenty years. For whatever reason, he rather have the power rather than becoming one of those nobodies in a society where everyone is become wealthier.

He can practically stop whole community of inventors who don't use patent and have a totally different idea toward sharing the design of invention.

Now imagine an innovative software entrepreneur stopping the open source software community and industry!

Patents doesn't need to be frivolous in order to be dangerous to the progress of technology. It can be innovative and _life changing_.

But an equally self-interested community of inventors who does thing in the open, may also give you inventions that is innovative and _life changing_ as well.(And it may be just one inventor in the whole community who come up with it as well)

Which path do you want to explore?

<comment><USER4> _Imagine that people are starting to have a printer that can print any objects from any design at will, including the biological kind. ... That mean every person with a 3D printer is barred from printing designs from a patent of an inventor. In order to make lot of money, he essentially bar the people with 3D printers from printing so that he can sell his invention at the market for really high fees._

If you had a replicator that could produce anything, why would you need money at all? There wouldn't even be markets as we know them today where an inventor could command really high fees. And without needing money, you wouldn't need the government enforced monopoly that is patents to allow restricted exploitation of an idea.

Besides, stupid people would think they'd be being smart by have their 3D printers print money, there by making money worthless.

In this thought experiment, I want to be part of and explore the sharing/open community, because I don't think a community that hides its best (and only assets), it's ideas, when production costs don't exist won't be able to grow as fast as a community that shares. When the key resources, and those that provide the basic necessities, are unlimited, there's no reason not to share.

<comment><USER5> _If you had a replicator that could produce anything, why would you need money at all?_

Even if manufacturing becomes effectively free, resources won't. You'll still need energy and raw materials.

 _There wouldn't even be markets as we know them today where an inventor could command really high fees._

Just like the internet made the market for copyrighted information go away, right?

<comment><USER3> _Just like the internet made the market for copyrighted information go away, right?_

Most people are afraid to experiment without copyright and does not have a business model to exploit a non-copyright paradigm.

However it does not mean that a non-copyright or at least copyright without much competitive deterrent would not thrive.

Indeed, the open source software industry is one huge example. RedHat, for example effectively does not deter competitors from making copies of their distribution and selling it. However they still make lot of money.

Arduino, an open source hardware platform, is another example. Chinese manufacturers copied their design, but the firm behind arduino still manages to sell a boatload of them.

</comment></comment></comment></comment><comment><USER6> At present, is there any reasonable behavior for developers other than to just ignore software patents?

I wouldn't even know where to start if I were trying to avoid infringing.

With non-software patents (let's say I'm building a new kind of lawnmower), I could search for patents on lawnmowers, maybe knife blades, or weed whackers. But with software, I think I'd have to search for abstract concepts like "list sorting" but maybe also "representing data in an ordered table" and "appending measurements according to rule."

Is there anyone who doesn't just ignore software patents and then hope for the best?

<comment><USER7> I imagine it's best to ignore them completely, if there is evidence that you've been reading up on patents that just makes it easier to prove intentional infringement, tripling the damages.

At least that's better than copyright infringement, where you could be liable for 100,000 times damages.

</comment></comment><comment><USER8> It's great that a lot of developers are sounding off on their blogs about this. But what will it take to achieve _real_ progress toward reform? We can complain all we want, but what will it take to get real traction?

<comment><USER9> Though he did not have a blog, Thomas Jefferson "sounded off" (to use your term) on this issue nearly 200 years ago, in a letter to Isaac McPherson dated August 13, 1813 (the text of the full letter is found here: <http://www.temple.edu/lawschool/dpost/mcphersonletter.html>).

His primary point is that ideas are by nature designed to spread for the benefit of society and are not inherently to be made a subject of property - and thus if a society decides to deny to inventors any rights to exclusive claim on an idea, no one has any reason to complain.

In his words:

"That ideas should freely spread from one to another over the globe, for the moral and mutual instruction of man, and improvement of his condition, seems to have been peculiarly and benevolently designed by nature, when she made them, like fire, expansible over all space, without lessening their density in any point, and like the air in which we breathe, move, and have our physical being, incapable of confinement or exclusive appropriation. Inventions then cannot, in nature, be a subject of property. Society may give an exclusive right to the profits arising from them, as an encouragement to men to pursue ideas which may produce utility, but this may or may not be done, according to the will and convenience of the society, without claim or complaint from any body."

This is a philosophical argument against the idea of patents generally.

Jefferson lost this argument.

Thus, the Patent (and Copyright) Clause of the Constitution (Article I, sec. 8, cl. 8) provides that the Congress shall have the power "to promote the Progress of Science and useful Arts, by securing for limited Times to Authors and Inventors the exclusive Right to their respective Writings and Discoveries." In the first U.S. Patent Act (Act of April 10, 1790, 1 Stat. 109, 110), Congress implemented its constitutional authority to sanction patent monopolies by defining patentable subject matter very broadly, to include "any useful art, manufacture, engine, machine, or device, or any improvement therein." Congress amended the Act in 1793 and then again in 1952, so that today it reads as to the idea of "patentable subject matter" as follows (35 U.S.C. sec. 101): "Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title."

Jefferson made a second very important point in his 1813 letter, and this bears directly on the philosophical dispute underlying the patentability of process or software patents (of course, he did not discuss it in terms of software).

This second point deals with the idea that _new uses_ for old machines or processes should not constitute patentable subject matter.

Jefferson believed that a "machine of which we were possessed, might be applied by every man to any use of which it is susceptible, and that this right ought not to be taken from him and given to a monopolist, because the first perhaps had occasion so to apply it."

In essence, the Jeffersonian position amounted to saying that society was free if it liked to grant limited monopolies on useful ideas that had utility for commerce but there was no inherent right in an inventor to claim such a monopoly - it all depended on the judgment of society. If, however, a society had once decided to grant such monopolies in order to promote commerce, then the monopoly should extend only to the original invention and not to any new use made of it thereafter. Why? Because ideas are meant to be freely transferred for the benefit of society, including the free application of any "machine" by any person to any use of which it is susceptible and, as Jefferson put it, "this right ought not to be taken from him and given to a monopolist."

While Jefferson had lost on the broader idea of abrogating patent protection generally, the more limited idea that discoveries of new uses for old machines or processes were not patentable subject matter _did_ hold sway for quite a while in leading U.S. judicial decisions. For example, in _Roberts v. Ryer_ , 91 U.S. 150, 157 (1875), the Supreme Court held that "it is no new invention to use an old machine for a new purpose."

In 1952, however, Congress explicitly overturned this line of judicial decisions. Specifically, it defined as a _patentable process_ any "process, art, or method" and specified that this included "a _new use_ of a known process, machine, manufacture, composition of matter, or material." (35 U.S.C. sec. 100(b)).

Of course, this 1952 amendment to the Patent Act laid the foundation for a significant expansion of "process" patents and specifically for the adoption of software patents. Why? Because, in a world of general-purpose computing devices, all kinds of existing machines and processes are "susceptible to new uses." Indeed, this is the very nature of software, which can apply to an almost infinite range of potential uses. Once the principle was established that such new uses fell within the statutory definition of "patentable subject matter," then a broad array of such patents could be issued, subject only to meeting other requirements of patentability such as novelty, non-obviousness, utility, etc.

With the modern development of the free and open software movements, the old philosophical debate has taken on new life but the prospects of the "free" side winning this debate, in my view, are likely doubtful. The legal tradition is deeply entrenched in favor of patents, as are the commercial interests. One is left, then, with what amounts to a philosophical argument that patents (or at least process patents) are bad.

Insofar as the law is concerned, the issue will be addressed in the Supreme Court's forthcoming decision in _Bilski_ , expected this year. Beyond that, relevant arguments must be addressed to Congress, which does have the authority to redefine what constitutes patentable subject matter and hence the theoretical power to abolish software patents in general.

Sounding off on blogs definitely furthers the momentum for change but a lot more would be needed to effect a change of view on issues that are so deeply rooted in U.S. history and legal tradition. So long as this remains primarily an ideological position of the free/open software movement, and nothing more, it will likely languish along with the old Jeffersonian sentiment that today sounds so quaintly out of date. I am not saying this in a patronizing way. For something to come of this besides just sounding off, a _major_ shift in mindset has to occur in society generally, and I don't see any evidence of this as yet.

<comment><USER3> _Sounding off on blogs definitely furthers the momentum for change but a lot more would be needed to effect a change of view on issues that are so deeply rooted in U.S. history and legal tradition. So long as this remains primarily an ideological position of the free/open software movement, and nothing more, it will likely languish along with the old Jeffersonian sentiment that today sounds so quaintly out of date. I am not saying this in a patronizing way. For something to come of this besides just sounding off, a major shift in mindset has to occur in society generally, and I don't see any evidence of this as yet._

The free software movement is not the only movement to reach this conclusion.

The libertarian tradition itself has now reached a point of consensus regarding the idea of intellectual property, which is to abolish it.

This is a _revolution_ that took place over ten years. It was slow and gradual, but now it is at the point at which all of mises.org, a libertarian think-tank is now licensed all their content under creative common attribution. It also cumlinates with mises.org carrying two book making the case against IP, which is _Against Intellectual Property_ , and a non-Austrian book, _Against Intellectual Monopoly_.

The free software movement now have allies with the radical libertarians and some of the key major thinker of libertarianism.(Ironically, it shared so many computer programmers as to blur the line somewhat)

</comment></comment></comment><comment><USER10> Everything said in this post is true of _any_ kind of patent, not just software patents. Gillette does the same thing with razors.

I still see no reason to treat software patents as a subset of patents that should be dealt with independently of the patent system as a whole. If we do away with software patents we should do away with ALL patents.

If we reform all patents, we should also reform software patents.

<comment><USER11> As a disclaimer: in an ideal civilization, in which the market ceased to operate, wealth ceased to appeal to people, and our individual ambitions collectively coincided to the mutual benefit of all, then patents would, and should, cease to be.

While I despise the concepts of owning an idea, owning the right to propagate an idea, and possessing control over the use of an idea, I cannot help admit their (mottled, provisional, and entirely realistic) use. Patent law should, undoubtedly, be reformed - limitations on what owning the idea means should be reworked. Just as, for instance, owning a piece of land doesn't mean you can do whatever you like with it, owning an idea should be similarly subject in order to benefit the intellectual community in whose landscape the idea sits.

Should we get rid of ALL patents? Yes - but not until we (being ironical here) get rid of all companies whose capital is founded on owning the ideas that make them money. In the case of software, however, there is right now an immediate dysfunction in patent law, made evident by the examples in the article, that should be immediately addressed.

<comment><USER3> _While I despise the concepts of owning an idea, owning the right to propagate an idea, and possessing control over the use of an idea, I cannot help admit their (mottled, provisional, and entirely realistic) use. Patent law should, undoubtedly, be reformed - limitations on what owning the idea means should be reworked. Just as, for instance, owning a piece of land doesn't mean you can do whatever you like with it, owning an idea should be similarly subject in order to benefit the intellectual community in whose landscape the idea sits._

Where is the evidence that patents benefit the intellectual community at large and increase the wealth of the people at large?

It is one thing to think that the patent system might benefit civilization as a whole, but it's a long jump to suggest that it should be implemented.

Moreover, the ownership of idea does not fit the logical justification for property rights of actual scarce resources such as land.

And furthermore, the very existence of Makerbot Industries and their cupcake CNC hardware as well arduino, and countless other open source hardware product directly clash with the notion of patent being necessary or needed to encourage the development of physical inventions. Here, in the present day, it can already be seen as a direct dysfunction.

That's not including the case against steam engine inventor James Watt, or agriculture flourishing without much patent protection(Breeders would sell new plant varieties to farmers, who then reproduce and resell the seeds on the market), as well as the fashion industry who thrives in the midst of copycats, and more.

<comment><USER11> Alright, trash patents right now - tell me what would happen.

"where is the evidence..." I was having this discussion with a friend of mine, an engineering PhD. At first, I took your side, and ideally, I still do. Don't get me wrong: I WANT a patentless world to work.

He put it like this: what do you do when you work for years on an idea, you finally get enough to publish, and to get your idea patented. You know that your career depends on your getting the "first stake" on this idea - <USER2> (who you can name) are working on the idea too. If you cannot patent it, then you cannot build the rest of your career on your having gotten there first.

Now I know, immediately, this notion sounded utterly evil to me. You SHOULDN'T, I protested, be able to found your career on having gotten there first. You should want to share your idea with all of those people who are also working on it - and afterall - isn't this how academic science moves forward?

Yes, he said, but still - if you cannot patent your idea, then somebody who ALREADY has the resources will snatch it up and use it to dominate the field BEFORE you can acquire the resources to do it youself. And so you end up just giving somebody an idea for free, and you get nothing in exchange for your years of work.

Ideologically, I am still rubbed the wrong way by this argument - on the other hand, what else is my friend the engineer supposed to do?

The benefit of patents is not to civilization as a whole - that is the problem with them - their benefits are local and incremental to individuals - and even that benefit is imperfect. The system requires reform - but I do not think we are ready for the system to be abolished.

<comment><USER12> The lone inventor defeating entrenched interests with the power of a patent is a fairy tale.

The only patent holders large organisations fear are non-practicing entities (aka trolls) because anyone actually trying to build a product can be undermined in any one of a thousand ways.

<comment><USER11> Precisely, the system requires reform - but abolishment would even further deprive that "lone inventor" of right to her own work.

Trouncing patents now would only give the already successful less to worry about, and would force the budding minds into the dirt.

I, for one, am so anti-capitalist that I don't use a single piece of proprietary software, and I own only what I can carry. I'm an idealist with the causes that I can control (personal use) - I'm a realist when I want to actually see change in the right direction (political voice).

<comment><USER3> As far as ideology goes, I suspect mine would be the opposite of your. I am a pro-capitalist, going as far to assert that nobody have the right to make money from their work. However, on the flip side, I also argue that everyone have the right of property. I have no qualm in letting engineers starve themselves working on an invention. However, I have qualms about people destroying my community in addition to my business which I have established without the monopoly mechanisms.

I love open source software so much that I gladly stake my whole business model on it, to the point of wishing to experiment without the protection of copyright.

Those patent entrepreneurs wish to live in a world that would take my property right and freedom away in favor of their monopolistic business models.

This is liberty versus economic security.

I rather be a free dog who don't know what his next meal at, then an enslaved dog who get a small but a sure pittance.

<comment><USER11> on that final point, we can agree.

And you're right, we must be somewhat disparate in our thought - If I were the architect of the world - I would have it that material property is the only sort that qualifies, and that nobody can make a living except by their work (or by the services they work to offer).

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> Yet another 'software patents are bad' piece without a single fact. Many disagreed to the point of retaliative downvoting with my blog post the other day ( <http://news.ycombinator.com/item?id=1167926> ), but it was trying to make a fact-based case pro-patents; can't we at least try to argue from facts rather than hearsay on HN?

<comment><USER3> It would seem to me that he is arguing from conjectures and logics. I think that deduction is a valid investigation technique, because mostly we can't investigate everything using induction.

As for your argument in that post regarding Google, I would still say that even if a patent is non-frivolous, non-obvious, and innovative, it could still have a negative overall effect mostly because of the privileges that is afforded to inventors and innovators to silence the competition who may have come up with equally groundbreaking work.

Innovative, non-frivolous patents still poses a danger to the open source software industry, which does not relies on patents to make their money.

The patent system make us choose a kind of inventor and entrepreneur over the type that open up their secrecy to the world and become wealthy from it.

That's the choice we're making if we choose the patent system over the market solution of intentional openness.

</comment></comment><comment><USER14> _Building up a patent portfolio by engaging in defensive patenting cannot always protect against hold-up._ \-- Federal Trade Commission of the USA

[http://www.nosoftwarepatents.com/en/m/dangers/investment.htm...](http://www.nosoftwarepatents.com/en/m/dangers/investment.html)</comment>


How to write good essays in political science - <AUTHOR> http://www.themonkeycage.org/2010/02/good_writing_in_political_scie.html

<comment><USER2> Very good guidelines for this subject, set forth in a very lively, well- written piece.

I would add one other admonition: do not hesitate to write in the first person as appropriate. His illustration of a good introduction uses this principle without identifying it as such ("I argue . . .; I acknowledge . . ."). It is amazing how much more compelling your prose will be simply by making clear that the argument presented is _yours_ and not some derivative rip-off. Putting things in the first person reminds you that you are the one doing the thinking, the asserting, and the substantiating. It also reads much more cleanly and lets you easily avoid the sort of passive-voice flab (e.g., "It is asserted herein . . .") that so often characterizes academic writing.

I haven't been a student for over 30 years and only wish that I had access to such a helpful guide in my day. Stimulating reading for the beleaguered student needing guidance on essay writing generally, not just for political science.</comment>


Automated Locality Optimization Based on the Reuse Distance of String Operations - <AUTHOR> http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/en/us/pubs/archive/40679.pdf

<comment><USER2> This seems like a pretty clever approach to tuning the performance of memcpy and memset, since proper instrumentation should enable you to make the right decision(s) about whether to bypass cache on a given operation most of the time. In the cases where you mess up, you can probably spot those by doing a second instrumentation pass after applying the optimizations (to see if any of them actually caused an overall performance hit).

It's nice to see that they tested this on a bunch of use cases, as well... and on that note, the adsense-serving benchmark spends 37.5% of its CPU time in memcpy! That's insane! I wonder if it's basically just a web server benchmark where it's calling memcpy a lot to serve up static assets over HTTP?</comment>


Inform and Act - <AUTHOR> https://action.github.com/ <comment><USER2> Bravo to Github!

Hopefully this initiative will expand to other strong statements with corresponding $$ and action ideas to back them up.</comment>


In the beginning was the command line - <AUTHOR> http://cristal.inria.fr/~weis/info/commandline.html <comment><USER2> This is a great piece of writing. Particularly for a hacker. If you haven't, also check out [http://www.wired.com/1996/12/ffglass/](http://www.wired.com/1996/12/ffglass/)</comment>


Ajax application security critical, experts warn - <AUTHOR> http://searchsoftwarequality.techtarget.com/originalContent/0,289142,sid92_gci1270910,00.html <comment><USER2> None of this is in any way specific to Ajax. It seems to me to be just another example of jumping on the "Ajax" bandwagon.</comment>


Ask HN: What would you like to see built within the Fediverse? - <AUTHOR> <comment><USER2> An introduction or FAQ as to what all those terms mean. What is a local timeline? What is a federated timeline? Why would I want those to be separate? Which one do I use when I just want to see toots from people I follow? And why is it that sometimes when I visit some person's profile page, it says I don't follow them even though I do?

As a long-time Twitter user, I find the lack of initial hand-holding utterly frustrating.

<comment><AUTHOR> I can sympathize with this. I am taking a deep dive down the rabbit hole and I still don't understand half of what is going on still.

Not sure if this helps but [https://fediverse.party/](https://fediverse.party/) is making an attempt to explain some of this.</comment></comment>


Highly efficient PHP code writing - <AUTHOR> http://pixelstech.net/article/index.php?id=1311438950

<comment><USER2> These tips are good practices, but they are micro-optimisations. The function strtr might be 4 times faster than str_replace, but the time saved by using strtr will represent a tiny tiny tiny portion of your script execution time.

Micro-optimisations are worth it when everything else is optimized in your application. You might get way better results by focusing on your database structure or the way you store, retrieve and cache your data.

What's listed here doesn't lead to "highly efficient code". More like "A tiny little bit more efficient code". Doesn't hurt doing it though.

<comment><AUTHOR> Actually, these tips for PHP coding cannnot guarantee improving efficiency in every project. For different apps,some of these tips may be very useful.For example, I was involved in one of the H.264 decoder development, some of the tiny operations would be run thousands times when decoding a video clip, even a small optimization improved the peformance largely.</comment></comment>


Hi, I'm on the Shitty Media Men list, but maybe you already knew that - <AUTHOR> https://medium.com/@mike_tunison/hi-im-on-the-shitty-media-men-list-but-maybe-you-already-knew-that-f446aed1f93b <comment><USER2> Hi Mike,

I have one limited question and I want to be careful. This is what it is:

You don't wholly disavow any bad behavior. Can you please truthfully, fulsomely and in detail, describe the original conduct that underlies the complaint against you?

For example, here is a range of situations, can you state where you conduct fell under?:

A. You are powerful, systematic predator, like Harvey Weinstein, or Roger Ailes, who sits on top of a power system whose social, legal, economic dynamics you systematically exploit to abuse and entrap your victims.

B. Without significant official power, you abuse a coworker, by opportunistically exploiting her/his weaknesses or your institutional knowledge (note that this can also be extremely damaging to an individual even without official power).

C. Inside of some sort of relationship, you committed bad behavior, by say, reacting poorly to a conflict, and took undue actions (messaging, following).

D. You are wholly innocent of any bad behavior. Your inclusion on this list is is the result of an deliberate campaign of someone with a malicious agenda.

Note that for many reasons and on many layers, I can't judge your situation. I can't judge your truthfulness. I can't judge the impact to the victim(s), if any.

The motivation behind this question:

You asked us to read and consider this lengthy personal story, and to be sympathetic to you.

In this context, the request seems like a useful piece of information, and its omission would be problematic. Furthermore, even an admission of some guilt, seems small next to the consequences that you seem to have already endured, and a natural step toward the "rehabilitation" you presumably seek (I acknowledge the possibility you are totally innocent).

Finally, and frankly, if you are innocent, you write and act in ways that raise flags for a perceptive or skeptical reader. For example, you do make some rejections, "punished for things I didn't do". However, these aren't total disavows of bad behavior. Similarly, you focus on details "No HR claim", all embedded in a highly sympathetic personal narrative.

I've never been accused of any "metoo" behavior. However, I've seen people "railroaded" many times. Many people react by either gathering overwhelming force (authority, connections) to vehemently smash the opposing actor, or else slip away if am unable to do so (I'm not sure this is optimal but seems reputationally useful). However, I've never seen an innocent person plead or begged like this.</comment>


The Curious Case of the Bent Blade - <AUTHOR> https://blog.prototypr.io/the-curious-case-of-the-bent-blade-81986f2c65b0#.3sbkp3n7h <comment><USER2> Looks like a short ad-post for Moqups 2.

<comment><AUTHOR> yeah and fair enough, it's a good example of great storytelling though</comment></comment>


Ask HN: would you tip people in irc if it were really easy? - <AUTHOR>

I have been helped by so many people in irc channels, I often wish I could click on their username and tip them instantly. Does anyone else want this service? <comment><USER2> Try gittip - very similar. This could be a plugin for gittip.

<comment><AUTHOR> i tried gittip and i like the general idea, but i think recurring tips is pretty bad. But yes, it could be, should they decide to implement one-offs

</comment></comment><comment><USER3> Do you think it would change the dynamic of certain IRC channels if tipping became a regular occurrence?

<comment><AUTHOR> It wouldn't make them worse, but I doubt it would make them drastically better. It would honestly benefit the people who have been helped the most, since they are currently frustrated by not being able to do more than say "thanks"</comment></comment>


F#ck it. Send - <AUTHOR> http://launchdfw.com/editorial/fck-it-send/ <comment><USER2> Before sending though I recommend you remove all of the words 'F#ck'.</comment>


Feedly fixing reviews? Google Chrome Store - <AUTHOR> https://chrome.google.com/webstore/detail/feedly-your-news-rss-goog/hipbfijinpcgfogaopmgehiegacbhmob/reviews

<comment><AUTHOR> Have a look at the 'most helpful' reviews - there seem to be two different texts, repeated many times and attributed to different 'users'.</comment>


Kubernetes – A Practical Introduction for Application Developers - <AUTHOR> https://godaddy.github.io/2018/05/02/kubernetes-introduction-for-developers/ <comment><USER2> I really want Kubernetes to become as accessible as possible to developers.

There are a few key problems though from a dev's POV:

1) Concept creep: How much kubernetes do I need to know to be productive?

2) Local development and workflows: It's still super painful to run a full-on Kubernetes environment locally. Are we moving to a future where a microservice is developed locally and then any kind of "integration" testing can only be done by deploying to a Kubernetes cluster? Tools like gitkube, ksync help.</comment>


The Ghost Parcels of El Paso - <AUTHOR> https://makeloveland.com/blog/the-ghost-parcels-of-el-paso

<comment><USER2> There are a number of similar "developments" in the area. North of El Paso is Timberon, NM. It was a single ranch that was subdivided into 9000 parcels in the early '70s to try to create a resort community. Most of the roads were built (not paved), but there are around 200 homes among all the parcels, and if you watch Otero County's unpaid taxes auction every year it is almost all Timberon properties, even though an undeveloped property is usually about $15 a year in taxes (I own an acre up there.)

Also east of Deming, NM (about an hour from El Paso) is a fairly large "town" called Akela with Only a few houses and a fairly large grid of streets, most of which were never built.

<comment><USER3> Reminds me of Christmas Valley, Oregon:

[http://en.m.wikipedia.org/wiki/Christmas_Valley,_Oregon#Penn...](http://en.m.wikipedia.org/wiki/Christmas_Valley,_Oregon#Penn_Phillips_era)

</comment></comment><comment><USER4> This is the back story for the Mamet play "Glengarry Glen Ross." For those who haven't read it, it's set in a real estate boiler room where salespeople are pitching lots in developments like this one -- selling the dream of owning a piece of the West to suburb dwellers in New Jersey.

</comment><comment><USER5> Not a terribly unusual phenomenon, even in the much more densely settled east. On maps of the Pine Barrens of New Jersey, for example, you can find the ghosts of old land developments that never existed, or were only partially built and then abandoned. The street names remain like ghosts in century-old data.

</comment><comment><USER6> There are vast ghost neighborhoods in Southern Florida near me, all paved and marked but have only a handfull of houses scattered throughout.

They are ridiculous fun to bike through.

[https://email@example.com,-82.2241805,5772m/da...](https://email@example.com,-82.2241805,5772m/data=!3m1!1e3)

<comment><USER7> More at "The Compound"[1] 200 miles of roads in Florida with no houses, no street signs, and no power lines. The layout makes it easy to get lost and hard to get out. North Las Vegas has similar areas.

[1] [https://www.google.com/maps/place/27%C2%B056%2708.0%22N+80%C...](https://firstname.lastname@example.com,-80.7021971,2345m/data=!3m1!1e3!4m2!3m1!1s0x0:0x0?hl=en)

</comment></comment><comment><USER8> These types of small plots of land are on eBay selling right now. [http://www.ebay.com/sch/i.html?_nkw=texas%20land](http://www.ebay.com/sch/i.html?_nkw=texas%20land)

</comment><comment><USER9> I grew up in EP, my grandfather was a builder and actually my ex inherited a parcel in horizon. It was a huge land scam back then. It is still trying to be developed.

<comment><USER10> Do you think it'll ever be developed?

</comment></comment><comment><USER11> There was a lot of this in Palm Springs in the 1960s too. My grandfather fell for it. (Classic doctor who didn't invest well, back in the day.)

</comment><comment><USER12> [https://goo.gl/maps/Md3Do](https://goo.gl/maps/Md3Do) for the lazy.</comment>