Python in Visual Studio Code - <AUTHOR> https://blogs.msdn.microsoft.com/pythonengineering/2018/09/05/python-in-visual-studio-code-august-2018-release/ <comment><USER2> I've been using VI since the 90's and VIM since... well the 90's. VSCode is the first IDE I've been able to live, and happily. It blows my mind.

I have a tonne of tooling around automated python environments, vim plugins (now vscode plugins), tasks - and it's made the whole thing significantly more 'unixy' than it was before. And to think - MSFT!

I have git hooks for my homedir's dotfiles that automatically look to see if the plugin cache needs an update one way or the other - and runs my aliases (see below).

I have global tasks that now link into workspaces, pretty decent python, golang, and c++ support. I've mapped keys to the 'wierd' collection of things I do between terminator terminals, vim tabs, and whatnot... honestly, it's pretty good. It's not great, the things in 'vim' support are really 'vi'-light. I'd be much happier if vim support meant understanding my .vim hierarchy - but I'm happy.

# vscode bash bits alias vspluginsave="code --list-extensions | xargs -L 1 echo code --install-extension > .vscode.plugins" alias vspluginload="sh ~/.vscode.plugins" alias vspluginclean="rm -rf ~/.vscode/extensions"

<comment><USER3> Interesting how many people have switched from vi/vim to vscode. Does anyone have stories of making a similar switch from emacs?

I currently use intellij for java work (because my employer pays for the license) but for most any other type of editing I use emacs. I'd be interested to see what other emacs users think of vscode.

<comment><USER4> I am currently switching from emacs to VS Code. I am using an emacs keymap and I must say, it is wonderful. For Python, I can per project easily select the right virtual environment, the "intellisense" like system is working very well, it is pretty fast and you can customize a lot of it.

I am expecting to slowly move out of emacs for my coding in the next few months.

Emacs will be kept because I have a lot of org-mode files to manage my company at a higher level (lot of tables with formulas to calculate several key indicators). On the longer term, they could be moved as Python notebooks with the rendering in VS Code.

So yes, I do think this is the editor which is going to move a lot of old coders out of emacs/vi/vim.

PS: The added bonus is that I easily get support of Go, Typescript, etc. without the need to "debug my editor". Just install the right extension, done.

<comment><USER3> > So yes, I do think this is the editor which is going to move a lot of old > coders out of emacs/vi/vim.

That certainly seems a possibility, though I expect it may be somewhat dependent upon the language used, and whether the community around that language invests enough effort to develop vscode plugins for that language.

</comment></comment></comment></comment><comment><USER5> What's mind blowing is the community support behind VSCode. If you report a bug, you get a reply in less than 24h, your bug gets tagged, assigned to someone and fixed ASAP. Then you get a new release every month with ton of bug fixes, improvements and new features.

Compare that to any other IDE or even any other open source projects.

<comment><USER6> That... hasn't been my experience: [https://github.com/Microsoft/vscode/issues/18549](https://github.com/Microsoft/vscode/issues/18549) [https://github.com/Microsoft/vscode/issues/16858](https://github.com/Microsoft/vscode/issues/16858)

Maybe I just care a little too much about code folding, but after origami.el in emacs and atom and vim's great selection of folding commands, it seems like an oversight.

VS Code has also painted itself into a corner making proper vim emulation impossible: [https://github.com/Microsoft/vscode/issues/22276#issuecommen...](https://github.com/Microsoft/vscode/issues/22276#issuecomment-302061827)

The editor is awesome, and I'm really thankful for Microsoft's work in this space, especially on the LSP. But it's not everything for everyone.

<comment><USER7> _That... hasn 't been my experience_

Your links are to feature requests, not bugs.

Since ggregoire's comment is about bugs, your experience is orthogonal.

</comment></comment></comment><comment><USER8> I love using VSCode and find that I have less need for any other IDE with each new release. This one might finally eliminate one of my remaining needs for pycharm.

I can't help but feel sorry for Jetbrains though, who seem to be in a similar position to Opera back in the late 2000s, a small software company up against a behemoth that can afford to subsidize the development of an open-source alternative to their bread and butter.

<comment><USER9> TeamCity in particular is loved by many enterprise shops, as well as IntelliJ and Resharper. None of those (even IntelliJ) are particularly threatened by VSCode.

<comment><USER10> Iunno. I'm finding that VSCode is rapidly approaching parity with IntelliJ in terms of features that I actually use, while at the same time being quite noticeably faster and less buggy.

</comment></comment></comment><comment><USER11> I am somewhat embarrassed, but also relieved to admit that I switched from vim (nvim to be precise) to VSCode (OMG M$FT!) and am very happy about it. I still use vim bindings as much as I can, but I guess giving up a bit of ideology can benefit one a lot. Although, that is until I start running out of memory on my personal laptop, then it's back to the terminal!

<comment><USER12> The vscode vim bindings are atrocious. I use them because there's nothing better, but they're _bad_. Slow, super buggy, and did I mention slow? I hit tab and sometimes instead of inserting a \t, it inserts the letters "<tab>". And it re-runs mypy/flake8/etc whenever I enter or exit insert mode, which I do a ton... so my CPU is constantly pegged. And commands like "2d}" don't delete the correct amount of paragraphs. And one more I forgot: The undo stacks aren't synced between vscode and vscode-vim, so vscode's undo can undo an undo. <sighs>

I've reported all these bugs with not much in terms of answers. I've even tried contributing but it's a pretty messy codebase to get into. Ergh.

<comment><USER13> What's the bug that you have with `2d}`? It seems to work fine for me.

There shouldn't be any reason that it reruns save upon entering/exiting insert mode; are you sure you don't have some kind of keybinding/other setting that's autosaving for you?

The `<tab>` issue is kind of a pesky race condition that's most likely exacerbated by VSCodeVim running slowly on your computer.

Speaking of it running slowly, I would argue against characterizing them as "slow". Some small subset of users seems to have consistently run into this issue, and a decently large subset of those users have realized that the issue is caused by some conflicting plugin, so I'd suggest trying that too.

As for the undo issue, I have mixed feelings about it. Perhaps it could be synced with VSCode, but it's definitely true that when it was first implemented, VSCode did not provide the flexibility to do so.

Overall, I do agree that there's stuff that can improved, but it kinda hurts to see people call them "atrocious". I suspect your main issue with VSCodeVim is really the "slowness" issue. I would try disabling other plugins and see whether it helps.

EDIT: Forgot to mention. Disclaimer: I'm one of the primary maintainers for VSCodeVim.

<comment><USER12> > _Overall, I do agree that there 's stuff that can improved, but it kinda > hurts to see people call them "atrocious"_

Sorry :( I hate to be harsh and I don't want this to get you down, because I have a lot of admiration for the work you do (and this goes to any open source work I've ever criticized, really). So, thank you for your work.

But... the usability is _really_ bad. They would be completely fine in a vacuum if vim didn't exist, but the point of comparison exists and it's vim and vim is just crazy fast compared to vscode-vim, it's like comparing a racer... to a fighter jet.

> _What 's the bug that you have with `2d}`?_

That only deletes one paragraph (like 1d}) instead of two. 3d} only deletes two, and so on. It's not consistent with vim.

> _There shouldn 't be any reason that it reruns save upon entering/exiting > insert mode_

shrug, I filed an issue about this a couple weeks ago after a decent bit of debugging.

> _I suspect your main issue with VSCodeVim is really the "slowness" issue_

ish, it's definitely the primary pain point but there's also lots of small bugs and inconsistencies with vim. And I understand that competing with vim itself is hard, but the other comparison point is for example pycharm's vim plugin and vscode's is far behind.

Edit: And just to echo tdfx's point, without your bindings I wouldn't even be on vscode, so there's that :)

</comment></comment></comment></comment><comment><USER14> I have been following this extension ever since Don Jayamanne joined Microsoft. This has grown by leaps and bounds since then and is a fantastic extension.

I was a little leary when I learned they were tossing out jedi in favor of the VS Python language server. However, after playing with it for a month or so now I can tell that it's a drastic improvement over what's currently in place.

If anybody from the MS team is watching this thread, care to share why you chose to invest in the VS Language Server instead of investing in Jedi further?

<comment><USER15> The key thing to know is that the Microsoft Python Language Server -- long, official name I know, hence why we just call it MPLS internally ;) -- comes from our Python workload for Visual Studio. It was an extremely tough call to make because David Halter has done a great job with Jedi and running that project. But in the end we decided that if we were going to need to keep the IntelliSense engine in Visual Studio going then we should get more out of that investment by turning it into a language server and making it available in VS Code.

But I will say (and continue to say) that we are extremely grateful to David Halter and everyone who has worked on Jedi. It gave the extension the initial IntelliSense support it needed in order to be successful. And we currently have no plans on removing Jedi support for those that prefer it (from the extension's perspective we're actually trying to treat the language server as yet another project we have integrated support for, but where we have a direct line to when a bug or feature crops up that we would like to see addressed ;) .

</comment></comment><comment><USER16> Vscode has been the first editor that I switched to from vim in 20 years (and yes I went through sublime, atom,etc). A Microsoft editor on Linux... imagine that.

Lots of people in my workplace have switched to using vscode from pycharm. They still use pycharm once a month to do a global lint analysis or some tricky refactor...but for daily use, it's much more pleasant to use vscode .

In fact, we use vscode with our Dev setup which is all docker+python. Works beautifully (debugger and all)

<comment><USER17> Any tips to share on debugging python in a docker container using vscode?

I've tried their instructions for ptvsd before and after this update but still haven't been able to use the debugger with docker.

<comment><USER16> you're in luck. I posted this just 2 days back

