What makes a good REPL? - <AUTHOR> http://vvvvalvalval.github.io/posts/what-makes-a-good-repl.html <comment><USER2> I am not convinced that immutability matters; this seems like a bias. After all the original REPL, and the name itself, was in Lisp (note that the first Lisp implementations were _not_ interactive, but it was the first interactive language) and Lisp doesn't have immutable data structures.

(READ, EVAL, and PRINT are all old Lisp primitives, and the REPL was literally implemented with them. There's also a complex macro called LOOP but it was added much later, and is not integral to the language)

<comment><USER3> I'd even say immutability can be a disadvantage.

I normally only use a repl when I don't know what I'm doing.

My normal process with a repl in an immutable language goes like this:

1\. Assign something to a name

2\. Realise that was wrong, try again.

3\. Get told no. Remember to tell the repl to forget the wrong one and do it again (or choose a new name).

4\. Try to assign something else to another name (probably 'foo')

5\. Realise that I already used foo about an hour ago in a different experiment, and hadn't closed the repl in between.

Immutable is great for actual programming. Less so for quick experiments.

<comment><USER4> I think there may be some confusion here, immutability is about the stability of values (e.g. I have a string, list, map etc and I want to pass it to others, view its value, make changes without affecting the original value).

Immutability is not the same as rebinding a name (in clojure at least) e.g. the following is perfectly valid (global and local binding of the same name repeatedly)

      (def a 1)
      (def a 2)
      (def a 3)
      (println a)
      => 3

      (let [a 4
            a 5
            a 6]
         (println a))
      => 6

<comment><USER3> I see. When I see "immutable", I think of Prolog and Erlang (e.g. once X is 6, X can't be matched to 5 in the same scope) rather than languages that simply prefer byval over byref.

<comment><USER4> well clojure does pass by reference, but the reference is to something that cannot be changed (i.e. a persistent data structure)

</comment></comment></comment></comment></comment><comment><USER5> Pretty-printing of data structures in a human-readable format.

<comment><USER6> I think Jupyter has the right idea here with various kinds of _repr_ -alternatives that can render html or images directly into the notebook. [http://ipython.readthedocs.io/en/stable/config/integrating.h...](http://ipython.readthedocs.io/en/stable/config/integrating.html?highlight=repr#rich- display)

<comment><USER7> This is the kind of use cases where multiple dispatch is useful.

<comment><USER6> How so? I feel like single dispatch (as in Python) is already enough.

<comment><USER7> If you write a custom _repr_html_, you are likely to assemble subparts by recursively calling _repr_html_ on sub-elements (thanks to open recursion). If you have an object B which inherits from A, you can specialize on B, or use the existing method for A.

However, you cannot specializes the "html" part with inheritance. Say for example that you want to define a slightly different _repr_html_ method depending on the context (maybe you target the subset of HTML that works correctly in emails) or if you want to render "latex" with custom "tikz" macros instead of using matplotlib.

With multiple dispatch, you can specialize on the target too, which means you can specialize wherever required or fall back to a generic behavior if not.

</comment></comment></comment></comment></comment><comment><USER8> Using Emacs' Elisp for a short while helped me unlearn some REPL antipatterns I acquired during Clojure development (some of them unfortunately presented in this article), especially this: instead of typing something in the REPL, executing it, then copying it back into your actual source file, you can just write it in your source file and use "evaluate current form" or "evaluate form before current point" to send it to the REPL process for evaluation instead of painstakingly entering it in the REPL and copying it back. Note that this is not a conventional hot-reload, but the form is sent as literal to the REPL (where indirectly, hot-reload may occur).

</comment><comment><USER9> With fast compiling languages a unit test is not for off from being a REPL. In Java I use JUnit as a REPL.

Actually I prefer unit tests over a REPL the same reason I prefer bash scripts over one liners or SQL scripts instead of typing into the interpreter... I don't like the ephemeral nature of REPLs.

Also with true REPLs unlike the debug unit test approach I mention with Java you really need the language to be dynamic. I'm not entirely sure why but static type languages are not very good at allowing code modification while running (I mean I have ideas but I don't know precisely if there is an actual theoretical limitation).

I guess I prefer static analysis over the complete ability to modify the code base while running.

Only add my 2 cents because the article doesn't mention any negatives to REPLs.

<comment><AUTHOR> The thing to realise is that, at least is my experience, REPL based development doesn't mean your are actually typing code into the REPL.

Instead, you develop code in a file, but constantly evaluate code as you go along.

When I work on a clojure project, I very rarely open the actual REPL, but I am constantly evaluating code and experimenting with different implementations of functions.

Then, when I'm happy with the results, I ask the editor to evaluate and insert the results back into the editor. This then becomes the unit test.

<comment><USER9> _> The thing to realise is that, at least is my experience, REPL based development doesn't mean your are actually typing code into the REPL._

 _> Instead, you develop code in a file, but constantly evaluate code as you go along._

Yes but what you are describing is hot code replacement and evaluation. You do not need a REPL. For a concrete example Java + JRebel + Debugger (Eclipse calls it Display with a glasses icon) will do that for you.

In my mind a REPL is very much about the input and of course the output otherwise its basically what I mentioned above.

And I think the the article doesn't really go into any new innovation or attempts at making REPLs better (particularly because they mention Bret Victor)... ie better input and better output.

Yes advanced REPLs have history saving capabilities and what not but then they are basically competing with the rest of the editor, IDE and source control.

Really innovative REPLs I think are what Bret shows, as well Squeak, and Racket. Those environments offer really unique input and output.

</comment></comment></comment><comment><USER10> "Finally, not all programs need be fully automated - sometimes the middle ground between manual and automated is exactly what you want. For instance, a REPL is a great environment to run ad hoc queries to your database, or perform ad hoc data analysis, while leveraging all of the automated code you have already written for your project"

This is exactly why I love Python. My Django webapp gets features (DB reports, external API pushes, etc) added as the client's budget allows, and before they are I'll often do them manually. Given that the UI for a new feature is usually the most work, it's been working well.

So the process usually goes: REPL/Django shell -> Django management command -> End-user facing feature. I'll grab what I did the first time in the Django shell, and put it into model logic plus a tentative management command. Then the next time I have to do the task I'll make sure the command works properly. And then when the budget allows I'll add access via the UI.

Ninja edit: I forgot to mention that `import ipdb; ipdb.set_trace()` is invaluable to get to the point in the HTTP response code where you can start adding new stuff or diagnose errors directly.

<comment><USER11> I've dabbed in elixir and clojure for some time now and the ability to gain a REPL into a live system opens many opportunities for live debugging and introspection. It's a great tool when dealing with unknown states and bugs in production.

</comment></comment><comment><USER12> I would also add hot loading, aka the ability to change your code and get to the same point in the execution of the code.

<comment><USER13> Hot loading only implies the former (change code of a running app) and not the latter (automatically rerun application and return to paused point).

Hot loading is typically a deployment feature that doesn't interact with the debugger at all (it doesn't require the program to be paused). Fix and continue (from smalltalk) never put the program back into a good state after code update.

</comment></comment><comment><USER14> I loved this article. I am a huge proponent of development ergonomics, and clojure(script) are really fantastic in this area. Most languages have a pretty similar standard set of tooling, but the pieces that a language does exceptionally well really stand out in cases like this.

I'd really love to see what languages designed specifically with ergonomics/tooling in mind look like

<comment><USER15> > I'd really love to see what languages designed specifically with > ergonomics/tooling in mind look like

Warren Teitelman (and later many people at Xerox PARC) did this with BBN Lisp/Interlisp, starting with real paper teletypes through to graphical workstations.

</comment></comment><comment><USER16> Matlab has a nice sort-of-repl feature which I miss in every other language: you can separate the code in a file into several blocks and then execute the current block (the one with which contained the cursor) with ctrl+enter. With this feature you still have the full text editing capabilities but you also have a flexibility you get from a repl.

<comment><USER17> Most Lisp modes for Emacs have an eval-sexpr-at-point command which allows you to send the current sexpr to the REPL. This is in SLIME for CL but even the most basic Scheme mode has it as well.

<comment><USER8> Clojure's Emacs REPL also has this; it's strange that the article does not mention it, but talks about copying back and forth between REPL and suorce, which I consider a antipattern and really ugly workflow.

</comment></comment></comment><comment><USER18> Take a look at Smalltalk's environment and take a look a t Common Lisp's REPL. They have all the features that make for a good 'REPL'.

(As noted before, REPL is a Lisp term that stands for:

read - from keyboard input, parse the input string into the syntactic structure of the language

eval - eval the expression, this includes binding variables or defining new functions, also re-defining functions, even if such function is currently under execution on the running program.

print - print the result of the evaluation (in Lisp all expressions evaluate to something, even if this 'something' is NIL).

loop - go to 'read')

<comment><USER19> > Common Lisp's REPL

The SBCL and CCL REPLs do not support readline-style editing. This actually makes them infuriating to use outside of Emacs or some other IDE-like environment. There is definitely a market for a high-quality, implementation- independent Lisp REPL.

<comment><USER20> rlwrap FTW

<comment><USER19> Also linedit. But using it still requires you to add it to your favorite implementation's init file. Would it be possible to write a "meta-REPL" using linedit? Then again, there already is a Jupyter kernel for CL, so maybe I should look into making that work for me.

</comment></comment></comment></comment><comment><USER21> > Data literals. That is, the values manipulated in the programs have a > textual representation which is both readable for humans and executable as > code. \--8<\--

This is not a dig at Kotlin/Java/Whoever but it bugs me (coming from Ruby) no end when regexen don't get to have a regex literal syntax and a match operator. I was going through the Kotlin language docs last night and its such a concise language with well thought out syntax and this omission jumped out at me.

Is it me? Do others really not think it's a big deal? I learned how to code via BASIC then ASM then C and early C++ and none of these had regex literals so for the longest time I literally (hah) did not know what I was missing. Now I can't imagine why a language wouldn't have them. I guess Ruby shows its Perl heritage. But Javascript has 'em, _you go Javascript_ , and thus Typescript. And don't get me started on raw strings """Yuck!""" dear Lord, how gruesome. I think how Perl6 is brace savvy is the way forward. I'd also like to be able to specify my own braces to construct my own type as a shorthand, that'd be great DSL, so that,

         i = %something%

would construct an instance of type Foo assuming the correct %T% (by way of example) constructor syntax. That'd be neat-o.

<comment><USER7> > I'd also like to be able to specify my own braces to construct my own type > as a shorthand, that'd be great DSL

That's the purpose of readtables in Common Lisp, defining custom readers for converting external representation to internal ones.

<comment><USER21> Thanks, I'll check it out.

</comment></comment></comment><comment><USER22> I personally prefer to develop by writing small functions and pairing them with a small test. Hacking in a REPL environment, saving the result and calling it source code has not worked out well for me, I end up producing spaghetti :)

I do however find REPL to be invaluable when experimenting/doing research. When you don't even know what the end result is, or when exploring data, you need to iterate over many ideas as quickly as possible and REPL is the fastest way to do that.

</comment><comment><USER23> Quokka adds a nice repl like experience for JavaScript/typescript to various editors. I'm a fan of their products!

Hydrogen is quite nice for python repl development in atom. Hydrogen connected to a remote kernel plus a script to synchronize files to a remote server replaces writing code in Jupyter notebooks for me (I just can't enjoy editing code in a browser ...)

<comment><USER24> Hydrogen seems nice, I also occasionally get tired of the default jupyter notebook interface and use Emacs[1] to edit my notebooks, this way I can have all the niceties of jupyter notebooks without working in the browser :D

[1] -- ([https://github.com/millejoh/emacs-ipython- notebook/blob/mast...](https://github.com/millejoh/emacs-ipython- notebook/blob/master/README.rst))

</comment></comment><comment><USER25> I like the idea of _accessible_ code. It seems the next level after testable code.

Code with a lot of mockable dependencies is usually considered testable but sometimes it's a pain to setup.

Accessible code seems to fix this. Instead of taking dependencies, return some data so it's easy to check what your component does in isolation.

</comment><comment><USER26> There's a lot of excitement about compiled languages lately, and many seem to wonder if interpreted languages are dying. Unfortunately I don't see the value of a good REPL brought up in those conversations very often.

<comment><USER27> I like a good interpreted language as much as the next guy, but there are REPLs for compiled languages. Pretty sure Scala has one and maybe Haskell

<comment><USER28> Though, they are lacking the magic of a REPL in CL. Hotspot replacement in JVM languages is neat compared to the magic of redefinitions in CL.

And it seems nobody ever tries hooking a REPL up to a running system anymore.

<comment><USER29> Java 9 is also bringing one.

<comment><USER28> I'm curious what makes this superior to Beanshell. Or any other style of REPL that you could do on the JVM.

Not against the idea, per se, but it seems hardly new ground. And unlikely to be nearly as powerful as a REPL in CL. (Though, again, few things are. Not sure that any are, to be honest.)

<comment><USER29> Well, Beanshell is dead, last update was on 2005.

Then there is a big advantage on having it as standard tool, instead of something done by third parties.

<comment><USER28> My question in that vein is more of "why will this succeed, where beanshell failed?"

That is, I had REPL style environments for java a long time ago. And literally nobody used it. I can see arguments for having the REPL being in actual Java instead of a shell subset. But, Java has a long way to go from bootstrapping something in a repl and automatically saving it to something that will work as a normal entry point. (Though, again, even JRebel has existed for a long time now.)

</comment></comment></comment></comment></comment></comment></comment><comment><USER30> I think REPLs work better in languages that provide 1st class immutability support, since it's easier to set up state once, then play with functions without having to re-set up state every time you tinker.

<comment><USER31> I think REPLs work better in languages that don't provide 1st class immutability support, since it's easier to change state, then play with functions without having to re-set up state every time you tinker.

<comment><USER32> You could just store your modified state to new variables though

<comment><USER7> In a live-coding session, how does the existing, running code knows that it should look at the new variables instead of the old ones?

<comment><USER33> Have a look at the video. Having immutable values doesn't mean you have immutable variables / names.

<comment><USER7> I know, the parent post was saying "you could just store your modified state to _new_ variables", not replace what _existing_ variables are bound to.

</comment></comment></comment></comment></comment></comment><comment><USER34> I miss developing a function in a REPL and then copy pasting it into the source code. Those Clojure days...

</comment><comment><USER35> Autcomplete is awesome to have. The difference between something like ipython or bpython just for the autocomplete alone is huge, imho.

</comment><comment><USER36> Exportable input and output of session

</comment><comment><USER37> History/sessions

It's great to be able to see the entire run of your current and past repl sessions.

</comment><comment><USER38> vi mode!

</comment><comment><USER39> I like when you can type part of a line of code, press the up arrow, and have the REPL complete the line from history.

</comment><comment><USER40> Saving state between runs. R has surpassed Python for me just for that feature, for interactive exploration.

<comment><USER41> I've never found a case where I've wanted to retain state between R sessions (I think doing so can be an anti-pattern).

But... that image saving feature is very much like that of Common Lisp. Given Ross Ihaka's then-and-now fondness for CL, I'd be shocked if this feature weren't very much intentionally patterned off that. The original implementation of R was on top of a Scheme runtime, but I don't know if images were (then) a feature.

<comment><USER15> R workspaces are an idea borrowed from APL: [http://aplwiki.com/LearnApl/AplWorkspace](http://aplwiki.com/LearnApl/AplWorkspace)

Common Lisp and Scheme do not have any specifications for persistent state, and the implementations that do have images are all over the place in what those images do and how they are made.</comment></comment></comment>


Ask HN: Where can I find a "literary" equivalent to HN? - <AUTHOR> In other words: I come to HN because I'm a programmer and love technology, I come to X because I'm a writer and love language. What are some good values for X? <comment><USER2> LitHub is a very popular destination.

[http://lithub.com](http://lithub.com)

<comment><AUTHOR> LitHub looks interesting but it's more of a publication than a forum, yeah?

<comment><USER2> Definitely, although it does have some forum-style characteristics. TTBOMK, there isn't an _exact_ equivalent of HN for literature lovers, and that's likely due to the target demographic.

</comment></comment></comment><comment><USER3> [https://write.narwhal.space/](https://write.narwhal.space/) maybe?

<comment><AUTHOR> Looks very similar to HN but, at a first glance, I don't see much activity there? would your experience contradict this observation?</comment></comment>


Ask HN: Anyone interested for joining to startup team of three? - <AUTHOR> We are team of three (2 backend guys and one frontend) willing to build startups. We are looking for one more frontend developer with 2+ years of experience.
Anyone interested should have experience with:
 Semantic UI Bootstrap jQuery
If you are interested, contact us on
email@example.com <comment><USER2> Is it possible to work remotely?

<comment><AUTHOR> Yes, actually we are all working remotely.

Contact us if you are interested</comment></comment>


Interest in a downtown Baltimore based Hacker House? (starting Summer 2012) - <AUTHOR>

I am considering converting a large downtown Baltimore home into a full time live/work hacker house.  The scene here is in it's infancy, with the city overall being very conducive to creativity and culture (moreso than DC IMO but less than NYC).  I am gauging interest from the community in being interested in participating.  Cost of space would be comparable to similar rental spaces, except this is focused on attracting similarly minded people in a creative environment.  A program supporting the goals of applicants would also be developed.<p>There are also tons of tech related jobs and companies in the area as well. <comment><USER2> I would consider supporting a project like that. Im in the area and i have alot of classic hardware and a fair amount of unix experience, there was a cool 2600 scene a long time ago but its died out, the 2 hacker spaces in existence are pretty slick but i feel there is room for a more computer / information centeric hackerspace as well as one that has live-in members. feel free to contact me at email@example.com if you get serious about it

<comment><AUTHOR> Yea I definitely think a live-in space would be more like what I'm thinking. The building is coded for 4-5 occupants with large communal spaces and easy access to the major transportation arteries.

</comment></comment><comment><USER3> That would be awesome. Have you brought this up on the Node hackerspace list? or notified the LUG?

I've been in Portland, OR for the last 6 months, but I was just in Baltimore for 5 years. I agree with your assessment of the community and I'd agree that the timing is right to start one there. I'd also love a reason to make my way back there for a bit :)

PS: what do you consider downtown? which neighborhood?

<comment><AUTHOR> MLK and Lombard (Pigtown). I consider downtown cause it takes me 7 minutes to get to the waterfront.

This is first pass at throwing the concept around to test. Ideally I'd be looking to house 3-4 start ups with occupants of compatible skill sets.</comment></comment>


The US Navy just confirmed these UFO videos are the real deal - <AUTHOR> https://www.cnn.com/2019/09/18/politics/navy-confirms-ufo-videos-trnd/index.html <comment><USER2> Before people here start offering ideas of what they think these objects are, let review what we know they are not:

They are not balloons: -they move too fast and travel under water (as there were confirmed sonar hits of these objects). They are not conventional aircraft: -they have no wings or signs of obvious conventional propulsion. They were not false radar blips: -they were tracked on advance gun sight cameras including in both the infrared and high definition video modes. They were not camera software malfunctions -Because they were tracked on Navy ship radar, Sonar, Space based radar, and jet fighter radar.

These objects can do maneuvers that can't be explain by our conventional physics because they defy our common understanding of inertia. This includes accelerating at extreme speeds, stopping on a dime, and changing directions instantaneously.

The real truth is the US government (and others) do know, and have known for decades, that these craft are extra terrestrial. In addition the US government has recovered and possible reverse engineered some of the technology behind them. This secret they believe is too large to let go of due to multiple military, social, economic and religious implications, none the less, it's our responsibility to hold them to account and demand they tell the truth! Way too much is at stake to keep this all hidden any longer, it's time for full UFO disclosure.

<comment><USER3> Which is more likely: aliens have arrived on Earth with extraterrestrial vehicles from (likely) light years away, and have allowed themselves to be spotted by terrestrial aircraft; or, militaries with huge budgets and some of the smartest scientists and engineers in the world have designed incredible vehicles that have been kept secret even from members of their own military?

<comment><USER4> While the latter is more likely given that our governments have done exactly this in the past, there are some reasons to believe that if aliens were to warm up to the idea of contacting us, it might be pretty soon.

We have global communication networks now and are rapidly approaching AGI. For all we know we could be on the verge of a critical inflection point for our civilization that might make it worthwhile to interfere.

Also, the idea that we've been under quarantine up until now is a pretty compelling explanation for the Fermi paradox.

<comment><USER5> > rapidly approaching AGI

We are as far away from that as we were when we were banging rocks together in caves, IMHO

</comment></comment></comment></comment><comment><USER4> While I'm sure these are most likely some sort of military drones or other type of classified technology (don't ask me which nation's), I will note that the description of these things sounds an awful lot like a Culture drone.

Just saying.

</comment><comment><USER6> > Gradisher said the Navy's transparency about unidentified aerial phenomena, > or UAP, is largely done to encourage trainees to report "incursions" they > spot in the airfield, which threaten pilots' safety.

> ...

> "For many years, our aviators didn't report these incursions because of the > stigma attached to previous terminology and theories about what may or may > not be in those videos," he said.

This makes the confirmation sound like the start of a new policy. Is it?

</comment><comment><USER7> Without implying it must be conspiratorial, do not rule out the possibility it is simply disinformation.

</comment><comment><USER8> These UFOs might be radar reflector balloons:

[https://www.thedrive.com/the-war-zone/28640/could-some-of- th...](https://www.thedrive.com/the-war-zone/28640/could-some-of-the-ufos- navy-pilots-are-encountering-be-airborne-radar-reflectors)

<comment><AUTHOR> This definitely matches the description by one of the pilots as "a sphere encasing a cube," but it wouldn't really explain the directional changes or extremely high observed speeds.

<comment><USER9> The object descended from 28000FT to 50FT at 24000 miles per hour with instant acceleration, no signs of thrust or even wings. According to the reports, for me its whether you believe the reports from those that saw it or not. If you choose to believe them, then it's hard to believe the earth tech to allow this was possible in 2004.

<comment><AUTHOR> I'd like to discuss this further with you privately if you are so inclined. Email is in my profile. Send me something if you'd like to discuss further. cheers</comment></comment></comment></comment>


Show HN: Web Based Music Composition - <AUTHOR> http://www.wetracker.xyz <comment><USER2> what do you use to build the ui?

<comment><AUTHOR> The "widgets" are implemented using Gridstack ([https://troolee.github.io/gridstack.js/](https://troolee.github.io/gridstack.js/)), the rest is all hand coded JS/CSS. The pattern editor, waveform editors and other intensive aspects are implemented on top of the HTML5 canvas.</comment></comment>


Shares in People - <AUTHOR> http://stumblingandmumbling.typepad.com/stumbling_and_mumbling/2013/10/shares-in-people.html

<comment><USER2> I had the same idea. It's a great way for new celebrities to raise money for whatever they want to do.</comment>


Looks like N.YC got its first spammer! - <AUTHOR>

http://news.ycombinator.com/user?id=cris2cool<p>:( <comment><USER2> If I could just be a touch sycophantic for a second: I'm actually REALLY impressed at how good News.YC is at deflecting spammers. I have a super low- traffic blogger blog and I see more spam there than I see on Hacker News.

<comment><USER3> I don't know how well news.yc deflects spam, but there are admins behind the scenes who delete spam before it's widely seen.

</comment></comment><comment><USER4> Yep, not the first. There's also the GIMAD dude: <http://news.ycombinator.com/submitted?id=GIMAD>

</comment><comment><USER5> not the first, there was a whole discussion about.... ipodchick? (I think that was the name)

<comment><USER5> <http://news.ycombinator.com/item?id=115800>

</comment></comment><comment><USER6> I think that the fact that so many have said "YC got it's first spammer" so many times, is such a good testament to how fast spammers are dealt with. Thanks!

</comment><comment><USER7> cris2cool is definitely not the first! (nor the last)

They've just been doing a good job keeping spammers at bay.

</comment><comment><USER8> Jokingly voted them up.

<comment><USER8> Ha. Michigan vacations? I didn't know there was such a thing. Next they'll be spamming time shares in West Virginia.

<comment><USER2> Next they'll be offering Eastern Washington vacations.

Come for the sagebrush, stay for the irradiated rattle snakes.</comment></comment></comment>


Security Engineering – A Guide to Building Dependable Distributed Systems - go-red-team https://www.cl.cam.ac.uk/~rja14/book.html <comment><AUTHOR> This is a great book!

After reading it I found it much harder to enjoy movies showing bad security though (such has heists, nuclear anything, ..).

E.g. from the book I learned about the IAEA recommendations for safekeeping nuclear material [1], and it's pretty clear that smart people spent some time thinking about the various threats.

Anyway, rambling. It's a great and very entertaining book, go read it!

[1] [https://www- pub.iaea.org/MTCD/Publications/PDF/Pub1481_web.p...](https://www- pub.iaea.org/MTCD/Publications/PDF/Pub1481_web.pdf)

</comment><comment><USER2> > Whitfield Diffie and Martin Hellman argued ... that such a machine could be > built for $20 million in 1977. IBM, whose scientists invented DES, retorted > that they would charge the US government $200 million to build such a > machine. (In hindsight, both were right).

</comment><comment><USER3> Great book (I own past edition). Is the content significantly refocusing on distributed systems? At first, it looked like a new book, but I think he updated the title (and the content)

</comment><comment><USER4> Recommend this book, the earlier editions are a great introduction to what goes wrong with security.

</comment><comment><USER5> I got this recommended this book the other day, it reads like a novel which makes it an easy read, but it's also pretty large and intimidating. The kind of book that would have benefited being split in several books.

</comment><comment><USER6> Still one of the scariest books I've ever read.

</comment><comment><USER7> Ross Anderson is near the top of a short list of security researchers that, when they write something, you should stop and read it.

<comment><USER8> Who else would you put on that list? I'd love some suggestions

</comment></comment><comment><USER9> Awesome. As a CS student, I'm trying to take in as much as I can. Just finished the Phoenix Project. Will start on this now.

</comment><comment><USER10> Do yourself a favor and read 'Engineering Trustworthy Systems' by O. Sami Saydjari

<comment><USER11> Are you saying this because you have read both books and prefer ETS?

<comment><USER10> Yes, absolutely. What I like about ETS, and quantitative risk in general, is that it makes all of the advice in these books actionable.

<comment><USER12> How do you find quantitative risk in general?

I find this approach problematic in computer security systems because assigning a meaningful numerical risk turns out to be very, very difficult.

I'm often dealing with rare events that I'd prefer to happen 0 times. Very many of the kinds of failures I'm concerned about are black swans.

It's worse even than other kinds of engineering risk because the absolute risk of a specific attack _changes_ as you add controls in other areas (weakest link effect).

Often the importance of certain things (say the value of certain ux security controls) depends on user behaviour, but usually the user research is lacking and too expensive to do (ie would cost more than the feature).

Vulnerability management is even worse! Any policy based on "risk scoring" (rather than evaluating specifics in context) ends up being basically scientism.

I find most numerical security exercises exasperating and what I've observed is that most people end up shuffling numbers until the scores that pop out match their intuition and judgement. I prefer not to even play that game if I can avoid it.

Perhaps I'm doing it all wrong.

I will say that in certain fields (fraud in particular) where you have enough data points to make meaningful decisions that numerical approaches do work really well.

<comment><USER6> People tinker with model numbers to match intuition in pretty much every field. Sterman showed[0] that expectation formation (ie, estimates/forecasts tracked over time) strongly follow a moving exponential trendline, even for what should be very sophisticated forecasters.

The explanation? Forecasters fudge the numbers because (1) it takes time to cognitively or emotionally assimilate changes in the outside world and (2) nobody wants to stand out in a crowd of forecasters. Being the same kind of wrong as everyone else is acceptable in polite society.

I don't see the problem of fudging as necessarily a refutation of the attempt to formalise estimation techniques, though. I realise that this puts me in No True Scotsman territory ("you didn't do it right!"), but that's more or less how it is.

I do broadly agree with what I guess is you disliking the CVSS. I spent time performing a very close reading a few years ago and I came away quite dissatisfied. I'm not sure if we yet have an ontology that can be backed by a testable theory, or even whether there exists a large enough body of trustworthy data that could be subjected to factor analytical techniques and/or clustering and/or some light torture.

[0] "Expectation Formation in Behavioural Simulation Models", [https://dspace.mit.edu/bitstream/id/1773/SWP-1826-15672771.p...](https://dspace.mit.edu/bitstream/id/1773/SWP-1826-15672771.pdf/)</comment></comment></comment></comment></comment>


World 1-1 "The Pioneers" - <AUTHOR> http://worldoneonemovie.com/#/

<comment><AUTHOR> World 1-1 is an independent documentary on the early history of video games but I saw the premier and this is more about entrepreneurship, startups and creating a company culture as well. I highly recommend you watch it and support the 2 filmmakers that created it, lots of hard work!

</comment><comment><USER2> Somebody didn't replace the default Yeoman favicon...

</comment><comment><USER3> light orange font on dark orange background, hmm....</comment>


Rupert Murdoch Calls Google a "Piracy Leader" - <AUTHOR> http://thenextweb.com/insider/2012/01/15/rupert-murdoch-is-at-it-again-on-twitter-calls-google-a-piracy-leader/ <comment><USER2> If you create software, and you oppose SOPA, and you're on Twitter, please let @rupertmurdoch know. He writes, "So Obama has thrown in his lot with Silicon Valley paymasters who threaten all software creators with piracy, plain thievery" I'd prefer he not speak for me. Or anyone but himself.

</comment><comment><USER3> It's funny, Rupert Murdoch voicing his opinion against something is pretty much an endorsement of it. He probably knows this, and the fact that he's said anything at all means he has given up support of these two bills.

</comment><comment><USER4> I think Rupert Murdoch has been called much worse.

</comment><comment><USER5> I suppose it's a horrible thing to say or even think, but itss time this man moved on.</comment>


Console for debugging web apps on mobile devices - <AUTHOR> https://github.com/B1naryStudio/js-mobile-console

<comment><USER2> I don't know the non-iphone alternative to this, but I use safari to connect to my iPhone which allows me to read the console, view the dom and execute commands on the browser window through console inputs. [https://developer.apple.com/safari/tools/](https://developer.apple.com/safari/tools/)

<comment><USER3> The generic version of this is weinre [1], which also uses the WebKit debugger.

I love the Safari/iPhone flavor, but I wish it persisted between page loads. Having to constantly re-open it from the menu gets annoying fast.

[1] [http://people.apache.org/~pmuellr/weinre- docs/latest/](http://people.apache.org/~pmuellr/weinre-docs/latest/)</comment></comment>


China faces fight to hang onto foreign manufacturers - <AUTHOR> https://www.scmp.com/economy/china-economy/article/3081415/coronavirus-china-faces-fight-hang-foreign-manufacturers-us <comment><USER2> I think a lot of the movement will be to Taiwan, Vietnam, and other countries in SE Asia, rather than wholesale relocation back to the US, EU and Japan.

It's also an opportunity for India, if the country can address issues that have hindered certain kinds of manufacturing in the past.</comment>


Facebook Joins the Live-Streaming Crowd with a Service for Celebrities – NYT - <AUTHOR> http://www.nytimes.com/2015/08/06/technology/facebook-joins-the-live-streaming-crowd-with-a-service-for-celebrities.html?_r=0&gwh=9FA04FC878055473E80B5EF30A6D9666&gwt=pay <comment><AUTHOR> "Facebook is joining a competitive market. Periscope is owned by Twitter and reported one million users in the first 10 days after its opening. Snapchat's curated streams, known as Live Stories, receive an average of 10 to 20 million viewers, Shannon Kelly, a spokeswoman for Snapchat, wrote in an email."</comment>


Why Aren't Doctors Drug Tested? - <AUTHOR> http://www.nytimes.com/2014/03/13/opinion/why-arent-doctors-drug-tested.html?ref=opinion

<comment><USER2> Some hospitals to implement random drug testing. Micromanaging healthcare isn't going to make drug abuse disappear -- abusers will just get better at hiding it.</comment>


Supermechanical is creating the smartest thermometer for omnivores everywhere - <AUTHOR> https://www.kickstarter.com/projects/supermechanical/range-dial-connected-food-thermometer-that-lets-yo <comment><USER2> Why do they show pictures of animals rather than a proper temperature? Why does it have a picture of a whale?

<comment><USER3> Because those are presets, and most people start with the meat they want to cook - not what temperature to cook to. You can set an alert to any temperature by dragging the green handle in the middle up. And that's a fish.

<comment><USER2> Definitely a whale.</comment></comment></comment>


How Microsoft Fought True Open Standards I  - <AUTHOR> http://blogs.computerworlduk.com/open-enterprise/2012/04/how-microsoft-lobbied-against-true-open-standards-i/index.htm?cmpid=sbycombinatoranguyen <comment><USER2> I'm not a UK citizen, but doesn't this Cabinet Office make its own decisions?

The article focused so much on what Microsoft is lobbying for and Microsoft's use of rhetoric for its own ends, but seemed to place little blame on the Cabinet Office itself.

What does the author expect Microsoft to argue for besides use of its own products and standards?

Really, it would be far more valuable to call out the Cabinet Office's decision makers and the process they use for coming to these kinds of decisions.

</comment><comment><USER3> I didn't see the link to the documents quoted in the article, so here is the request and the documents provided in response.

[http://www.whatdotheyknow.com/request/open_standards_when_sp...](http://www.whatdotheyknow.com/request/open_standards_when_specifying_i#incoming-269756)

</comment><comment><USER4> Doesn't ICT (information and communication technology) include hardware as well as software? While I understand the attraction open source holds, the law was clearly written not to require its use. Microsoft is not acting nefariously. They are simply commenting on government rules in a similar way to other interest groups.

<comment><USER5> I think the article succinctly rebuts you:

"But there's a larger point here. Many hardware standards are indeed FRAND rather than RF, but contrary to Microsoft's assertion in the letter of 20 May, these would not 'be excluded by PPN 3/11's definition of Open Standards.' And the reason is extremely simple: because that original Open Standards document began by declaring:

" _When purchasing software, ICT infrastructure, ICT security and other ICT goods and services, Cabinet Office recommends that Government departments should wherever possible deploy open standards in their procurement specifications._

"It then goes on to emphasise:

" _Government departments should ensure that they include open standards in their ICT procurement specifications unless there are clear business reasons why this is inappropriate._

"That is, there are already two very clear get-out clauses that would permit the use of FRAND standards when there were no RF standards available, or - even more flexibly - if there were 'clear business reasons why [the use of RF open standards] is inappropriate'.

"Nobody is suggesting that GSM phones, say, should be banned from UK government use, as Microsoft's letter seems to insinuate. For a start, these are hardware standards, and not about software interoperability at all; secondly, there are no comparable RF open standards that could be used, and even if there were, there would be clear business reasons why GSM phones should still be purchased. There simply isn't a problem here."

<comment><USER4> Comments on regulations are invited so that government authorities may determine what those regulations mean and how to implement them.

It appears from the article Microsoft is asserting that some interpretations which would be disfavorable to Microsoft have broader implications if applied uniformly across the spectrum of ICT goods and services.

The author wants to draw a distinction between software and hardware under the law without supplying evidence that such a distinction is made within it, e.g. his claim about GSM being acceptable is based on "nobody suggesting."

The author appears to have an ax to grind, democratic processes be damned.

<comment><USER6> uhh, did we read the same article? he suggests that in all instances FRAND would be acceptable if there were not a truly open standard.

MS is still doing it's best to 'cut off the air supply' of a free and open IT ecosystem. Nothing new to see hear. MS fanbois will proclaim innocence until the last GPLed piece of code is eliminated.</comment></comment></comment></comment>


23 Programming Languages compared through their Amazon book sales - <AUTHOR> http://antoniocangiano.com/articles/2007/07/05/23-programming-languages-compared-through-their-amazon-book-sales <comment><USER2> _Sams Teach Yourself SQL in 10 Minutes, Third Edition_

Eh. I taught myself VB 4.0 in, like, 6 minutes.

Books like that of course teach you things as slowly as possible. I've seen programming books that got to arrays on page 450. By contrast, the MIT lectures (where sicp is introduced) is already on recursion vs. iteration and big O() notation by the second hour.</comment>


Show HN: Weya - Fast CoffeeScript markup - <AUTHOR> http://vpj.svbtle.com/weyacoffee

<comment><USER2> This looks like a neat little library, and I'm intrigued by the progressive rendering. But I'm confused about how it handles updates. Do you just rerender the whole thing? I ask because in some ways this looks similar to, though somewhat more cumbersome than, developing React in CoffeeScript.

 _So you can't use enter(), exit() and updates when data changes. But most users rarely need these features._

I'd argue that if you don't need `enter` or `exit` you probably don't need D3. It's not a DOM manipulation library, it's a data binding library.

And a note to the mods: there's an extra 'f' in the title.

<comment><AUTHOR> > But I'm confused about how it handles updates. Do you just rerender the > whole thing?

Here is how I use it in such scenarios:

      elems = {}

      Weya elem: document.body, ->
       for k, v of data
        elems[k] = @div "#{v}"

      #when element k changes
      onChange = (k) ->
       elems[k].textContent = "#{data[k]}"

If the change is more complex Weya can again be used to render the content of the changed element (not the entire dom).</comment></comment>


Too many Ubuntu reboot required updates lately - <AUTHOR>

It seems to me like that past 3 or 4 months, around the time the Windows 10 announcements started heating up; Ubuntu has reboot required updates at least twice per week. <comment><USER2> You can judge whether _you_ need to reboot based on the CVEs being patched. Some things probably don't apply to your situation but the system tells you to reboot because it doesn't know. You can see them here: [http://www.ubuntu.com/usn/](http://www.ubuntu.com/usn/)

Hopefully rebooting for Kernel patches will go away by the next LTS, which should be well into the 4.x Kernel and therefore able to take advantage of the new rebootless shim updates.

</comment><comment><USER3> Not only that, but in my case frequent kernel patches have been triggering this bug over and over for months:

[https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics- dr...](https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics- drivers-331/+bug/1268257)

To the point that I hesitate to update the kernel promptly because I don't want to spend the additional 5 minutes to reinstall the nvidia driver and doublecheck that everything is working.

</comment><comment><USER4> I've been happily installing them all (I've had at least 4 in under a month), because I have an extremely recent laptop, and every update fixes something else! (dell xps13 developer edition.)</comment>


When your coworker does great work, tell their manager - <AUTHOR> https://jvns.ca/blog/2020/07/14/when-your-coworker-does-great-work-tell-their-manager/ <comment><USER2> This is the biggest problem with stack ranking software engineers, the practice I had to endure while at a well known software company. All it does is create a zero-sum game, so I have no incentive to compliment anyone else. I needed to make sure that my rank was as high as I could make it, which really sucked during performance time. It was very stressful, even though I was a high performer, because it didn't foster the type of environment I wanted to work at, which is collaborative.

I heard from my friends at Facebook that the environment there is equally crazy. Everyone knows that the performance reviews are based on lazy stats, so they game the stats. Every time someone requests a meeting, they are expected to give a "thank you" which is one of the measures for performance. Also, things like the number of reviews commented on could be easily gamed by adding a "+1!" as a comment which sounds like another undesirable place to work at. Maybe current Facebook employees can comment, however.

<comment><USER3> This is what I loved about working at Netflix. We didn't have performance reviews. It was assumed that your performance was good to excellent, otherwise you wouldn't be working there anymore. You had a constant feedback loop with your manager on performance, but nothing was ever formal.

Raises were completely divorced from any performance assessment. You were paid whatever they thought the max was for your skillset, based on a bunch of data they had on what people at other companies got paid for similar work.

What we did have was 360 reviews once a year. It was basically a small survey you could fill out about anyone in the company, which they and their manager would see. You could evaluate your boss, your VP, or people who worked for you, or anyone else you worked with anywhere in the company. It was expected that managers do a 360 review for all of their reports, but beyond that you could do as few or as many as you wanted to. It was basically a start/stop/continue kind of thing.

It was such a refreshing change from the stack ranking at eBay, which forced good people to get shitty reviews just so they could "fit the bell curve". And as you said, it incentivized you to not praise coworkers and some people even actively sabotaged their coworkers to get a better rank.

<comment><USER4> I think this culture is often the difference between a company that's in exponential growth mode - where you care more about velocity than costs. When a company becomes a stable giant, the engineering department is no longer necessarily creating value in the same way it was before and often slowly becomes bloated.

<comment><USER5> I agree, but in the specific case of Netflix, people are let go _all the time_ , and managers have a lot of authority to make the decision to fire someone. Tenure doesn't matter, either -- you could work there for 6 years and end up getting fired when you get a new manager or the existing one decides you're phoning it in.

<comment><USER6> That's a massive amount of trust placed in managers. I've had asshole managers before that didn't have this much power thanks to company structure.

Honestly I would never work at a place like this. Maybe it's lean and efficient for the company, but it definitely doesn't sound fun for the employee.

<comment><USER3> It's not as bad as it sounds. Yes, it certainly happens and it sucks for the good person that it happens to. But managers like that don't last very long.

When you get let go, they ask in the exit interview if you were warned, if your manager gave you any feedback leading up to it, etc. And then they follow up if the person says, "it was a total shock". I've definitely seen managers make some bad firing decisions, but they were let go soon afterwards. Word gets around quickly to their manager that they let go someone who was a strong contributor.

<comment><USER7> _When you get let go, they ask in the exit interview if you were warned_

Why would anyone give any kind of useful information in the exit interview? The only one who benefits is the company, they need to cover their back in case a suit over harassment comes up. If anyone wants revenge over poor management, keep silent, let the fellow continue to lose the company money and set them up for a lawsuit.

HR is not on your side. The company is not on your side. The union would be, but in software we can't have that.

<comment><USER3> That's a very cynical view. While the company may not be on your side, helping your coworkers by proving feedback about bad management is a good thing.

Also, why would you want the company to fail? Just because they have one bad manager? My friends still work there, and if you have stock options, you even have a financial interest in the continued success of the company.

I see no downside in providing truthful feedback during an exit interview. Sure, it won't help you, but it helps everyone else that's still there.

<comment><USER8> The context being described is one in which you were just sacked at the whim of a manager. Doesn't it seem a little funny to wait until the exit interview to ask if it came as a surprise? Maybe they're going to act in that information somehow, perhaps sacking that manager if it's part of a pattern of poor decisions, but they're not planning on doing anything to help _you personally,_ like overturning the dismissal.

Maybe you're inclined to help them out just to be a good person, and that's fine; but I don't blame anyone who doesn't want to do that.

<comment><USER3> > Doesn't it seem a little funny to wait until the exit interview to ask if it > came as a surprise?

When else would they ask? The exit interview is when you are being informed of the decision.

The process is you get a meeting invite for a 1 on 1 with your manager. They come in, tell you that you're getting let go and why, and then invite HR to come in. They then leave and HR goes over the paperwork and asks you about if you expected it. If you were a poor performer, then it's most likely not your first meeting with HR.

I'm not sure when else they would ask.

<comment><USER9> " I'm not sure when else they would ask"'

Perhaps have the manager give their decision making and their inputs in writing, have the employee review these and provide a response. After all, if the employee were good enough to have lasted six years under the scrutiny of other good peers, then a sudden firing needs investigation. That's how it is done at other places where people are valued.

This entire thread reminded me of the callous attitude toward firing shown in the movie "Margin Call". Is it all related to American culture that the rest of us don't understand?

<comment><USER3> You will never ever get a reason for being fired in writing here in the US because all that does is provide evidence for a possible lawsuit.

> Is it all related to American culture that the rest of us don't understand?

In part, yes. Here in the US we don't really have worker protections. Many believe it is because of this that we have such a strong growth in business.

It objectively makes our economy more nimble and adaptable, but at the expense of employees.

A perfect example: I worked at a startup in 2000, and we had a bunch of people in the US as well as Europe. When business was down and we had to lay people off, we ended up laying off engineers in the US, because we couldn't get rid of any of the people in Europe quickly enough. We had to pay people for months before they were let go, and they didn't even show up to work. It was great for them, but it was bad for the company and also bad for our growth since we had to pay people to do literally nothing.

To be clear, I think workers need greater protections. But those protections should not be at the direct expense of the company. It should be indirectly through taxation.

But to get back to your question, yes, here in the US, workers are not treated as well as elsewhere. Entrepreneurs and businesses are seen as the drivers of the economy, not the workers.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> The flip side of this is, if you want to sink someone's career, badmouth them to their manager.

Having worked at many companies, I've observed how shockingly easy it is for a manager's assessment of their reports to be colored by "hearsay" whether good or bad.

I once had several members of another team who deeply disgreed with a product decision I'd made complain to my manager that I was being uncooperative, not a team player, etc. To avoid getting fired, I had to ask a bunch of members of various other teams to (honestly) tell my manager what a good job I was doing. Which worked -- according to him I'd really "turned things around" in the space of just a couple weeks (!). In the end it was 100% political, a bad manager who had no idea how to actually assess my work for what it was and so relied entirely on what he was "hearing", and I quit as soon as I could for a better job.

So yes, tell someone's manager when they're doing a great job. But it sucks that we have to rely on this stuff at all, rather than managers who can actually assess your work directly.

<comment><USER11> I would also add that it's important to always be communicating with your manager and building that trust. You need to make sure that their initial reaction to any negative hearsay should be that the other party is then in fact bad and uninformed.

Maybe it helps people to think of their manager/work as being analogous to a startup product? You build an awesome product, but then spend zero budget on sales and marketing, and are then super-sad that you're not magically growing up and to the right.

<comment><USER12> Many people choose jobs over a startup to not have to do marketing

</comment></comment></comment><comment><USER13> Google has a culture of internal peer bonuses and kudos, which in some ways is great and meant to help with this kind of thing... except that it also leads to an internal culture of "congrats!" and "thank you for your amazing work!" centi-threads which often overlook other contributors on a project, or are used strategically by overly political managers to boost their own reports and projects and gain corporate visibility for them.

Lost in this is just the work ethic of doing incremental non-glamorous work and managers and people around you _doing their job_ by recognizing it. Many corporate perf processes, peer bonuses, and so on simply smudge this over, and they indirectly or directly encourage _fame seeking behaviour_ which is in my opinion the most corrosive thing to a company's long term performance and bottom line.

<comment><USER14> Not my experience of Google, at least having worked there as an intern multiple times. All of the peer bonuses on our teams and affiliated teams have been for people going out of their way to help out with some project even if it was not part of their day-to-day work. I can only speak for the research-y side of Google, which in my experience seems to avoid most of these problems probably due to having managers that also do research and write papers. Having a separate academic status system other than your internal work position probably helps in this regard.

<comment><USER13> It's true peer bonuses in particular seem to be mainly reponsibly used. Probably because there's $$ and an accounting chain attached to them.

But just last week I watched the hard work of a coworker get completely bowled over by another manager's "congrats on amazing work" email chain to someone else who used the work of my coworker without recognition.

<comment><USER14> That's really unfortunate. I agree that the $$$ and accounting help make sure the system is not abused in the usual case. Unfortunately jerks are unavoidable, and even if the manager knew the true story they could ignore it to emphasize the contributions of their own reports.

It's hard to imagine a promo system that rewards hard work, where feedback comes from ones peers, and only promotes a fixed number of people where these kind of zero-sum issues don't appear.

<comment><USER13> Unfortunately I don't think it's a case of jerks vs not-jerks. Many years at a BigCorp has underlined to me now that the ethics and "professional economy" of working in one is entirely different than SmallCorp.

SmallCorp you all work for the bottom line or company goes bust. That acts as a damper on empire builders who build for their own sake, though there is still that behavior.

BigCorp it's unlikely your contributions are going to impact much of that kind of thing, even if you're up in senior management. So you're there for your Career(tm) first, company $$ success second. And in fact that is directly promoted through Perf, etc.

So the aggregate behavior of individuals is not only to self-promote but to encourage the self-promotions of others, that's how we get ahead by the measures defined as "getting ahead" by the company: internal promotion, project glory, internal and external speaking engagements and publications about your project, etc.

So a 100 person "congrats" and "that's amazing!" email (or its equivalent on LinkedIn) or whatever is just reasonable professional behavior. You're not a jerk for promoting yourself, you're just doing what is expected of you. The professional behavior of the modest but "plug along and do my job and help out and not self-promote" person is the one that's suspect in this scenario. The company _wants_ you to self-promote.

<comment><USER15> This is so strange. I feel weird enough telling people to send me a gThanks when they _ask_ what the best way to recognize me for something is, doing it unsolicited is just crazy.

</comment></comment></comment></comment></comment></comment><comment><USER16> I worked for the airlines (first career) and for public-facing employees it was a big deal if you got a 'good letter' from a customer. (It was equally suck if you happened to get a bad one...).

We also could file 'thank you / attaboy' paperwork for our colleagues, both in our own department or ones we interacted with. Those were just as valuable (if not more) than ones from the customers.

Over the years (11) during my employment there I received a couple of good letters, and they were recognized by the management in a very sincere way.

To this day of & when I have an extraordinary collaboration with someone in the corporation I'll take the time to write a thank you letter to their manager.

It's just a great practice that harkens back to the old adage, "there's nothing better than a nice handwritten thank you card." Since I'm in management, it serves as a nice means to to move the needle for a colleague in the eyes of the company.

<comment><USER17> Ages ago when I did basic PC support we had a "attaboy" system.

The thing about it was nobody liked it because attaboys were random. They had nothing to do with doing a good job or anything, they showed up randomly.

Most of the time "attaboys" showed up for doing the absolute most basic thing that is part of the job. You do it every day... but randomly an "attaboy" shows up, because by the roll of the dice you helped a nice person, that's it.

In the meantime if you went the extra mile for someone, never would any sort of attaboy would show up. In fact you might even get complaints from those folks.

For the support team watching some manager trot out an "attaboy" for no apparent reason as if it was a merit type thing was kinda demoralizing.

<comment><USER18> It can be extremely demoralising for co-workers in all kinds of roles when they see that kind of recognition being given to someone who they feel don't deserve it.

Personally I think it's risky to acknowledge these kind of things in front of a team for that reason unless it's better quantified. I've personally as well been in situations where

I've been outright resentful because the recognition of someone I knew was doing a bad job made it clear we could not expect recognition based on merits, and so what was the point of putting in the effort?

<comment><USER19> > _It can be extremely demoralising for co-workers in all kinds of roles when > they see that kind of recognition being given to someone who they feel don > 't deserve it._

This is why wages are secret. Everyone is convinced they deserve to be in the top half of earners.

<comment><USER20> Businesses want wages to be secret and may even adopt policies that ban employees from discussing it, but in the U.S. employees' rights to discuss pay amongst themselves are protected under the NLRA.

[https://www.insperity.com/blog/when-employees-discuss- wages/](https://www.insperity.com/blog/when-employees-discuss-wages/)

</comment></comment></comment></comment></comment><comment><USER21> From my experience, especially in big companies (but not only) most of the feedback is negative. People are not sharing positive feedback, and when they contact your manager it's usually an escalation process. That's why it's so important to reach to people who support you or simply create a content you like (blog posts, webinars, etc) and say: "thanks, I found a lot of value here".

<comment><USER22> > That's why it's so important to reach to people who support you or simply > create a content you like (blog posts, webinars, etc) and say: "thanks, I > found a lot of value here".

I've been trying to start up a blog this year (three posts in 7 months, woo!) and someone recently contacted me to tell me that my RSS feed was down and they didn't want to miss the next post. It carried me into the next week it meant so much.

<comment><USER23> I had a radio show in college (low power station, small college town) and a friend of a friend told me that, when he listened to the show while delivering pizza, he'd sprint to and from the customer's door so he could get as much of the show as possible. This was about the highest praise I could think of.

</comment></comment></comment><comment><USER24> I hate the fact that in my current role, I am expected to give my colleagues 'constructive feedback'.

It seems like a minefield , when I am trying to focus on my own role, that I have to negotiate the feelings of a colleague as I leave feedback on them. I'd prefer to leave only positive feedback, but what my boss wants is that I need to find an improvement that my colleague has to make. I don't like it.

<comment><USER25> I've found PRP to be a godsend when you're expected to give "feedback". PRP is praise-reprimand-praise: so construct your comment where your negative feedback is sandwiched between two positive feedback items. People respond well to it.

<comment><USER26> ah the shit sandwich, I trust you're joking ;)

<comment><USER25> If you're having a bad time with PRP you're just trash at implementing it. PRP doesn't mean you should literally "Good job on X. You fucked up on Y. Also good job on Z." \-- you still need to have some human interaction skills. But in general, your feedback (whether it's a conversation or an email or a comment on a PR) should follow the general guidelines for what order to present things in.

<comment><USER27> You raise an interesting point.

Your comment failed at PRP.

You showed how difficult giving criticism is.

<comment><USER28> Kudos to you, my kind interlocutor.

At first I found your haiku hard to parse.

But in the end I was enlightened by it.

</comment></comment></comment></comment></comment></comment><comment><USER29> While I really like the sentiment, I think there's a reason why people naturally don't provide much positive feedback about individuals at workplaces.

What do you really get by pointing out the good work of a coworker? A warm fuzzy feeling, to be sure. Maybe greater comradeship. But wait, who's the next person to get a promotion? Maybe it'll be the person you keep praising to management. So you'll probably have to work smarter/harder to get that same praise, hence the same chances at promotion. But you don't want to work that much harder; you're already working hard enough as it is. But that 5% raise and that "senior" title look pretty shiny. <one year later> Hey, how come nobody has been recognizing you for your good work? Meanwhile that coworker you've been praising is now _your boss_!

<comment><USER30> This is why I believe the best path to promotion is simply to quit and find a company that will give you the title you want.

I'm not the kind of person that gets promoted, for whatever reasons, so I've been moving up by moving sideways. It sucks, but it is what it is.

</comment></comment><comment><USER31> While we're at it - when someone you manage does great work - tell _your_ manager.

I do this out of professional decency, not social justice (angle of the article).

<comment><USER32> Just in general say thank you more often. It helps a lot with team morale.

<comment><USER33> This is something I've struggled with over the years, ever since I started as an engineer. I want the problem solved and when it's solved we move on to the next one. No chit chat, no feelings, just get the work done. It really helped that at the beginning of my career I was on a brand new team and we were defining how to solve these problems. There was no one more senior or more knowledgeable to ask.

As I became more senior and had junior employees working alongside me, I could see how quickly they would get frustrated when they couldn't perform at my level. They'd be stuck for days until they ask me for help, and I'd solve the problem in 5 minutes and for a couple of our new guys, that crushed them. Absolutely destroyed their morale.

So I read a few books on emotional intelligence and social interactions and started explicitly saying when someone was doing something right, or calling out where they did their job well while fixing the place where they made a mistake. When someone helps me, I now say "thank you, I appreciate your help".

It's night and day. Junior employees wanted to work with me before I did that because they want to learn from me, but now they actually _like_ working with me. I don't heap on praise and I don't give praise when it's not deserved, but when someone legitimately does something right or helps me (no matter how small), I actively tell them with words that I appreciate their help and that they did good work.

It's the absolute least I can do but it makes a world of difference for people just starting out when a senior staff member compliments their work.

</comment></comment></comment><comment><USER34> I've always been a big believer that during review time, people should be able to choose others they've worked with to review. It need not be a full on performance review, but at least provide the opportunity to provide documented feedback to their boss.

I've worked with people from other departments who were both awful and wonderful, and if their bosses didn't include me in their set of peer reviewers, I couldn't highlight that. I think my cross-departmental peer review would've been much more valuable than some of my reviews of some of my teammates, since my boss already had a pretty good idea of how we work together.

<comment><USER35> That is how it works at my workplace, you choose who you get feedback from that is presented to your manager. Usually you choose your team and a couple of people you've worked closely with outside the team.

<comment><USER36> We have that choice too. It might make an impact, but I see the politics and the manager's opinion to be way more important.

</comment></comment></comment><comment><USER30> I can relate. I've received many slack DMs from my peers telling me how great I'm doing on such-and-such project, and I'm grateful for their compliments, but at the end of the day, it does nothing for me, they're just empty words. My manager is left in the dark about what I'm doing.

<comment><USER37> > My manager is left in the dark about what I'm doing.

Then loop your manager in. I work for a marketing agency primarily doing consulting work, and operate semi-autonomously from my manager. For the clients and accounts I support, I am the face of my group. A client may not even know my manager's name, unless there's been cause for someone with a fancier title than mine to make an appearance. And account teams may have found their way to me directly rather than routing through my boss, so have no working relationship with him.

If I get a kudos via email, I either BCC him on my reply, or forward it to him as an fyi. If it's given verbally, I thank the person giving it, and let them know how much I'd appreciate if they could jot that down in writing and send it over. If it came through something like a Slack DM, I'd either screenshot it for something minor and pass that along or again express my appreciation and call out how much it'd mean if they could throw that into an email.

I've never had anyone balk at or refuse to do the above. If someone has taken the time to give you kudos for your work, they're usually appreciative enough with what you're doing that they are perfectly happy to put it in an email for you if prompted. And more often than not, the writeup that comes through talks you up far more than the informal shout out they originally made, as they're well aware of why you're asking for it.

</comment></comment><comment><USER38> In my medical training, I had precisely one patient reach out to hospital leadership to commend my care of them. It was really appreciated - I like to think that patients appreciate when they're treated kindly and well taken care of, but it seems that's taken for granted. I didn't so much care for the official recognition as just knowing that the patient was actually touched by the trouble and feeling I put into looking after them.

<comment><USER39> Makes sense it's taken for granted since health care is expensive as hell so people expect the service to be good if they pay for it.

<comment><USER38> Thing is, two points:

1) You can pay for plenty of shit, but you can't pay for human feeling.

2) A tiny fraction of that money ends up in the pockets of people actually providing care - most of it ends up with pharma, device manufacturers, PBMs, and other middle-men. You can expect whatever great service you want for your money, but it doesn't work when that money isn't going to the people providing the service.

</comment></comment></comment><comment><USER40> You should do this in general public situations where possible too: Got great service at a restaurant or store? Ask to talk to their manager. When their manager comes over, complement the person who was awesome!

My wife does this regularly and it's always amazing to see people's faces drop at the first manager request, then shine when they realize what's going on :)

</comment><comment><USER41> She brought up an interesting point: asking your colleague if (s)he wants recognition.

Sending recognition is usually a decision made in the moment. Asking permission makes a process out of it. Having a process reduces your motivation to send recognition.

Her five reasons are spot on. But I'd like to add that people should understand their work environments and the politics involved. It's easier with small to small-medium sized organizations where you know all or most of the managers and their quirks and know the politics at work.

My environment is small-medium. Part of what we're judged on is helping colleagues. The managers are all onboard with it. When a colleague from the Unix admin team went out of his way to help my team I didn't hesitate to send his manager a message in praise of the effort. Getting a colleague in trouble for taking time out of assigned work is not an issue.

</comment><comment><USER42> This should be a monthly census: it needs to be automatic. If you're the manager of a company and you are relying on people to say something about their co-workers, then you will miss most of the information that you could be capturing, and you will get highly biased impression of your workforce, because only a certain type of person will come forward to praise their co- worker.

There are various voting systems that work well, but the easiest is something like "Every month, list 3 of your co-workers who did something impressive."

This avoids the many problems with something like the stack-rank system that Microsoft was committed to, for too many years. In that system, workers were forced to list their co-workers, not just as "good", but also a certain percentage had to belong to the "bad" group, the lowest 30%. Most workers do not want to attack their fellow workers this way.

You can get all the information you need by simply letting your workers upvote each other. You should ration the upvotes so that they are meaningful. On a small team, perhaps people get 1 or 2 votes, in a big company, perhaps they got 5 or 6 votes. If you make the votes a scarce resource, you get better accuracy: people think carefully about who they should upvote.

There will be some workers who never get upvoted by anyone. These are bad workers. There will also be some workers who get very few votes, or who only get votes from "rings" they've formed with other workers, where they vote for each other. These are suspect workers.

In all cases you'll want to apply something like the Google PageRank algorithm to the upvotes. That is, an upvote from someone who is themself highly upvoted should matter more than an upvote from someone who rarely gets upvoted.

I would not ban people from the article's main idea "When your coworker does great work, tell their manager" however, keep in mind, if you are the manager or CTO or CEO, you need to ensure there is also a system in place that is more automatic than simply waiting for people to talk about their co-workers.

<comment> T-hawk Wouldn't co-worker upvotes lead to workers prioritizing their output for what attracts upvotes rather than what the company needs to get done?

You'd get a team constantly making tools for each other and no sellable product.

<comment><USER43> Yes.

It's almost a reflection of 'Golden Parachute CEO' behavior: There's an implicit benefit to making decisions that have 'good optics' at the moment even if it takes you down a road you'll regret.

Seen this a LOT with 'buy/build' decisions almost everywhere I've worked. The cost savings look great up front, but by the time you've added all your custom bits, you're hitting things like API limits (either in surface or billing) and having to shell out, or building so much boilerplate to get around the limits you may as well have built it yourself.

But hey, it saved X$ the first year, who cares if it costs more the next 5 to maintain?

</comment></comment></comment><comment><USER44> I am torn between the zero-sum and "abundance" concepts. It seems like some people like to promote the "abundance" concept (where one person's gain adds to everyone else) as an ideal but in reality I have only ever seen zero-sum results in terms of job acquisition and career advancement. There is a fixed number of slots and you need to eliminate others in order to obtain it.

</comment><comment><USER45> Whenever I help someone out and they say "how can I thank you" I just say "let my manager know I was helpful".

</comment><comment><USER46> And as a (former) manager: when your reports are doing great work, make sure to publicly praise them, as well as give people opportunity to beat their own chest and roar. Shipped a cool feature? Present a few slides at the weekly team meeting, explain why it's cool. This won't happen unless you encourage it and set aside the time. I don't see nearly enough of this, and I think it's a shame - it makes people feel good about what they do, feel that their work not a waste of time. It also engenders pride in good work and implicitly shines a light on poor performers.

As far as telling people's managers about good work, that is helpful of course. But I feel like there's this misconception among non-managers that managers don't already know who's great and who's not. As a manager who pays any attention at all this is clear as a day most of the time.

</comment><comment><USER47> This article's top line is really good advice. But, with respect, the author is overthinking it just a little.

When somebody helps me out, I say to their manager, "when you get a chance please tell them I'm grateful for their good work."

Was it their distinguished expertise that made it possible for them to help me? Was it a spirit of collegiality? From my perspective, I don't care when I thank them. They did me a favor, I'm happy, I'm grateful.

Give and Take is a book by Adam Grant on this part of the workplace. [https://www.worldcat.org/title/give-and-take-the- revolutiona...](https://www.worldcat.org/title/give-and-take-the- revolutionary-worldview-that-drives-success/oclc/859568885)

</comment><comment><USER48> Whenever someone says something nice about my work I ask them "can I have that in writing?". Then I go onto explaining that if they liked what I've done, by supporting me they can get more. It's annoying that we have to do that in the workplace but it works.

</comment><comment><USER49> We use TINYPulse ([https://www.tinypulse.com/](https://www.tinypulse.com/)) for this very reason at my work; it takes about 10 seconds to send someone a shout out, and not only does their manager see it, but everyone in the company does (we're a small startup).

If I notice that someone has really killed it in something but has no recognition at all for it, I will also/instead point out to that person's manager, especially if it is a junior engineer

</comment><comment><USER50> The company I work at uses [https://www.15five.com/](https://www.15five.com/) for reviews and 1-on-1s. It has a "High Five" feature to recognise big or small things anyone in the company has done to help.

It's low friction and it works well. They hook it up to a Slack channel for a steady stream of positivity, and its read by senior execs and mentioned during reviews.

More companies should make this part of their company culture via tools that make it easy and common.

</comment><comment><USER51> At a company I joined recently (WPEngine), there's an app called 15five deployed internally, where every 2 weeks we're encouraged to single out some coworkers with "high fives", thanking them for whatever we want. Those are then visible to us and our managers (and by default are also shared publicly in a special purpose chatroom). I am really impressed that this is systematically implemented and encouraged throughout the whole company!

</comment><comment><USER52> This is the biggest benefit of 15five. You can give a high five to anyone for exactly this - work that usually would go unrecognized but furthers the company's goals

</comment><comment><USER53> I completely agree with the idea of paying a compliment to someones supervisor or manager, I find it rare when people recognize great work. While I agree also with why you may want to ask the manager and the issues makes some sense , I think it goes a long way! Just to call them out on the great work!

I genuinely believe that this attitude promotes positive environments. Great work _always_ deserves to be recognized. Good article

</comment><comment><USER54> There should be a systematic way to collect and periodically highlight accomplishments and those who contributed to those (quarterly, monthly). A lead should be able to produce that information (with input from the team, all in one room face to face), and it should be published in a common place (where everyone else has read-only rights, or changes can be tracked) for managers and higher-ups to see.

<comment><USER55> I think I'm going to disagree with this. I've seen lots of these systems foisted upon employees and the general result is people either try to game the system or else people feel forced into participating when they don't wish to. Praise ought to be both spontaneous and merited or else it loses a bit of its appeal in my opinion.

Thanks to this article (which I didn't even read), I was inspired to write something heartfelt to my own manager about another person on my team. No system would have pried that from me. I just needed a subtle reminder.

</comment></comment><comment><USER56> You may think you're communicating friendly appreciation when you send a complementary message about someone to their manager with them cc-ed, but the message that you're also sending is that you're the sort of person who thinks it's okay to talk to people's managers about them, and you run a very real risk of losing your peers' trust.

</comment><comment><USER57> I have made a good habit of sending a person's manager "xyz did a great job, in such such such way, and this had the impact of abc". I try not to do it often, mostly if i think someone has gone above and beyond. Also mention it to my manager if it's appropriate as people should be recognized - they also make good allys for future work.

</comment><comment><USER58> I worked at a retail store when I was a tiny 16 year old, I got a ton of NPS surveys by telling people I got a pizza party if I got enough of them. It worked crazy well, I quickly became top in the company for NPS. It was hilarious watching my older coworkers attempt to pull it off and fail.

</comment><comment><USER59> Since this is like an inverse Karen move, perhaps anti-Karens should formally be known as Julies.

</comment><comment><USER60> Julia Evans is a font of good vibes.

<comment><USER61> Tell her manager (after checking first)

</comment></comment><comment><USER62> I think showing awareness of your peers is a positive signal to a good manager in any case so it positively impacts you beyond just good karma

Anyone who really buys into "team" will value someone who is actually looking out for their team.

</comment><comment><USER63> And protect yourself from Machiavellianism (willingness to manipulate and deceive others), Narcissism (egotism and self-obsession), Psychopathy (lack of remorse and empathy), Sadism (pleasure in suffering of others)

</comment><comment><USER64> Also, don't do this unless you have some idea how others compare to him. There is nothing as silly as an uninformed person praising the least productive member of a group.

</comment><comment><USER65> I have refused to perform 360's in the past.

They are usually semi-anonymous though and no one really noticed. I think that we should be careful of inculcating such a culture. It can support and enforce clique's at work. It also as a deliverable, leans fairly hard on your co- workers. Why should we build a system that essentially delivers pre-digested content for management?

tl;dr: "Overall: a lot of people (for very good reasons!) want to have control over the kind of feedback their manager hears about them." exactly!

It also could become a Vanity Metric, and this doesn't help anyone. [1]

[1]: [https://techcrunch.com/2011/07/30/vanity- metrics/](https://techcrunch.com/2011/07/30/vanity-metrics/)

</comment><comment><USER66> I feel like the main point should be "if your coworker does great work, tell them". Be curious, see if they have feedback through you, see how they'd like to be recognized.

That step is often missed. People are often resistant to providing direct feedback - yet that is also how the strongest bonds are made.

The more a manager acts as an intermediary, the less direct emotional (and consequently professional) relationships are.

<comment><USER67> You may not have read the article. It says to tell the coworker first. There is no question of a manager acting as an intermediary.

The point of telling the manager is to help the coworker get their next raise or promotion, not for the manager to be the one to tell them.

<comment><USER66> Hey thank you I could have been more clear, intermediary is the wrong word and thank you for showing me that. I did read the article, and I can't see where it says "tell them". I do see the bold heading "ask if it's ok first".

"Hey is it ok if I tell your manager you're doing a great job?" Is a lot more indirect than "Hey, I think you're doing a great job" and pausing for a response and having a conversation about it.

</comment></comment></comment><comment><USER68> speaking of employee analytics i just came across this: [https://www.myleon.co/](https://www.myleon.co/) is it just me.. or once we start adding "Ai" to human relations/performance.. i get nervous

</comment><comment><USER69> Pay special attention to the reasons the author gives under "ask if it's okay first."

</comment><comment><USER70> I would be careful abour this one, some managers do everything they can to get rid of exemplary employees. If you're going to this make it as public as possible and make sure you have sound reasoning for why you are singing the praises of your co-worker. Include managers as close to the top of the organization as possible as well.

</comment><comment><USER71> It's a good thing to do. I don't agree with the first point about asking first. Ask if you like; if not don't ask. It's up to you. I'm afraid that yet again I put this down to the modern cultural schism among people who would describe themselves as liberals, with those on the progressive left adopting extremes of sensitivity that I find over the top. Specifically, I disagree with her points as follows:

 _1\. Giving someone a compliment that's not in line with their current goals._

Try to judge that yourself. But your coworker has no control over what others say; one of the risks in life, somewhere fairly low down in a list with many elements, is the risk that a coworker will compliment you for something that's not in line with your goals. Deal with it.

 _2\. Giving someone the wrong "level" of compliment. For example, if they're a very senior engineer and you say something like "PERSON did SIMPLE_ROUTINE_TASK really well!"_

That will make you look silly, not them.

 _3\. If your coworker was supposed to be focusing on a specific project, and you're complimenting them for helping with something totally unrelated, their manager might think that they're not focusing on their "real" work._

Make it one of your aims to have the sense to get that right.

 _4.Some people have terrible managers (for example, maybe the manager will feel threatened by your coworker excelling)_

Make it one of your aims to have the sense to get that right.

 _5\. Some people just don't like being called out in that way, and are happy with the level of recognition they're getting!_

Bad luck; they don't control what others do.

</comment><comment><USER72> Don't let them get the best of you!

</comment><comment><USER73> Bugger. I think I messed up at least once by not asking. This is good advise!

</comment><comment><USER74> What about when they don't do great work?

</comment><comment><USER75> geeethanks

</comment><comment><USER76> This sort of thing when genuine don't makes you a good person. A person with character.

The type of person you want and should be around.</comment>


HackerBracket: eHarmony for Hackers and Tech Companies - <AUTHOR> http://hackerbracket.com/

<comment><USER2> I feel like I've seen this about a hundred times with different names. Founder dating, engineer->company dating, etc.

Tends to suffer from the same problem as dating sites. Instead of 90% men and no women, it's 90% MBAs and Recruiters and no talent.

<comment><USER3> >it's 90% MBAs and Recruiters and no talent.

Probably because having talent in the tech industry makes it relatively _very_ easy to get hired. These sites are trying to solve a mostly non-existent problem.

<comment><AUTHOR> Our little niche is we get the hackers signed up when they signup for hackathons. Big university hackathons need a lot of value to keep the cash rollin' in from sponsors.

<comment><USER4> I think you guys should make the "hackathon" piece more prominent, I think that's your main value proposition. Otherwise, to someone who doesn't immediately realize the hackathon niche being a part of it, it seems like yet another LinkedIn type website for developers.

<comment><USER5> I agree.

In fact, I think ditch the whole "eHarmony for ..." metaphor, and go for more of a "From Hackathon to Dream Career" kind of thing.

Admittedly that's not a very poetic line, but it better portrays your vibe and doesn't make me react "another OKCoFounder/FounderDating/WhiteTruffle/etc ughh im not looking for an MBA/where are the coders?"

</comment></comment></comment></comment></comment><comment><USER6> How is this different from whitetruffle?</comment>


Tim Berners-Lee on the future of the web: 'The system is failing' - <AUTHOR> https://www.theguardian.com/technology/2017/nov/15/tim-berners-lee-world-wide-web-net-neutrality <comment><USER2> Tim's on point, as usual. How can we make tech work for us and not against us in the age of the attention economy?</comment>


Twitter #Music's Awful iTunes Rank Belies Its Success - <AUTHOR> http://www.fastcolabs.com/3010948/twitter-musics-awful-itunes-rank-belies-its-success

<comment><USER2> So the point of the article is that even if it only has 100 users, it's still a success? I doubt that very much.

I don't use the app, nor do I know anyone that does.</comment>


The WELL, Birthplace Of Online Movement, Is Up For Sale - <AUTHOR> http://www.npr.org/2012/09/03/160489198/well-whole-earth-lectronic-link

<comment><USER2> PLATO is better described as the birthplace of the online movement. <http://platohistory.org>

This morning I asked Howard whether he actually mentioned PLATO in the NPR interview and he said he mentioned PLATO and BBS's, and that NPR edited that out. Thanks NPR, it wouldn't do to tell the true story. We must prolong the myth.

(FYI I have been on The WELL since 1986. And started using PLATO in 1979, and its golden years were already past in 1979!)

</comment><comment><USER3> I have been a member since 99. The place had some of the best discussions I have ever participated in perhaps because you have to pay for it. Unfortunately it's not what it used to be.

Still, I can't get my head around whether it would make sense to do a paid discussion forum.

<comment><USER4> It really was host to some of the best (and civil) discussions I've ever had the pleasure to lurk.

But I think twitter, facebook (and maybe aol) really did a number on the Well. I mean, time marches on. And the Well didn't, or wouldn't.

I remember the Well like I remember Geocities and CompuServe - fondly.

<comment><USER3> Yeah.

It's one of those places where I would love to get permissions to take out some of those discussions and create a book.

Especially in philosophy & physics there where some really mindbending discussions.

</comment></comment></comment><comment><USER5> The Whole Earth 'Lectronic Link had some great catalogues. They're sort of available now as PDF.

(<http://www.wholeearth.com/history-whole-earth-catalog.php>)

These were the kind of eclectic collections of well curated items that make great books. I'd be interested if there's something similar.

<comment><USER6> Thats the site for the Whole Earth Catalog, not the WELL. They were both founded by Stewart Brand, but otherwise are different things.

</comment></comment><comment><USER7> This is a 7-minute audio-only piece.

</comment><comment><USER8> Isn't this like the fourth time?</comment>