[https://github.com/Microsoft/vscode- python/issues/79#issueco...](https://github.com/Microsoft/vscode- python/issues/79#issuecomment-418154499)

</comment></comment></comment><comment><USER18> Tried to use python within vscode last month, it works fine, but I still have to hack around for my own workflow.

I eventually switched to pycharm for its autocompletion, class help, even pipenv support natively built-in.

for html/css/js I keep using vscode though.

there is no such thing called universal editor, I still have to use various(vim,geany,vscode,pycharm...) for different scenarios, which is fine but just very time consuming

<comment><USER19> I've been trying to get into VSCode for Python development, especially Django since the first official release of VSCode, every time I returned to PyCharm.

I just decided to accept PyCharm the only IDE that can make me productive and go fast!

<comment><USER20> I had a similar experience. What are you missing?

<comment><USER19> * Auto complete * Integration with Python and Django, Flask. * Test runner (running the failed tests etc). * Amazing type hinting support. * Python console. * Support for pipenv, pip, virtualenv, etc. * Remote Python interpreter (working on Windows, but Python is inside a VM.) * Crazy Git support in one place (going through all the file history or selected lines history.) * Fast indexing. * ...

Some of the above or maybe all of them can be achieved in VSCode, but they never feel native and well integrated in there.

To me PyCharm seems to be built for these, they create, design and develop an IDE exactly for a specific audience. That's why PyCharm for Python, WebStorm for web and PHPStorm for php development.

<comment><USER21> We are working to improve on pretty much all of these areas, so I'd be interested to learn from you what we can do to make them feel more native and well integrated for you.

Reach out to me at dantaylo [at] microsoft [dot] com if you'd be willing to hop on a call to chat more!

</comment></comment></comment></comment></comment><comment><USER22> Never thought that code editor from the MSFT would become my daily driver IDE.

The only feature I need most from the VSCode (which is not implemented yet) is Python Remote interpreter[1]. While `ptvsd` is more or less convenient for remote debugging, it doesn't help when you need IntelliSense/linting while developing code being interpreted in container/virtual machine/remote host. IntelliJ PyCharm is clearly ahead here for now.

[1] Issue #79: [https://github.com/Microsoft/vscode- python/issues/79](https://github.com/Microsoft/vscode-python/issues/79)

</comment><comment><USER23> Need WSL support for the Python extension! Right now it's impossible to use the Python extensions from within the WSL environment.

<comment><USER24> I'm on the same boat, since I only use pyenv inside WSL. It's something that is being discussed (and worked on for other languages). The relevant issue is at:

\- [https://github.com/Microsoft/vscode- python/issues/67](https://github.com/Microsoft/vscode-python/issues/67)

And the VS Code team was asking for folk to interview regarding WSL integration:

[https://forms.office.com/Pages/ResponsePage.aspx?id=v4j5cvGG...](https://forms.office.com/Pages/ResponsePage.aspx?id=v4j5cvGGr0GRqy180BHbR_1KurdrNndKiWKdwiEbexVURVIyUVQwUVdIWUlaUFg3N0Q4S0o5NFVORyQlQCN0PWcu)

(Full disclosure: I work at Microsoft, but in other teams, and am eagerly waiting for the day I can use WSL pyenvs)

<comment><USER23> Cool thanks, I filled out the form!

My uses are a bit mundane but I'm willing to talk about them!

</comment></comment></comment><comment><USER25> I wonder how intellij will survive if vscode becomes a standard for pretty much every language.

Which makes me wonder if kotlin will also survive if intellij goes bankrupt.

<comment><USER26> At least with regards to Java, IntelliJ is still miles ahead.

<comment><USER27> Something to consider, VS Code being free means it will eat into IntelliJ's marketshare, even without all the features of IntelliJ. They'll be the people who need the advanced features who will continue buying it, but many people may not need the full suite, and will use VS Code to save money.

<comment><USER28> The IntelliJ community edition is free as well, and has features galore. (I'm an Emacs guy through and through, but some Java stuff makes me break out IntelliJ)

</comment></comment></comment></comment><comment><USER29> I've been pretty happy with PyCharm, having come from a java+Intellij background, but I'm open to other options.

So I'd be curious if someone can comment how VSCode compares to PyCharm wrt language aware features, such as: contextual selection, refactoring, finding usages, method/function extraction, auto-fixing, etc...?

<comment><USER30> VSCode is a programmable editor with IDE-ish features (lots of them, and getting more). Intellij IDEA is an IDE behemoth. They'll overlap quite a bit, I doubt VSCode is going to be the IDE IDEA is anytime soon, if ever just as IDEA is probably never going to be something you fire up to edit a small python script or lets you hack in support for some obscure build system or error format parsing in 20 minutes.

That's mostly it. PyCharm is easily going to squish VSCode at the features you listed.

</comment></comment><comment><USER31> I was born and raised in Emacs, but over the years switched to Vim (on Amiga) and used it ever since. Occasional stints came and went (UE32, Sublime...), but vim remained. It still does, but used to too. VS Code, on the other hand, is excellent for Javascript. Whenever I need to do JS, VS Code is the tool to do it. Along with Brackets for quick proto/live preview (something VS Code doesn't do as well).

Vim is still my goto (heh, heh!) 'IDE' for C. I still haven't explored, in- depth, going towards Spacemacs for C... but my vim setup is now so well-honed for everything C that I'm not sure what would be the benefit of jumping on top of anything else. Doesn't seem worth it, except for debugging, which I do per- platform anyways.

In any case, VSCode for JS is THE tool, along with Brackets for live preview when making a proto.

</comment><comment><USER32> Is there any way to import or convert a Sublime Text 3 colour scheme?

It's stupid, but I'm so used to my customised colour scheme it really makes it hard to use anything else... and I'm comfortable enough with ST3 I can't be bothered spending time recreating the scheme from scratch

<comment><USER33> Can Sublime export a textmate theme? If so, yes, you can import a .tmTheme file into VS Code. [https://code.visualstudio.com/docs/extensions/themes- snippet...](https://code.visualstudio.com/docs/extensions/themes-snippets- colorizers)

<comment><USER32> Great!

in fact my theme is already in tmTheme format because it came from ST2, which could always load Textmate themes

</comment></comment></comment><comment><USER34> MS totally dominates tooling. I am so happy with vs code, use it for my angular development as well.

<comment><USER35> Use it for Rails and Flutter too here, and really happy with it!

</comment></comment><comment><USER36> What I'm hoping for, for all langauges and runtimes, is some global opt-in to WSL. If I have node or python installed on WSL, I would love it if the Windows version of VSCode could act as if it were the Linux version.

<comment><USER37> Not a Windows users but curious about WSL - could you run Linux VSCode under WSL?

<comment><USER38> Yes, you can!

Setting up UI under WSL is a bit of a pain, because there's nothing out of the box - so you need to set up X on Windows, or use VNC or RDP. RDP is the easiest by far right now - just install xrdp in WSL, edit the config so that it uses a different port, and connect to localhost from Windows. The result looks like this:

[https://i.imgur.com/DSmLjUM.png](https://i.imgur.com/DSmLjUM.png)

</comment></comment></comment><comment><USER39> Wish MS would also offer an own Ruby extension. Solargraph and the vscode-ruby extensions are pretty good though

<comment><USER10> The Python VSCode extension started out as an independent open source project. It independently reached a pretty high level of maturity - and helped VSCode get popular among Python developers - before, a bit under a year ago, Microsoft hired the maintainer.

Since then it's acquired a few new goodies, but most of what makes the extension great happened before Microsoft adopted it, so I shouldn't think there's anything stopping Ruby from doing the same.

<comment><USER10> Following up on that -

Shooting from the hip, though, if the desire is for funding, I'm guessing Microsoft wouldn't see much strategic value in putting money into a Ruby extension. The Ruby ecosystem has largely congealed around an ASP.NET competitor, some devops tools that don't really work on Windows, and not much else. Python, on the other hand, is widely used in Microsoft shops. Windows shops need data scientists, too, and it's typically the primary language for cross-platform devops infrastructure.

<comment><USER40> Maybe that might change now that they bought github (heavy users of ruby) but I doubt it ;)

<comment><USER10> Maybe the GitHub people would do it independently?

There's also just a question of which way the winds are blowing. I know the TIOBE index needs to be taken with a dose of salt, but it is interesting to see that Python is entering the top 3 at the same time that Ruby is falling behind Object Pascal.

</comment></comment></comment></comment></comment><comment><USER41> Yay, finally proper remote debugging support - had heck of a time figuring it out with previous version ([http://artem.savelev.com/2017/08/comfortable- vscode-rpi-debu...](http://artem.savelev.com/2017/08/comfortable-vscode-rpi- debugging/) )

Hopefully this one just works as v4 actually has an idea of standard protocol that doesn't break.

</comment><comment><USER42> I wish they would add support for running Python or any runtime inside of Docker.

There's been a Python specific ticket open since November to add in remote interpreter support at [https://github.com/Microsoft/vscode- python/issues/79](https://github.com/Microsoft/vscode-python/issues/79). Current status is "no ETA".

<comment><USER21> This is very high priority feature on our backlog, and we are currently looking into it. It's a complicated feature to implement so any ETA we give right now would be making things up, sorry!

</comment></comment><comment><USER43> Updated to the August release of VSCode this morning and discovered that debugging python in the editor is broken. The editor refuses to recognize PYTHONPATH specified in the environment or a .env file. (This refers to VSCode on Windows 10). The hack to work around this is to specify it in the launch.json file. Otherwise I absolutely love VSCode and particularly the Python extension.

<comment><USER15> Please file a bug at [https://github.com/microsoft/vscode- python/issues](https://github.com/microsoft/vscode-python/issues)

</comment></comment><comment><USER44> Crazy question: Since Microsoft bought GitHub, would it make sense to merge VSCode and Atom at some point, keeping the best of each one?

<comment><USER5> What's the best of Atom?

<comment><USER6> As the other comment mentioned, extensibility. Their API is much easier to navigate. Their commands line up exactly with the name that shows up in the fuzzy finder, so dispatching a command or adding a key binding is a breeze. The settings menu supports things like drop down lists and color pickers. The UI is both beautiful and consistent. And Vim Mode Plus feels far ahead of Vscodevim.

You do lose the dedicated python developer, first class LSP support, and integrated debugger though.

</comment></comment></comment><comment><USER45> Is there a Python IDE that will show all the stuff that's actually in a class? E.g. if I have a class that inherits from several parent classes, some of which have identically named methods, is there a good way to see how the methods are defined in the class I'm looking at?

<comment><USER46> VS Code has an Outline view that does this: [https://code.visualstudio.com/updates/v1_25#_outline- view](https://code.visualstudio.com/updates/v1_25#_outline-view)

</comment></comment><comment><USER47> I'm using VSCode for my FE work and love the tooling, integrations and marketplace. Happy with the vim plugin, formatting support and terminal support within the IDE. Not a surprise here coming from Visual Studio. In the past I've considered splurging on JetBrains' Webstorm IDE. Glad I didn't.

Will give it a whirl for the BigData/ML related scripts. Nice to see one IDE being the GoTo for different lines of work.

Having said that, with the latest update (1.26.1), I'm seeing a significant lag in keystrokes. Not sure whether a plugin is the culprit.

</comment><comment><USER48> Since the 80s and BRIEF (anyone remember that?) I have relied on record/play keyboard macro with every programmer's editor I've used. This fundamental feature is missing in VSCode, sadly it's a complete showstopper for me. I get the impression that VSCode's architecture makes this difficult or impossible to implement as an extension.

<comment><USER49> What a joy Brief was back in the day. Could open huge files, lightening quick, macros, column select and replace, programmable and all on a single floppy.

</comment></comment><comment><USER50> I'm pretty close to switching to this as my daily driver, but there's some small things, like Django Template formatting ([https://github.com/Microsoft/vscode/issues/46468](https://github.com/Microsoft/vscode/issues/46468)) that have yet to be fixed/working.

</comment><comment><USER51> I prefer Atom, but I've started having a weird memory leak issue in version 1.29 that prevented me from using it further (note: I've disabled all extensions and the problem persists). I use Ubuntu.

I'm using VSCode now and it's good, but I do intend to return to Atom when I get some time to properly create an issue for this problem in GitHub and help the team to fix it.

<comment><USER52> Since Atom is now owned by Microsoft I am wondering what is going to happen with Atom. Does it get better or does it get cut lose into a "community" project?

<comment><USER53> Atom and VSCode share lots of common infrastructure and Microsoft is investing heavily in that.

With that, even with no specific efforts toward Atom, it should still see improvements over time.

</comment></comment></comment><comment> ayr-ton Is great to see this kind of debugging, with a easy setup, in a open source IDE. Awesome job with the open source community.

</comment><comment><USER54> I tried it first very early on, but was hesitant after trying Brackets and Atom. I was happily surprised and once they added the integrated terminal, I was hooked. I don't use the tasks feature (usually just a terminal or two open). In general it's been incredibly nice though.

</comment><comment><USER55> I'm using VSCode for developing in Elixir and (because I had the license anyway I guess) my Python code in PyCharm. But perhaps I should re-evaluate VSCode for Python as well as it works fantastic (including quite advanced code warnings and errors) for Elixir.

<comment><USER56> Which Elixir extension are you using for VS Code? Are you on Windows, Linux or Mac?

I've had the best luck with the ElixirLS extension on Linux but there are still a few weird things here or there.

</comment></comment><comment><USER57> Awesome.

It's by far my favorite dev environment. Tried Eclipse first & was constantly fighting against the IDE. Might make sense for a full time dev but I just want a light editor with some basics like autocomplete & context etc

</comment><comment><USER58> I would really like to see MSFT implement a builtin way to visually profile applications. They have a great ecosystem for editing and debugging, but profiling extensions are non-existent because of the strict API.

<comment><USER15> If you specifically want Python support for e.g. coverage.py, then please open an issue at [https://github.com/microsoft/vscode- python/issues](https://github.com/microsoft/vscode-python/issues) .

</comment></comment><comment><USER59> As a relatively new programmer, no matter the IDE, I still run my code from the command line in a venv is there another way that something like this makes an option?

</comment><comment><USER19> Not only for VSCode but I'm very happy that Microsoft is pushing for Python.

Great work by Microsoft and all the contributors.

</comment><comment><USER60> It was already one of the best out-of-the-box experiences of any Python IDE I've used.

</comment><comment><USER61> As if python weren't already incredibly easy to debug?

A tool demo would help..

</comment><comment><USER62> Tangent thread:

Any alt recommendation for Flask+Connexion?

</comment><comment> another-cuppa I've been using emacs for more than ten years and I've loved how I've been able to invest heavily in one text editor to cover all my needs. Back then everyone else seemed to be using special purpose IDEs so it's interesting to see that only now lots of people are seeing the advantages of more general purpose editors.

VSCode is not emacs, but it's not bad at all.

</comment><comment><USER63> We want Perl support!

<comment><USER64> As much as I love Perl, it has a reputation of being exceedingly difficult to parse accurately, hence IDE support will never be great. There's also probably more demand to support hipster languages than last generation's work horses.

<comment><USER65> I don't use it since 2000's, but ActiveState's Komodo used to be ok.</comment></comment></comment>


Mathematical surprises - <AUTHOR> http://divisbyzero.com/2010/08/18/mathematical-surprises/

<comment><USER2> I would include the Diffie-Hellman key exchange algorithm in that list - it is pretty simple but wonderfully counter-intuitive:

[http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exch...](http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange)

</comment><comment><USER3> I've always liked the birthday problem:

<http://en.wikipedia.org/wiki/Birthday_problem>

</comment><comment><USER4> That's great list, was glad to see some familiar ones there too. I'd suggest putting up for example your top10 list. It takes a long time to go through all of those and as mentioned, not all are that intriguing.</comment>


Videogames are becoming the new hotbed of scientific thinking for kids today. - <AUTHOR> http://www.wired.com/gaming/gamingreviews/commentary/games/2008/09/gamesfrontiers_0908

<comment><USER2> It's good to see that video games do more than just improve your hand eye coordination.

I would have enjoyed grade school and high school a lot more if I had to play some video games for homework.</comment>


Things That Tweet - <AUTHOR> http://www.avc.com/a_vc/2011/07/things-that-tweet.html <comment><USER2> Reminds me of Paul Graham's observation:

"Twitter is important because it's a new protocol. Fundamentally it's a messaging protocol where you don't specify the recipients. It's really more of a discovery than an invention; that square was always there in the periodic table of protocols, but no one had quite hit it squarely."

<http://ycombinator.com/rfs3.html>

<comment><USER3> Its not really a new discovery, the very first instant messaging system was half publish/subscribe: <http://en.wikipedia.org/wiki/Zephyr_(protocol)>

</comment></comment><comment><USER4> I'd like to see it go further, and see a machine pretending to be a person tweeting, a Twitter version of the Turing test. Or you could go one better, and apply machine learning to the social media output and other electronic communications of a class of users, or a single user, and use it to create a software personality that autonomously tweets, posts to G+ and Facebook, texts, maybe even posts its own code and forks other users' code on github. Then let human users see if they can tell software-based users from humans - or from a particular person it's been programmed to emulate. Does anyone know of anyone trying something like that yet?

<comment><USER5> Earlier this year there was a "Socialbot" project where bots controlled Twitter accounts and were awarded points for follows and replies from humans. The team that won (<http://aerofade.rk.net.nz/?p=152>) programmed the bot to ask questions and use some Twitter culture (Follow Friday). There are also quite a few funny conversations in the post.

<comment><USER4> Ohmygod, a LOLCAT based Turing machine - many thanks for posting this reply.

</comment></comment></comment><comment><USER6> My favorite of these is <http://twitter.com/#!/big_ben_clock>, which tweets on the hour in London. (I copied this idea and made @sf_o_clock). The idea of devices broadcasting information to provide ambient data to anyone who cares to listen is so fascinating. This could go way beyond the obvious things like time, stocks and weather, and into... well, things I can't imagine yet.

</comment><comment><USER7> off-topic: I have a perverse desire to put some microphones up, see if there's any birdsong recognition software out there, and tweet whenever a bird in range tweets :oP

<comment><USER4> That's not perverse, it's a great idea. Ornithologists rely on crowdsourcing to conduct bird population surveys and track changes in bird populations from year to year. Let the volunteer surveyors sign up for twitter feeds for nearby detection of less common birds to go and confirm.

</comment></comment><comment><USER8> Pretty much everything that tweets in an automated fashion gets unfollowed by me pretty quick. The twitter stream is cluttered enough as is, no need to make it worse by having weather vanes and thermometers screaming alongside my friends who see cute cats.

Maybe I'm missing the point, but I have yet to find a Twitter bot that provides anything of real value.

<comment><USER9> I can see a few instances of automated tweeting generating value. I have a bot that tweets the latest headlines from the most popular blogs in a small niche. I'd say a large % of the active people in said niche follow the bot and it gets a lot of retweets and sharing.

Twitter is another way to consume information. RSS aggregators are popular which are automated, twitter can do the same thing over a medium people may be more comfortable with.

I also see value of these without you following them in your stream. I may not want to hear every weather update but when I want to know the weather, it could be nice to know where I can find it updating in real-time in a place I already am.

And to counter the inevitable 'but there is product/site/place X that already does Y': so what? If you look at user behavior just because something exists doesn't mean multiple competitors and ways to consume the same information won't be popular or useful.

<comment><USER8> I agree that it's unfair to say "so-and-so already does X", since innovating often just takes the form of making something slightly less crappy than it was before.

Unfortunately, my experience with Twitter, and especially automated Twitbots, is that Twitter is the crappy experience that needs to be improved upon. People push data into it because it's easy to do, not because it adds any real value.

Let's take the weather example: Auto-tweeting weather vanes are too noisy to include in your normal stream, so you unfollow them. Then, if you do want that information you have to use a search client, or build some kind of special client/consumer that compiles that info for you. At that point, surely it's easier to use one of the other services. Getting the data out of Twitter in a usable fashion is simply more work than getting it otherwise.

</comment></comment></comment><comment><USER10> I agree with some of the commenters - this information is useful but _only_ when I need it. Being bombarded with the weather every 15 minutes is pointless - I only need it when I'm about to head out for the day.

That being said, filtering all of this data via geofencing, time fencing, etc would be awesome.

<comment><USER11> I've always thought there could be an interesting use for Twitter just as a transport system for psuhing/pulling data between applications. You wouldn't follow those accounts, they'd just be data feeds. It's definitely not the use case Twitter started with, but it's viable now.

The advantage of using Twitter over another messaging system is that it's public and open. Anyone can easily push or pull from it without you having to build any additional infrastructure. On top of that it's reliable and can handle a lot of data.

</comment></comment><comment><USER12> I wonder about the honesty of machine sourced Tweets, not in the machines themselves but in the fact it would be super easy for a human to duplicate the tweets with faulty information. As a personal tool it could be amazingly useful (plants tweeting when they need water) but I don't see it working so well on a crowdsourced scale.

</comment><comment><USER13> Related to Apple's recent partnership with Twitter?

Methinks so.</comment>


Kubernetes: How to automatically detect and deal with deprecated APIs - <AUTHOR> https://blog.doit-intl.com/kubernetes-how-to-automatically-detect-and-deal-with-deprecated-apis-f9a8fc23444c <comment><AUTHOR> An article and a tool about how to detect the use of deprecated APIs in your Kubernetes cluster. Something to be aware of especially if you're upgrading to 1.16 soon.

GitHub: [https://github.com/doitintl/kube-no- trouble/](https://github.com/doitintl/kube-no-trouble/)</comment>


China and Tibet: The Worst of The Worst Again in 2010 - <AUTHOR> http://chinacensorshipwatch.org/china-and-tibet-the-worst-of-the-worst-again After reading this, it is astonishing that so many companies want to work with these people.... <comment><USER2> Any list that puts China and North Korea in the same category is a bit ridiculous. Which one would you rather live in?

<comment><USER3> @roadnottaken

China is consistently listed with the 10 or 20 most repressive countries in the world.

Whether you prefer to live in China over North Korea is irrelevant.

Personally, I would prefer to live in neither country.

Communist China and North Korea both suffer from the former's world leading pollution problem in addition to the lack of basic human rights. You would probably die young from the pollution in both countries.</comment></comment>


Essential Phone modular system - <AUTHOR> https://www.theverge.com/2017/5/30/15711194/essential-phone-modular-magnetic-accessory-system <comment><USER2> Avoid the "donglelife" by not having a little box of circuitry that attaches with a wire... by having a little box of circuitry that attaches with magnetic pins. #facepalm</comment>


My Productivity Stack: What Apps I Use for My Second Brain - <AUTHOR> https://www.daltonmabery.com/ideas-and-insights/productivity-stack <comment><USER2> I love posts like this!

The life dashboard is a good idea. I dont think notion will do it for me but maybe something will. That tool is still out there.

The Evernote email thing is a good feature. Maybe OneNote has the same thing?

Im an Android user and will try to use Google Assistant in the same manner as you do.</comment>


Cold symptoms feel worse when people feel lonely - <AUTHOR> http://exactlyscience.com/archives/11804.html <comment><USER2> Blogspam of

[http://news.rice.edu/2017/03/30/bad-cold-if-youre-lonely- it-...](http://news.rice.edu/2017/03/30/bad-cold-if-youre-lonely-it-may-feel- worse-2/)

with author byline (Mike Williams) stripped out.

</comment><comment><AUTHOR> Here's the research paper [http://psycnet.apa.org/?&fa=main.doiLanding&doi=10.1037/hea0...](http://psycnet.apa.org/?&fa=main.doiLanding&doi=10.1037/hea0000467)</comment>


Reuters hacked - <AUTHOR> http://www.reuters.com/article/2014/06/22/us-iraq-security-idUSKBN0EX0BJ20140622

<comment><USER2> Generally not a good idea to link directly to a hacked page.

There's a bit of code injected into the page near the bottom:

        document.write("<SCR"+"IPT TYPE='text/javascript' SRC='" + "http" + (window.location.protocol.indexOf('https:')==0?'s':'') + "://js.revsci.net/gateway/gw.js?csid=I07714' CHARSET='ISO-8859-1'"+"><\/SCR"+"IPT>");

js.revsci.net seems to be redirecting some requests to localhost, so the code isn't loading for everyone. If it loads for you, you get redirected to a big "hacked by the Syrian Electronic Army etc. etc." page.

The location of the code doesn't look like it was from a malicious ad or social media thingy. Looks like it's near the bottom of the page template, so that's neat. It's embedded in other unrelated articles too.

edit: I was able to retrieve the content from elsewhere. It's up at [http://pastebin.com/rzPeKKMH](http://pastebin.com/rzPeKKMH) \-- it's not just doing a redirect, there's some funky stuff in there.

<comment><USER3> Are you sure this is the malicious code? It looks like the standard Audience Science code, to me. Perhaps they or their CDN was hacked, or a malicious ad was placed on the advertising network?

<comment><USER2> Nope, not positive, and matheusbn posted an article saying it was something else: [https://news.ycombinator.com/item?id=7928052](https://news.ycombinator.com/item?id=7928052)

</comment></comment></comment><comment><USER4> It wasn't a problem inside reuters, but their 3rd party provider called (Taboola), which injects ads on reuters. So once taboola hacked, the ads system started injecting a script to redirect that page to another one.

Source: [https://medium.com/@FredericJacobs/the-reuters-compromise- by...](https://medium.com/@FredericJacobs/the-reuters-compromise-by-the- syrian-electronic-army-6bf570e1a85b)

</comment><comment><USER5> It seems that Reuters has rectified the problem now. Previously it was redirecting to a page hosted by the Syrian Electronic Army.

Also a reminder to not link directly to hacked pages but to perhaps a screenshot and put the real link in the comments, as we don't know if there could be malicious javascript et al injected into the page.

</comment><comment><USER6> Anybody have any idea about how they did it? Sorry for the noob question but I can't really figure out how they did it, since the original page loads fine and only after this there's some kind of redirect.

And as I can see it only affects certain pages so maybe there's a compromised component that's loaded on those pages?

</comment><comment><USER7> I am seeing the expected Reuters article. Mind explaining what is supposed to happen when loading this page?

</comment><comment><USER8> Just curious: What is this hacking technique called? seems to be some kind of JS injected redirection.

<comment><USER9> Injecting tags and JS scripts in to a page usually falls in to the XSS category of attacks although it is not clear how it was done in this particular case.

</comment></comment><comment><USER10> I wrote a post about what happened: [https://medium.com/@FredericJacobs/the- reuters-compromise-by...](https://medium.com/@FredericJacobs/the-reuters- compromise-by-the-syrian-electronic-army-6bf570e1a85b)

</comment><comment><USER11> What is supposed to happen? Seems to be some article...

<comment><USER12> After the page loads, you are redirected to the Syrian Electronic Army web site.

Specifically this page: [http://imgur.com/CkIFBmY](http://imgur.com/CkIFBmY)

</comment></comment><comment><USER13> It's fixed now. It was linking to [http://sea.sy/indexs/](http://sea.sy/indexs/)</comment>


Microsoft proposes Public Health Model to fight malware infections - <AUTHOR> http://www.microsoft.com/mscorp/twc/endtoendtrust/vision/internethealth.aspx

<comment><USER2> They're walking a mighty fine line, not unlike a tobacco products company might walk. It's pretty obvious by now that tobacco products cause a lot of health problems. But a tobacco products company can't officially sneer at public health efforts to decrease tobacco usage for fear of being tried (and losing!) in the court of public opinion.

Scott Charney (of anti-disclosure, "information anarchy" fame, I believe) here calls for the feds to come and help clean up the mess. But wait! Healthier, less infested alternatives exist! Government funded research may twig to the fact that Windows has a pretty baroque design, aspects of which (marking a file executable by special name format) obviously contribute to the malware problem.

How does Microsoft go about getting all the benefits of a public health campaign without suffering from any side effects? Looks like another symptom of decline to me.</comment>


The United States Doesn't Have a Gun Problem - <AUTHOR> https://bostonreview.net/reading-lists/rosie-gillies-boston-review-united-states-doesn%E2%80%99t-have-gun-problem <comment><USER2> The reading list is dated March 27, 2019 so likely not a response to a specific event. [https://en.wikipedia.org/wiki/List_of_mass_shootings_in_the_...](https://en.wikipedia.org/wiki/List_of_mass_shootings_in_the_United_States_in_2019) lists too many so see which one made major news around that time.

</comment><comment><USER3> A balanced reading list which sheds light on both sides of the argument when put together. Would recommend.</comment>


Vigil, the eternal morally vigilant programming language - <AUTHOR> https://github.com/munificent/vigil <comment><USER2> Deleting offensive code was an "accidental feature" of ghc at one point:

[https://twitter.com/bos31337/status/116372971509121025](https://twitter.com/bos31337/status/116372971509121025)

> The best ghc bug ever involved a dev version of the compiler deleting your > source file if it contained a type error.

[https://git.haskell.org/ghc.git/commitdiff/434ef2b14b37df405...](https://git.haskell.org/ghc.git/commitdiff/434ef2b14b37df405602a74838b8b38d0f5b4375)

</comment><comment><USER3> Vigil comes from Munificent, the principle developer of wren, an unironic language that fills lua's niche (portable c, embeddable, no dependencies), with a nicer syntax: [https://github.com/munificent/wren](https://github.com/munificent/wren)

<comment><USER4> I believe he is also on the Dart lang team at google. He has a pretty awesome blog and is super insightful when it comes to programming languages. His Github projects inspired me to research language design further.

<comment><USER5> Yep his blog and books are great. Incidentally I started looking into Dart yesterday. Seems like a comfy language, more so than Typescript in my opinion.

</comment></comment></comment><comment><USER6> I made an automatic error fixer once in Powershell. When you load a module, it would catch missing commas between parameters, and update the module file with the missing commas. I want to extend it to catch many more common coding mistakes.

This sounds like the opposite idea, remove the function instead of repairing it. Very aggressive idea.

<comment><USER7> You get that this language is a joke, right?

<comment><USER8> Adopting this scheme might really lead to improved code quality.

<comment><USER9> Well yes. The empty program is 100% bug-free. I don't think any other language can guarantee that your code will be 100% bug-free.

<comment><USER10> The contract is to _do something specific_. If it doesn't do that then it's a bug. It will need to delete itself.

</comment></comment></comment></comment></comment><comment><USER11> Jokes aside, semantically "implore" and "swear" are actually really good primitives for static analysis. "swear" is only dangerous because there's a chance it gets out of sync with the code it's swearing for.

<comment><USER12> Check out Eiffel if you want a serious version of pre/post conditions and invariants. Or any number of functional languages where the approach tends to be to use the type system for these type of guarantees instead.

</comment></comment><comment><USER13> You use this for high-level parts of the app. You drop down to HolyC for anything it can't handle.

<comment><USER14> HolyC is awesome.

Aw, Terry's YouTube channel was taken down. He did so many walkthroughs of HolyC and his dynamic programming engine.

Oh well, 353 videos were archived at least.

Thank goodness for archive.org!

[https://archive.org/details/TerryADavisTempleOSYouTubeChanne...](https://archive.org/details/TerryADavisTempleOSYouTubeChannelArchive)

HolyC: [https://archive.org/download/TerryADavisTempleOSYouTubeChann...](https://archive.org/download/TerryADavisTempleOSYouTubeChannelArchive/20140907%20-%20160%20-%205gfoDHycEi0%20-%20TempleOS%20-%20HolyC.mp4)

Flight simulator: [https://ia801506.us.archive.org/2/items/TerryADavisTempleOSY...](https://ia801506.us.archive.org/2/items/TerryADavisTempleOSYouTubeChannelArchive/20131003%20-%20012%20-%20FxEq6IM43sA%20-%20TempleOS%20-%20Flight%20Simulator%20and%20First%20Person%20Shooter.mp4)

<comment><USER15> Why? Because of "offensive" language?

<comment><USER14> _An archive of Terry A. Davis ' YouTube channel before it was taken down / removed around 2017-05-18.

Due to copyright strikes not all content was available for download._

Sounds like copyright strikes. He had 1,140 videos uploaded. That's like burning down a library.

<comment><USER16> Wow, that's terrible. Anyone know if he still streams? I enjoyed his casts of walking through the HolyC source

<comment><USER14> Was he on Twitch? I'd follow.

I'd guess if he streamed on Youtube, his account is terminated so that's no longer possible.

I kind of want to go through the legwork of reuploading most of the 1100 videos and then giving Terry the username+password of the new channel. But I don't know if that will run afoul of Youtube's policies and I don't want to be banned for life myself.

(Archive.org snagged most of the 1100 videos, not just ~300. But some of them are just missing.)

</comment></comment></comment></comment></comment></comment><comment><USER17> [https://github.com/munificent/vigil/issues/24](https://github.com/munificent/vigil/issues/24)

There's a proposition to not only delete the code but commit and push the git repo its a part of.

<comment><USER10> That only works if it rewrites the git history and removes the function completely.

<comment><USER17> [https://github.com/munificent/vigil/issues/24#issuecomment-1...](https://github.com/munificent/vigil/issues/24#issuecomment-168464165)

The proposal goes further...

<comment><USER10> Distributed punishment. Gives a new meaning to pulling changes.

</comment></comment></comment></comment><comment><USER18> It seems unfair to punish a program lacking in free will.

<comment><USER19> Indeed. The one that needs to be punished is the programmer. I suggest burning at the stake.

<comment><USER20> You are implying/assuming that the programmer has free will. That is nonsense.

<comment><USER21> "There's no free will, says the philosopher; To hang is most unjust.

There is no free will, assents the officer; We hang because we must."

―Ambrose Bierce

</comment></comment></comment></comment><comment><USER22> >any function that throws an exception which isn't caught is wrong and must be punished

It's not obvious who's to blame here, the caller or the callee.

<comment><USER23> Rarely is one at fault when two argue.

</comment></comment><comment><USER24> I was actually kind of excited until I started reading the sample code and that it deletes code that has bugs. Of course this coming from the guy who went on a reddit rant about how not having 100% coverage is usually irresponsible.

<comment><USER25> >rant about how not having 100% coverage is usually irresponsible.

Well, that's because it is irresponsible.

</comment></comment><comment><USER26> So this is essentially a creative implementation of the contracts model from Eiffel. I like Racket's implementation a lot, which is coupled with its module system.

</comment><comment> unkown-unknowns Likewise, users ought to be punished for making mistakes as well. If someone has a typo in a command on the cli, delete a random file from their home dir.

<comment><USER27> Alternatively: [https://qntm.org/suicide](https://qntm.org/suicide)

<comment><USER28> > I have invented Suicide Linux. Any time - any time - you type any remotely > incorrect command, the interpreter creatively resolves it into rm -rf / and > wipes your hard drive.

That adds a level of terror... Maybe somebody will add it to a tech interview. I mean, it's got a Debian package.

</comment></comment></comment><comment><USER29> An early computer-based Nomic game (which I've forgotten the name of) had its proposals in the form of patches to the PHP for the game website. The way they handled buggy submitted code was to excise offending blocks of code until it ran again.

</comment><comment><USER30> Why not:

        assert n >= 0
        assert result >= 0

    ?

<comment><USER29> Because those don't delete the offending code which must be punished.

Also, _implore_ specifies the caller is offensive, and any function which _swears_ a falsehood is offensive. The latter is like _assert_ , but the former is like lifting the assert to the caller.

</comment></comment><comment><USER15> Can't wait until this is noticed by a manager with a PhD from protestant theology and decided to be used/implemented :D

Referential self-punishment. Self-removing code during runtime based on a predestined moral functor.

</comment><comment><USER31> This is so great.</comment>


There was no widespread use of malleability attacks before the closure of MtGox - <AUTHOR> http://arxiv.org/abs/1403.6676 <comment><USER2> What's there to say? This is yet another piece of evidence that Mt. Gox was grossly incompetent. Unfortunately, it's very difficult to prove whether or not there was any criminal fraud involved. If there was, and it could be proven, then at least justice could be served. If there wasn't any fraud, and that could be proven, then at least it could be shown that Karpeles was just a bad businessman, not a fraudster, and his name could be cleared. This limbo leaves so many questions unanswered that it's hard to know if we're ever going to find out what truly happened.

Mt. Gox recently claimed they found 200,000 BTC that they'd lost track of. If their claim can be taken at face value, then I think it's plausible they may have panicked back when their losses first became clear to them in February, leading them to blame it on malleability even though they didn't really have a clue where their money went or why. They probably felt they had to tell people _something_ , and saying "we lost track of >750,000 BTC for unknown reasons" may have been less desirable than blaming their problems on something tangible, like transaction malleability. Unfortunately for them, it turns out that they were wrong about that.

So here we are. All that's been demonstrated is that consumers currently have very little protection in this space, and that patio11 and others were right to warn people to be very careful with bitcoin.

<comment><USER3> I'm not necessarily pro-bitcoin, but there's a difference between bitcoin:the protocol and bitcoin: services offered around this.

I think this is more another case of pretty incompetent people going into this (probably linked to the fact that a lot of proponents of bitcoin are in it for the ponzi-scheme like qualities of the current environment). Maybe we'll get some people who've taken an accounting class and a concurrency class(necessary but not sufficient conditions) to implement these exchanges one day.

The public ledger in particular could be used to establish a good amount of trust with an exchange (publicly-auditable). The only problem being that many bitcoin proponents buy into the myth that bitcoin allows you to remain anonymous, and that the exchanges should be built in the same way as money laundering services.

We'll probably see a lot of this so long as the current environment is based around bitcoin being some sort of investment vehicle like gold. Maybe if enough people actually start wanting to use it as a currency, the quality of these services will go up, and we can trust them a bit more. Maybe actually having exchanges bail each other out (see Japanese banks in the 80s/90s) and supplying safety nets would increase trust.

<comment><USER2> The problem, which I can't figure out a way to solve, is that any exchange can die at any time due to massive theft or failure. When this happens, customers will lose all of their funds.

People have mentioned m-of-n transactions as one possible solution, which means that the customer and the exchange both have to approve of any transaction involving the customer's funds. But this may preclude realtime trading, which is usually one of the main purposes of an exchange.

It's a tough problem, and there may be a solution. I'm continuing to think about it.

<comment><USER4> Yes, m-of-n addresses are the solution, we use it on Bitalo [0]. It's true that it is less suitable for day traders, and while they make the most of network volume, they are not the only purpose that exchanges exist. Some people just want to buy Bitcoin occasionally, i.e. once a week, month or less frequently. They also want a secure place to store them. I believe that for those people, our service is the perfect answer :).

[0] [https://bitalo.com/why_bitalo](https://bitalo.com/why_bitalo)

<comment><USER5> Can you explain how this works? I read the page, but I don't quite get it. If Bitalo has one key and I have one key, what's the benefit?

\- If Bitalo loses their key, I lose my money.

\- If I lose my key, I lose my money (so I still need backups).

\- Still need my own keystore device, so it's not more convenient.

\- If I have a single device and it gets hacked, the attacker can emulate me to Bitalo.

\- If I have multiple devices, why can't I use m-of-n without Bitalo?

I'm not trying to be negative, I just feel I'm overlooking something simple.

<comment><USER4> You only need to remember your password, from which your key is derived. You also need to write a recovery string (which can be used to derive your key as well) on a piece of paper and store it somewhere safe as a backup in case you forgot your password.

Now from our side, there's very little chance we lose your key (we do encrypted offsite backups every hour) and even then we're currently implementing "presigned transactions" that use "nLockTime" function in Bitcoin protocol to let you claim your Bitcoins after certain amount of time in case we disappear.

Also, we require you to use 2-factor, so even if your computer gets hacked, attacker still can't emulate your actions to steal your coins. And if an attacker hacks our server, he only gets one key of two needed to spend the funds.

<comment><USER5> Do you do 2FA when people enter their passwords? Otherwise isn't this like a password-derived wallet?

Presigned transactions sounds very neat.

<comment><USER4> Yes, you need 2FA for each login, for releasing funds as a seller, and for withdrawing coins.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> I personally believe that Karpeles committed fraud and stole users' money, but I believe that category of risk was absolutely known and correctly priced into the instrument. What do you folks think?

EDIT: A rational response is a much more satisfying outcome for you, if you can pull it off, rather than mere downvoting to attempt to force your hopes for reality onto the world.. yes, you do achieve a minor victory, a move forward against the hurt, downvoted opponent.. but not truly closer to victory, secure in a rational interpretation of events.

<comment><USER7> That would seem to mean either something went horribly and abruptly wrong with his scheme, or he forgot "and run". Which one are you postulating, and why?

<comment><USER6> I am postulating that he looks guilty here.

[http://graphics8.nytimes.com/images/2014/03/27/business/dbpi...](http://graphics8.nytimes.com/images/2014/03/27/business/dbpix- bitcoin-mt-gox2/dbpix-bitcoin-mt-gox2-tmagArticle.jpg)

And I can't tell you why. Maybe I'm projecting. But it's my gut intuition. Though is this not a category of thought that should be discerned via "fast thinking"? Are there any studies that compare test subjects' judgments of guilt, based on defendant photographs, to jury verdicts?

<comment><USER7> Never serve on a jury.

<comment><USER6> Haha, oh man. Do you think the judge would let me cite this thread as evidence for why I should be excused?

Also: you have a cognitive error, bud. I was a victim in this case; I would not be eligible for the jury. Fundamental attribution error

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

<comment><USER7> Any jury, anywhere, for any case. People who think they can infer guilt from an utterly neutral facial expression captured in a still image are not fit to participate in any system of justice.

<comment><USER6> OK, that comment was mean. Are you aware of that?

edit: hahahaha, all right, whatever. he still looks guilty to me. sorry if he's innocent. regardless, there is definitely a sentiment, and i voiced it. i don't regret contributing. maybe my tone or something could have been improved? i'm not sure, because i don't disagree with my actions.

<comment><USER8> ...but throwing around accusations of guilt of a criminal offence because of a photo is fine?

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Karpelès was found guilty of a financial computer crime and of money transfer fraud when he was somewhere between 13 and 18 years old. The court gave him a 3 month suspended sentence and no criminal record.[0]

[0] [http://en.wikipedia.org/wiki/Mark_Karpel%C3%A8s](http://en.wikipedia.org/wiki/Mark_Karpel%C3%A8s)

<comment><USER10> I hardly see this as relevant. For all we know he found a credit card on the internet and signed up for Brazzer's.

<comment><USER5> From the source cited on Wikipedia[1]:

"I will not give too much detail about what I did wrong, just say it concerns payment systems on the Internet. I spent two years taking risks becoming larger, perhaps because it was an exciting side … whatever, I ended up getting arrested"

Without more details it doesn't mean much, but it does sound a bit more than using a stray card -- if that translated post is actually from him.

</comment></comment></comment><comment><USER11> Take it with a grain of salt but at least there is a rumor that MtGox has found 670K more coins: [http://theblogchain.com/news/mtgox-found- bitcoin/](http://theblogchain.com/news/mtgox-found-bitcoin/)

</comment><comment><USER12> Blockchain is readable as this text. Just get a particular date range and check all transfers for that, filter by an amount!

</comment><comment><USER13> MtGox certainly benefited from these attacks as it proved the problem is real.

The real question is who was behind these attacks?

</comment><comment><USER14> That seems like the most plausible scenario anyway. Karpeles was just trying to take down Bitcoin with him by blaming it on a 'Bitcoin bug'. All this is a joke just like everything else in this sad saga, such as "cold storage leaking".

I wouldn't attribute to malice what could be explained by incompetence, but seriously, this cannot be explained by incompetence.</comment>


Feds, right-wing media paint Portland as 'city under siege.' A tour of town show - <AUTHOR> https://www.oregonlive.com/portland/2020/07/feds-right-wing-media-paint-portland-as-city-under-siege-a-tour-of-town-shows-otherwise.html <comment><USER2> "Portland police declare riot as anti-cop protesters torch union headquarters" [https://news.ycombinator.com/item?id=23889300](https://news.ycombinator.com/item?id=23889300) . This was on the 52nd day of "protests". It sounds like a city under siege to me, when rioters brazenly attack the police.</comment>


We already have error monitoring tools, do we still need log analysis tools? - <AUTHOR> We already have error monitoring tools, do we still need log analysis tools? <comment><USER2> One definitely doesn't replace the other. We use Loggly for log analysis as well as our error monitoring tools and it definitely adds distinct value. The traceability and reusability are great, and it lowers overhead as well.

[https://www.loggly.com/blog/does-error-monitoring-spell- the-...](https://www.loggly.com/blog/does-error-monitoring-spell-the-end-of- logs/)</comment>


AVC: The Word Bubble - <AUTHOR> http://www.avc.com/a_vc/2011/04/the-word-bubble.html

<comment><USER2> When investors throw their money away in startups like 'color', that is not a bubble, just sheer stupidity.

When joe sixpack 'invests' his house in facebook's ipo, then borrows some money to invest in groupon's; that, my friends, is a bubble.

We'll be there in a couple of years, nobody can escape from that. The hype machines will be in full swing with ten posts per day on the front page feeding the frenzy, tv shows, newspapers headlines about the best initial day for an IPO since google, everybody making millions overnight and nobody wants to be left behind. We all know that feeling.

Then joe sixpack enters the party, and the bubble pops.

<comment><USER3> The same investor who 'threw their money away' on color also threw money away on Google, Yahoo, Paypal, YouTube, LinkedIn, Admob and Zappos.

Of course, they've invested in many companies that didn't return on the investments.

Just because you don't believe they made a good investment decision, I would think it wise to respect their very good track record.

<comment><USER2> Color was picked just to name one investment that 'looks' stupid from the outside, nothing else. No need to put your gloves on.

<comment><USER3> The gloves aren't on, sorry if it came across that way.

I just think as start-ups we shouldn't single out large investments as unreasonable until/unless they are proven so.

With the odds stacked against us already, it may be in our best interest to not be the naysayers of our own industry.

</comment></comment></comment></comment><comment><USER4> I think the public (i.e. IPO) performance of this period's major startups will be telling.

Facebook, Zynga, Groupon, Living Social, LinkedIn, Twitter, etc.

If/when they go public, we'll get to see how they're really doing.

And I think how they're doing will affect the rest of the startup industry.

<comment><USER5> Completely agree here. We'll have a much better picture of where the startup industry stands once we find out the real market value of all these companies set to go public.

</comment></comment><comment><AUTHOR> The bottom line is that if the company is a solid proof of success, no matter how hard the storm hits it, it will survive the hurricane and reap more harvest than ever. If the company lacks solid foundation, and poorly executes, then it will be wiped out by the rain, resulting in "liquidation". The biggest difference the bubble makes is putting more players into the game, providing more opportunities for entrepreneurs to create something outstanding that the world can benefit from.

Economists might argue that these poor investments will greatly affect the economy; after all there is a trickledown effect in every financial sector. But Keynes boom-and-bust cycle is not just some theory that can be eliminated with caution. The roots of the boom-and-bust cycle engraved within human nature, and unless we alter the behaviors of all the participants in the economy, and wipe out the concept of greed, preventing this cycle is almost impossible. Thus instead of preventing such cycle, why not let the true entrepreneurs take their innovation to the next level with the boost from the market, and give them the opportunity to change the world, and turn it into a better place? If the bubble can harness more innovation for the world, why is it a bad thing?

(this is the final passage from my blog @ <http://milogao.tumblr.com/>)

</comment><comment><USER6> I thought just two months ago we were reading a Fred Wilson article about how this is not a bubble. So, it _is_ a bubble now, but Fred just doesn't like that word?

This is a off topic, for which I apologize, but the way his Etsy Mini is cut off there doesn't exactly highlight the wonderful design and programming prowess of Etsy. Or well, actually sad to say it does encapsulate their design skills very accurately. The Etsy mini has not been updated since 2006. Can you imagine? I guess the fact that one of Etsy's main investors puts that on his blog, with the right 25% cut off no less, and seems to think it looks fine explains a lot.

<comment><USER7> i don't think it looks fine. i run the etsy mini as the "default ad" on AVC. i rarely see it but i suspect it is seen by a lot of people outside of the US. out of curiosity, are you outside the US?

<comment><USER6> I'm in the US and I was seeing it every 2-3 times I loaded the page.

I assumed you thought it looked okay from how it was on your blog, as personally, I would have said "hmm, it doesn't fit". At this point in the story, I would go to the Etsy App Gallery and see if a helpful third party developer had one in a smaller size. On the other hand, if I was on the Board of Etsy, I'd probably get on Etsy IRC instead and tell one of the 70+ engineers there to make me one that fits.

If only every browser supported the 'zoom' CSS property, we could just apply zoom:80%. Then this one would fit fine... alas. Next we ponder what happened to the 'Super Etsy Mini', which died in creation with only the epitaph: "It was trying to do too much".

It's cool you're showing your Etsy stuff on your blog. There's still a huge mass of people who don't know about what is found on Etsy.

<comment><USER6> Oops, sorry - I meant to say I'm 'NOT' in the US, but I couldn't edit the post by the time I noticed.

</comment></comment></comment></comment><comment><USER8> my only concern is that the masses will discover secondmarket and NASDAQ that thing like it is '99

otherwise we all cool

</comment><comment><USER9> _Markets are defined by greed and fear. We are in the greed mode right now._

Great line.</comment>


Be careful of hackers, Facebook is no longer safe, IT experts warns - <AUTHOR> https://www.abelabel.com/2018/04/be-careful-of-hackers-facebook-is-no-longer-safe-it-experts-warns/ <comment><AUTHOR> I think we need a user friendly social network that is not greedy for profit</comment>


Jeff Bezos Turned Narrative into Amazon's Competitive Advantage - <AUTHOR> https://slab.com/blog/jeff-bezos-writing-management-strategy/ <comment><USER2> I've written documents for Jeff, and IMO, the six-page narrative memo is a key part of Amazon's success. It's so easy to fool both yourself and your audience with an oral presentation or powerpoint slides. With narrative text that has to stand on its own, there is no place for poor reasoning to hide. Amazon's leadership makes better decisions than their competitors in part because they are routinely supplied with better arguments than their competitors.

"Writing is nature's way of letting you know how sloppy your thinking is." -Dick Guindon, via Leslie Lamport

<comment><USER3> > "Writing is nature's way of letting you know how sloppy your thinking is."

Indeed!

Every so often, I have a coding question and I have an urge to ask that question on StackExchange.

Before I actually post the question, I write a draft question. I usually revise my draft a few times to make it as clear as possible. About 50% of the time, the process of revising my draft makes me realize an obvious solution to my own problem that I had overlooked.

<comment><USER4> The internet needs more of you. Thinking about your problem and a question to solve it leads to introspection, which is sorely lacking in most StackExchange questions. Most posters just let their stream of consciousness out, post it, and curse the lack of answers.

<comment><USER5> If you've ever had to deal with customer problem reports, you'll know that isn't just people using SO and related sites.

<comment><USER6> Yeah, as someone who has to deal with bugs from systems layer to userspace, a non-trivial chunk of reports (not from customers per se) are: "crap blows up, please figure out".

FWIW, some four years ago I wrote this for this "bug filing recommendations"[1] guide for the OpenStack community when triaging lots of bugs.

In my experience, the most and informative and delightful bug reports I've ever come across are from Japanese customers. And obviously, I prioritize those bugs that are competently written.

[1] [https://wiki.openstack.org/wiki/BugFilingRecommendations](https://wiki.openstack.org/wiki/BugFilingRecommendations)

<comment><USER7> My most common from end users is, "it won't let me..."

It won't let me login. It won't let me change my profile. It won't let me go to the page I want.

Such a waste of time. Two seconds of thought should allow anyone to realize that is not enough data for me to even begin troubleshooting your problem.

</comment></comment></comment></comment></comment></comment><comment><USER8> Article starts out well and then veers off into strange and scattershot coverage of unrelated Amazon factoids.

It doesn't fully cover the communication principles of the 6-pager. The missing parts are:

\- 6 pages is the upper limit; the memo can be shorter

\- The format is designed to drive the meeting structure by requiring attendees to read the memo in the first 10 minutes of a meeting, followed by discussion

\- You can push extra information into the appendix if needed to convince those looking for more evidence

\- The memo is self-sufficient as a unit of information, unlike a Powerpoint that relies on the presenter (or a video of them) to contextualize and connect the information

The basic thrust is to bring the discipline of scientific style article writing into office communications (and avoid Powerpoint anti-patterns in the process).

<comment><USER9> I too was frustrated with this article. What is a narrative memo? Is there an outline? Examples?

<comment><USER10> Amazon employee here - Here's an overview of how Amazon does "Working Backwards" narratives - [https://www.forbes.com/sites/innovatorsdna/2017/08/08/how- do...](https://www.forbes.com/sites/innovatorsdna/2017/08/08/how-does-amazon- stay-at-day-one/)

<comment><USER11> That was a good read. Thanks for pointing it out.

<comment><USER12> The first few lines are a straight out lie! Alexa was not developed internally at Amazon - it was bought in, on the cheap - [https://www.logicalclocks.com/what-is-it-with-european- data-...](https://www.logicalclocks.com/what-is-it-with-european-data- companies/) .

<comment><USER13> > Alexa was not developed internally at Amazon - it was bought in, on the > cheap

That's a flat-out lie itself.

A knowledge graph was acquired. Alexa - which, at this point, represents many thousands of years of engineering effort, was most certainly developed in- house.

Source: I wrote the 2-pager recommending the acquisition of said knowledge graph company.

</comment></comment></comment></comment></comment></comment><comment><USER14> The memo idea is a brilliant idea when Jeff Bezos and his team use it. Unfortunately it has been bastardized by inept middle managers. I saw this firsthand at Amazon. People spending hours debating about spelling errors and sentence phrasing; talking about how a paragraph is going to confuse a hypothetical person who would in reality never read it. Instead of using the memo for what it is meant for...to communicate about your project in a clear way. I saw people spend 45 min on a paper about a product and then 5 min on demoing the actual product. I think the paper applies more in high level strategic meeting and is not a universal panacea for every project you do. But people are not that subtle and its either all papers or nothing.

<comment><USER15> Of course your last sentence is true. Just hypothesizing, but I imagine the ensuing discussion is the point. Perhaps the discussion took place because:

\- There's disagreement... in which case, this is a needed conversation. It probably should happen before the meeting, but it's way better to have now than to kick down the road because sentence phrasing seemed beneath us.

\- There's politics/personality issues... in which case, maybe the conversation isn't enjoyable, but that clash is going to happen at some point. If not this meeting, then the next.

One of the larger points going on in this thread is that articulating things forces reality checks—between you and your idea, between your idea and others' ideas, between the team's ideas and reality, etc.

<comment><USER14> Good points but nowhere close to why this happens most of the time. I can't see how sentence phrasing can cause a whole project to go in a direction it was not intended for. Often times the people most active in these white paper discussions are non-technical people who don't do any actual work rather than running from meeting to meeting who are trying to get in their two cents to show how valuable they are. At the end of the day - this creates an atmosphere for the PM to shine and the Engineer to take a backseat. Maybe it's different in more technical parts of the company but this is the dynamic in Finance/Legal/HR.

</comment></comment></comment><comment><USER16> This just gave me a lot of respect for Bezos. Leader type personalities usually can't (be bothered to) write well and often seem to be more doers than thinkers. Bezos has a very clear and pleasant writing style and obviously understands the usefulness and practicalities of deep thinking.

<comment><USER17> The more books you read, the better your own prose (generally).

I'd imagine the guy that started a company to sell books online has read many of them.

</comment></comment><comment><USER18> I think he's right in general about capturing the detail. You must be able to write down succinctly what you're selling before you talk about it to an audience. It's analogous to writing down your design for software before you actually code it. If you can't then something doesn't add up.

If you want to produce a bullet point powerpoint from the document then it should be possible to do it in a few hours. But the reverse isn't true.

</comment><comment><USER19> I realized I want to read all of these shareholder letters from 'Day 1'. Luckily some guy has already compiled them all into one PDF that I just sent to my [Amazon] Kindle. Reading about Amazon on an Amazon device lol. Hope this helps you too:

[https://medium.com/@austenallred/every-amazon-shareholder- le...](https://medium.com/@austenallred/every-amazon-shareholder-letter-as- downloadable-pdf-4eb2ae886018)

PS: Have any of you read all of Buffet's shareholder letters? Would those be worth reading from the beginning?

</comment><comment><USER20> A surprisingly effective tip from an Edward Tufte seminar was using 11x17 paper to create a 4 page "booklet".

Unsurprisingly non existent from Tufte was figuring out how to apply any of this to my current work culture.

<comment><USER2> I've seen a couple companies try to adopt the Amazon-style narrative, and they both failed. I think the only way it can happen is if leadership demands it and is absolutely unrelenting. People will resist at first, but in time (years) they will come around. Some people may have to exit the organization and be replaced for this change to work. Amazon's organization circa 2004 was large and resilient enough to support this kind of change. A random startup might not be able to.

There are important norms in Amazon's culture that support this method. Time is always set aside at the beginning of the meeting for people to read the paper. They know that no one will read it before-hand, so they make time in the schedule. Also, the main document is at most six pages, but you can supply an endless number of appendices. This gives people a place to put supporting information that feels too important to cut entirely.

<comment><USER21> " I think the only way it can happen is if leadership demands it and is absolutely unrelenting. "

I should add that the leadership should do it themselves and lead by example. When we introduced Agile the developers were the only ones who went to training while management continued as usual so our Agile quickly devolved into micromanagement. Same for code reviews. It's very important that the more experienced devs closely follow agreed-on coding styles.

<comment><USER2> I agree completely. It's also important that the audience can actually tell the difference between good writing and poor writing and give useful feedback. You can't just ask people to write and hope for the best.

<comment><USER21> That's why leadership has to lead by example and not just tell people to write well.

</comment></comment></comment></comment></comment><comment><USER22> I highly recommend making writing part of the interview process if it will be important for the job. Some people sound brilliant when talking, but as others have noted, having to write out the details forces you to organize your thoughts.

<comment><USER23> Commit messages count as writing, IMHO.

<comment><USER24> And some people are better at it than others. I just watched three to five commits scroll by with subject lines of "updates" and no body … which tells me nothing about _why_ the code is changing, or why this is the right change.

</comment></comment></comment><comment><USER25> Is there an example of one of these memos online anywhere?

<comment><USER26> His letters to shareholders? [https://www.zachpfeffer.com/single- post/2017/10/21/Links-to-...](https://www.zachpfeffer.com/single- post/2017/10/21/Links-to-all-of-Jeff-Bezos-Letters-to-Shareholders-1997--- 2017)

</comment></comment><comment><USER27> If PPT and even bullet points are disallowed, what about charts/graphs? It would be pretty annoying if every chart/graph had to be described in prose.

<comment><USER28> I work for Amazon. Charts, graphs, and other supporting data are permitted in the appendix, which can be of any length. They are forbidden in the narrative itself, however.

<comment><USER29> if charts and even _data_ is prohibited, then how do you make a business case for something ?

<comment><USER30> You use 'it is known' a lot, with a bunch of references to the appendix?

<comment><USER28> Typically you'd make a succinct verbal statement in the narrative like "customers tell us ____" or "___% of ______ do ______", and show the survey or other relevant data that supports the statement in the appendix.

</comment></comment></comment></comment></comment><comment><USER31> The emphasis on the word "narrative" is a little odd to me. In the book "The Everything Store", Brad Stone, the author, describes an awkward encounter with Bezos: one of the first questions Bezos asked Stone was "with this book, how are you going to avoid the narrative fallacy." The narrative fallacy basically means crafting stories where there should be none (e.g. interpreting data with a neat reason that seems plausible, while the reason may be completely wrong and is not proven by the data). See Nassim Taleb for more on the narrative fallacy.

</comment><comment><USER32> The part about actually sitting down and writing out a proposal and finding the challenges with it hits home with me. Over the past year or so I've become (I think!) a little more cautious about things that I claim, whether it's online or in person, especially in a technical context or when carrying out an argument. And I've often found that actually questioning my own claims and then having to go and research them and figuring out whether I can actually make a claim, gives me a better overall understanding of the arguments.

</comment><comment><USER33> I think corporations are going to have to learn a lot from Open Source practises - Agile is probably the first in road that "code" is making into the corporate world despite its mutated appearance

One of them is discussion over email (ie persuasive long form writing, combined with data driven evidence)

The other is of course ... voting

</comment><comment><USER34> I think writing gives you an incredible edge in life. If you really believe, you can write the story of your life.

</comment><comment><USER35> I'm curious to how much time is allocated for writing these six pagers? Both total leadtime and actual writing time. Anyone with experience have any insight?

<comment><USER36> Bezos discusses how long they take to write in the 2018 Amazon Shareholder Letter [1]:

"... they mistakenly believe a high-standards, six-page memo can be written in one or two days or even a few hours, when really it might take a week or more!"

[1] [https://www.sec.gov/Archives/edgar/data/1018724/000119312518...](https://www.sec.gov/Archives/edgar/data/1018724/000119312518121161/d456916dex991.htm)

</comment></comment><comment><USER37> Narrative and brutal exploitation, a winning combo!

</comment><comment><USER38> love the (intentional?) irony that the first 20 something paragraphs say absolutely nothing besides "bezos like longform narrative, and he wrote it in a very short email once".

</comment><comment><USER39> I suggest what might be happening has less to do with writing rather than the structured approach required to do such writing.

Obviously all of this works for Amazon so that's great, I wouldn't see any reason to change it, but it's probably worth thinking about a little.

I do not believe PowerPoint is inherently a bad format, nor do I believe that written is better, moreover, I think a lot can be lost in prose.

The reason I believe this is due to some military experience with SMEAC NATO orders format [1]. This format can be used by Corporals on up to Generals, by all NATO forces such that a Polish recruit could sit in on a US General's Orders and effectively understand what is going on.

Aspects of SMEAC exist to enable tired and sleep deprived commanders and soldiers to create coherent and complete plans, and to ingest them as well.

Little things like: " You must always repeat the mission twice so that any squadies not paying attention have a chance to catch what it is they are meant to be doing."

At all levels, the Mission Objective (which is a specific format) is repeated twice. Always. The impetus is twofold: if well trained staff understand the mission objectives, then the rest is 'details' meaning, even if everything falls apart, training and skills can take over so the mission could be achieved. The 'say it twice' is essentially a double affirmation of the objective.

Once everyone is on this same wavelength, it's interesting to see how people can become operationally synchronized.

My feeling is that a SMEAC-like format for meetings would likely be ideal; something that requires a specific approach, with checklists that force product/technical etc. to contemplate various issues.

If this were to be done well, then it could be abbreviated into another format.

Another reason I'm just a little skeptical, is that every big movement has a series of behaviours and attitudes that help embolden the koolaid. Amazon started as a _book selling_ company, so in a way, it kinds of makes sense for them to value the 'literary' in some way, and this odd behaviour (which actually does work) helps them differentiate their 'movement' in a material way and reinforce ostensible 'culture'.

It's probably worth some further analysis, and maybe some data points as well, because there are many things that make growing companies unique, I wonder if we should just assume those unique things are drivers or just arbitrarily correlated aspects.

[1] [https://en.wikipedia.org/wiki/Five_paragraph_order](https://en.wikipedia.org/wiki/Five_paragraph_order)

</comment><comment><USER40> Yep, they are using it right now to draw attention away from Jeff's naked drama.

<comment><USER41> What part is Jeff trying to draw attention away from? If anything he's been incredibly open and forthright about the entire "drama", which seems to be the exact opposite of what the blackmailing parties want.

</comment></comment><comment><USER42> While dense writing makes it harder for the presenter to gloss over details, it makes it that much harder for the audience to grasp the idea. PowerPoint is designed for the audience.

Maybe a presentation for a live audience, and a dense paper for offline consumption is the optimal setting. The audience can remain engaged, and if an idea seems worthy, a deeper dive into the dense paper format occurs

<comment><USER2> To the contrary, clear writing make it much easier for the audience to assemble complex ideas.

Poor writing definitely makes it harder, and it turns out that the vast majority of people are poor writers, mainly because they don't practice. You might not have experienced high-quality business writing because it's so rare.

Powerpoint does have its uses; I've written and delivered lots of talks using powerpoint. But informing an audience about to make a high-stakes decision is not among them.

<comment><USER43> About a year ago, I decided to start writing about my home hobby projects on a blog. It's a nice plus when others read it (but I have no idea because there are no trackers) but the two biggest advantages are:

1\. I'm now much more inclined to finish a project.

2\. Writing about it forces me to truly understand the subject. There have been many times where things became clear only because I had to explain it to myself in words.

And you're right: the more I do it, the easier it becomes.

It's very satisfying.

<comment><USER23> I wrote about this a few years ago.

[http://www.mooreds.com/wordpress/archives/2188](http://www.mooreds.com/wordpress/archives/2188)

I find blogging to be immensely helpful in crystalizing my thoughts as well as giving back.</comment></comment></comment></comment>


The Talented Mr. Khater - <AUTHOR> http://www.texasmonthly.com/story/university-of-texas-grad-versus-international-conman <comment><USER2> Excellent article. This one part stuck out to me:

> Youssef was dangerous, Callie stressed, and though Molly believed her—and > the doctor determined that her head injury had not affected her recall—Ed > and Sabi were skeptical. When Molly relayed the story to them in the ER > waiting room, the two exchanged glances. It wasn't possible. Callie had to > be confused.

> ...

> Half an hour later, unable to fall asleep, Sabi heard the stairs creak, then > a knock on her door. It was Youssef. He looked devastated. "My mother is > dead," he told her. "I've got to fly to Denmark."

> Sabi stared, jangly with exhaustion and now fright. "Okay," she said. A > couple of hours later, Ed helped Youssef load his bags into a cab.

I don't quite know what to say about people like Sabi and Ed. I am reminded of [https://en.wikipedia.org/wiki/Little_Eichmanns](https://en.wikipedia.org/wiki/Little_Eichmanns), but maybe this, admittedly overused quote, sums up my feelings better:

> In the End, we will remember not the words of our enemies, but the silence > of our friends. -MLK

What poor human beings those two are.

Finally, Spoiler Alert!

> Then, just before the guards ushered him out, Youssef had twisted around, > looked at her with his luminous brown eyes, and winked.

The mark of a monster. The article describes psychopathy in clinical terms but, especially in this case, I don't believe we should sophisticate evil. Yes, the concept of evil differs from time to time, culture to culture, but it seems too easy to make excuses for the depraved rather than to commit to decisive action to stop them.</comment>