South Africa can get 100% of its energy from renewable sources - <AUTHOR> https://www.iafrikan.com/2018/05/22/south-africa-100-of-our-energy-from-renewable-sources/ <comment><USER2> As a South African, this is certainly something I'd root for. However, I think these days bureaucracy and societal factors also need to be accounted for in the feasibility equation.

In that regard, renewable energy for SA is still quite a ways away. The government is too busy trying to garner votes and focusing on land appropriation. The state power utility is overstaffed, corrupt, "underfunded" (read: lost way too much money to incompetence and corruption) and the infrastructure is arguably hanging on a thread. Then the recent political scandals with the (hopefully permanently) former president Zuma and his Gupta business overlords come in to play which the country still has to recover from.

To top it all off, the majority of the country is simply not educated enough yet to care. The middle class and community leaders can alleviate this however.

Overall, it's still a ways off. Especially considering how the more modern Western countries aren't yet very far into renewables themselves.</comment>


Hail the hackers  - <AUTHOR> http://www.theage.com.au/news/technology/hail-the-hackers/2008/03/15/1205472146734.html <comment><USER2> For an Aus publication they forgot/left out, _"The Bank"_ ~ <http://www.imdb.com/title/tt0241223/> where a programmer "mathematically predict stock market movements" ~ <http://www.michaeldvd.com.au/Reviews/Reviews.asp?ID=1172>

</comment><comment><USER3> 'Saved' (or whatever the term) for the ability to view the article all on one page. That and a decent list of tech-related movies.</comment>


Ask HN: Why would you accept a horizontal move in your career? - <AUTHOR> What is the main reason why you would accept an offer and move horizontally from XYZ to ABC, without being promoted to the next level.
1- Salary?
2- Tired of your current job/employer?
3- Location?
4- Simply looking for a new place to work?
5- Other, specify.
Horizontal move = Sr. Software Engineer at XYZ => Sr. Software Engineer at ABC
Vertical move = Lead Software Engineer at XYZ => Engineering Manager at ABC <comment><USER2> Not all vertical moves are upward - I was actually happy to move downward. My latest career move was to go from management (at some point I had a couple of development managers reporting to me) to just being a developer again. The stress of being a manager was burning me out, and I realized that what I really wanted to do was write code, not manage people.

</comment><comment><USER3> I did this once in my career - in order to move away from microsoft technologies and into open source technologies (LAMP specifically).

Since my at-the-time "professional" PHP/MySQL skills were non-existent (all I had to show anything was a few bits-n-pieces of personal stuff) - I also took a minor pay-cut doing it, which was easily made up and then some soon after starting the position.

YMMV

</comment><comment><USER4> Because you have no interest in "management" per se (and the pay raise and alleged gain in prestige aren't worth the headache).

And the only "upward" promotion you need is one that provides more time to spend with your family or on your outside projects, or more vacation time, etc.

</comment><comment><USER5> I would accept a horizontal move because I ended up taking a job that is different than what was portrayed by the recruiter. I thought it was a .NET developer position but it is really an SSIS and SSIS ETL work.

</comment><comment><USER6> ABC > XYZ

Being a Sr Software Engineer at Google is better than being a Sr Software Engineer at Ice Station Zebra Associates

</comment><comment><USER7> Fear of heights.

</comment><comment><USER8> Better culture</comment>


Can This $20 Tablet Really Change The World? - <AUTHOR> http://readwrite.com/2012/12/03/ubislate-7ci-can-this-20-tablet-really-change-the-world <comment><USER2> Interesting, but It's not at $20... yet. The tablet market is going to change change dramatically as soon as the new ARM Eagle processors will be available (with more than 4GB address space).</comment>


Demangling C++ Symbols in Rust - <AUTHOR> http://fitzgeraldnick.com/2017/02/22/cpp-demangle.html <comment><USER2> _Tom Tromey, a GNU hacker and buddy of mine, mentioned that historically, the canonical C++ demangler in libiberty (used by c++filt and gdb) has had tons of classic C bugs: use-after-free, out-of-bounds array accesses, etc, and that it falls over immediately when faced with a fuzzer. In fact, there were so many of these issues that gdb went so far as to install a signal handler to catch SIGSEGVs during demangling. It "recovered" from the segfaults by longjmping out of the signal handler and printing a warning message before moving along and pretending that nothing happened. My ears perked up. Those are the exact kinds of things Rust protects us from at compile time! A robust alternative might actually be a boon not just for the Rust community, but everybody who wants to demangle C++ symbols._

Then, later:

 _Additionally, I've been running American Fuzzy Lop (with afl.rs) on cpp_demangle overnight. It found a panic involving unhandled integer overflow, which I fixed. Since then, AFL hasn't triggered any panics, and its never been able to find a crash (thanks Rust!) so I think cpp_demangle is fairly solid and robust._

That's what I like to see. Targeted useful reimplementations in Rust that play well to its strengths. In this case, as a double benefit to both the Rust ecosystem and to anyone that wants a robust demangling library.

</comment><comment><USER3> LLVMs libcxxabi has a demangler which doesn't have the worst looking code in the world[0], has no external dependencies (outside of the C++ standard library), has lately been fuzzed[1] and is tested[2].

Switching languages is cool, but the Rust code is actually longer and still uses a hand written parser, so how can you be sure it is any more _correct_ or won't eat all your memory?

[0] [http://llvm.org/viewvc/llvm- project/libcxxabi/trunk/src/cxa_...](http://llvm.org/viewvc/llvm- project/libcxxabi/trunk/src/cxa_demangle.cpp?revision=293638&view=markup)

[1] [http://llvm.org/viewvc/llvm- project/libcxxabi/trunk/fuzz/cxa...](http://llvm.org/viewvc/llvm- project/libcxxabi/trunk/fuzz/cxa_demangle_fuzzer.cpp?revision=290650&view=markup)

[2] [http://llvm.org/viewvc/llvm- project/libcxxabi/trunk/test/tes...](http://llvm.org/viewvc/llvm- project/libcxxabi/trunk/test/test_demangle.pass.cpp?revision=293638&view=markup)

<comment><USER4> It's true that one can't be sure the Rust version is "any more correct and won't eat all your memory".

However, an even more important question is how many exploitable bugs remain in the LLVM library vs the Rust library. The data suggests that the answer for Rust is zero but the answer for LLVM is greater than zero.

<comment><USER5> > The data suggests that the answer for Rust is zero but the answer for LLVM > is greater than zero.

Well, it's been fuzzed, so there's a pretty decent chance that the LLVM code has zero exploitable flaws. Also, the C++ demangler isn't as security- sensitive as many other more important projects.

That said, as a general rule raw C-style string parsing, which that C++ code is an example of, is asking for trouble. It's painful to write, painful to maintain, painful to debug, and, when it fails, fails in the worst possible way. In my opinion there's little benefit to using C++ for these workloads.

<comment><USER6> >That said, as a general rule raw C-style string parsing, which that C++ code is an example of, is asking for trouble. It's painful to write, painful to maintain, painful to debug, and, when it fails, fails in the worst possible way. In my opinion there's little benefit to using C++ for these workloads.

AFAIK Valgrind can catch many memory access related errors. And static analyzers can point out where such errors could happen.

From a different perspective: Why don't people do pascal stile strings with C or C++ (and such) ? I think even i could make a library that does all the string.h things but with length-prefixed strings. People have been complaining for years now about C stile strings (that have been widely used for decades now). But nobody ever did anything about it ?

PS I, myself, don't find it "painful" to use C stile strings. A few basic precautions (like using str _n_ cmp(bla,blaa,buffer_size)) and your fine. Off- by-one is more of a problem, at least for me at night (valgrind and llvm static analyzer point even those out).

<comment><USER7> > AFAIK Valgrind can catch many memory access related errors. And static > analyzers can point out where such errors could happen.

True, but Valgrind doesn't exist in every OS that one might need to work with, specially embedded ones, and according to Herb's talk at CppCon 2015, only 1% of the audience was using any form of static analyisis tooling.

The world of C and C++ programming, in typical 9-5 enterprise jobs is quite different from HN ideals about code quality.

> I think even i could make a library that does all the string.h things but > with length-prefixed strings. People have been complaining for years now > about C stile strings (that have been widely used for decades now). But > nobody ever did anything about it ?

Because it takes a big effort to make such library part of ANSI C.

> PS I, myself, don't find it "painful" to use C stile strings. A few basic > precautions (like using strncmp(bla,blaa,buffer_size)) and your fine.

You already did a possible security exploit on your example, as you need to guarantee 100% of the time that bla and blaa sizes are always less or equal than buffer_size.

When working with a team it suffices that another person changes your code without accounting for this invariant.

<comment><USER6> >You already did a possible security exploit on your example, as you need to guarantee 100% of the time that bla and blaa sizes are always less or equal than buffer_size.

bla and blaa buffer sizes, yes. I mostly string file names/paths, that have NAME_MAX and PATH_MAX. So my excuse here is that all my buffers have the same size (not the best excuse, i know). PS I always sanitize on input if the input can be anything (network/ipc sockets, for example).

>True, but Valgrind doesn't exist in every OS that one might need to work with, specially embedded ones, and according to Herb's talk at CppCon 2015, only 1% of the audience was using any form of static analyisis tooling.

Quick google shows _some_ tools for windows. I don't know how good they are. Clangs static analyzer seems to work on windows, for static analysis. But if it compiles on linux/bsd/osx then people _should_ check before shipping the code.

This just reminded me of the latest Linus rant[0].

Then there is fuzzing and formal verification, that are too much for "normal" programs (these are not C specific).

>The world of C and C++ programming, in typical 9-5 enterprise jobs is quite different from HN ideals about code quality.

As is in the world of hobby C and C++ programming. And python, and ruby, and haskell, and... It just shows more in C. But C is still the king when it comes to portable and efficient programs, and that won't change soon (although there is less need for such programs, as "embedded" today equals "has only 512MB RAM").

[0] [http://lkml.iu.edu/hypermail/linux/kernel/1702.2/05171.html](http://lkml.iu.edu/hypermail/linux/kernel/1702.2/05171.html)

</comment></comment></comment></comment></comment></comment><comment><USER8> Coincidentally, I recently discovered that code I landed in the mozilla repo a couple of weeks ago crashes gdb when it tries to demangle (and c++filt on the command line). Looks to be infinite recursion. It's still in the current Nightly binary.

_ZN2js18CompartmentChecker5checkIN2JS8GCVectorI4jsidLm0ENS_15TempAllocPolicyEEEEEN7mozilla8EnableIfIXsrNS7_6IsSameIDTclptcvPT_LDn0E5beginEEDTclptcvSB_LDn0E3endEEEE5valueEvE4TypeERKSA_

coming from

        template <typename Container>
        typename mozilla::EnableIf<
            mozilla::IsSame<
                decltype(((Container*)nullptr)->begin()),
                decltype(((Container*)nullptr)->end())
            >::value
        >::Type
        check(const Container& container) { ... }

<comment><USER9> Out of curiosity, what version of c++filt are you using?

I tried with 2.27.51 (Debian), and it works:

        mozilla::EnableIf<mozilla::IsSame<decltype ((((JS::GCVector<jsid, 0ul, js::TempAllocPolicy>*)((decltype(nullptr))0))->begin)()), decltype ((((JS::GCVector<jsid, 0ul, js::TempAllocPolicy>*)((decltype(nullptr))0))->end)())>::value, void>::Type js::CompartmentChecker::check<JS::GCVector<jsid, 0ul, js::TempAllocPolicy> >(JS::GCVector<jsid, 0ul, js::TempAllocPolicy> const&)

<comment><USER8> 2.26.1-1.fc25 from Fedora 25

</comment></comment></comment><comment><USER7> > Linkers only support C identifiers for symbol names.

This is only true of UNIX system linkers, before the FOSS and UNIX clones wave, it was common for each compiler to have its own language specific linker.

<comment><USER10> Kind of a blessing and a curse- reduces links to a common subset of functionality, but also makes it trivial to link together code from any languages that support the platform's C ABI.

</comment></comment><comment><USER11> Can it help to implement C++ bindings for Rust?

<comment><USER12> My understanding is that yes, this is part of that puzzle. The author of this post works on [https://crates.io/crates/bindgen](https://crates.io/crates/bindgen)

</comment></comment><comment><USER13> How bad are the rules for MSVC compared to the Itanium ones and would you consider adding support for it too?

Not that I have a use case in mind or anything, just curious.

<comment><USER14> Pretty bad, actually. There is no official documentation of the name mangling, so everything that is known is reverse engineered. In particular, there are outright bugs in the name mangling scheme, and one of the rules appears to rely on hashing the function body to produce a result. I'd give you examples, but, I don't have any of them on hand (I'm mostly relying on recollection from conversations with David Majnemer).

<comment><USER15> _one of the rules appears to rely on hashing the function body to produce a result_

Gross! I wonder what that's for. Somebody's hack to allow same-name/same- interface header inline functions to coexist?

</comment></comment></comment><comment><USER16> > These days, almost every C++ compiler uses the Itanium C++ ABI's name > mangling rules. The notable exception is MSVC, which uses a completely > different format.

You stay classy, Microsoft.

> Its not just the grammar that's huge, the symbols themselves are too. Here > is a pretty big mangled C++ symbol from SpiderMonkey [...] That's 355 bytes!

Here's a >4kB symbol I encountered while liberating some ebooks from an abandoned DRM app:

        tetraphilia::transient_ptrs<tetraphilia::imaging_model::PixelProducer<T3AppTraits> >::ptr_type tetraphilia::imaging_model::MakeIdealPixelProducer<tetraphilia::imaging_model::XWalkerCluster<tetraphilia::imaging_model::GraphicXWalker<tetraphilia::imaging_model::IgnoredRasterXWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits> >, tetraphilia::imaging_model::SpecializedRasterXWalker<unsigned char, 0ul, 0, 1ul, 1ul>, tetraphilia::imaging_model::SpecializedRasterXWalker<unsigned char, 2ul, -1, 3ul, 3ul> >, tetraphilia::imaging_model::GraphicXWalkerList3<tetraphilia::imaging_model::const_UnifiedGraphicXWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits>, 0ul, 0, 1ul, 0ul, 0, 0ul, 0ul, 0, 0ul, 1ul>, tetraphilia::imaging_model::GraphicXWalker<tetraphilia::imaging_model::const_IgnoredRasterXWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits> >, tetraphilia::imaging_model::const_SpecializedRasterXWalker<unsigned char, 0ul, 0, 1ul, 1ul>, tetraphilia::imaging_model::const_SpecializedRasterXWalker<unsigned char, 2ul, -1, 3ul, 3ul> >, tetraphilia::imaging_model::GraphicXWalker<tetraphilia::imaging_model::OneXWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits> >, tetraphilia::imaging_model::OneXWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits> >, tetraphilia::imaging_model::const_SpecializedRasterXWalker<unsigned char, 2ul, -1, 3ul, 0ul> > > >, tetraphilia::TypeList<tetraphilia::imaging_model::XWalkerCluster<tetraphilia::imaging_model::GraphicXWalker<tetraphilia::imaging_model::IgnoredRasterXWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits> >, tetraphilia::imaging_model::SpecializedRasterXWalker<unsigned char, 0ul, 0, 1ul, 1ul>, tetraphilia::imaging_model::SpecializedRasterXWalker<unsigned char, 2ul, -1, 3ul, 3ul> >, tetraphilia::imaging_model::GraphicXWalkerList3<tetraphilia::imaging_model::const_UnifiedGraphicXWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits>, 0ul, 0, 1ul, 0ul, 0, 0ul, 0ul, 0, 0ul, 0ul>, tetraphilia::imaging_model::GraphicXWalker<tetraphilia::imaging_model::const_IgnoredRasterXWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits> >, tetraphilia::imaging_model::const_SpecializedRasterXWalker<unsigned char, 0ul, 0, 1ul, 1ul>, tetraphilia::imaging_model::const_SpecializedRasterXWalker<unsigned char, 2ul, -1, 3ul, 3ul> >, tetraphilia::imaging_model::GraphicXWalker<tetraphilia::imaging_model::OneXWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits> >, tetraphilia::imaging_model::OneXWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits> >, tetraphilia::imaging_model::const_SpecializedRasterXWalker<unsigned char, 2ul, -1, 3ul, 0ul> > > >, tetraphilia::TypeList<tetraphilia::imaging_model::XWalkerCluster<tetraphilia::imaging_model::GraphicXWalker<tetraphilia::imaging_model::IgnoredRasterXWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits> >, tetraphilia::imaging_model::SpecializedRasterXWalker<unsigned char, 0ul, 0, 1ul, 1ul>, tetraphilia::imaging_model::SpecializedRasterXWalker<unsigned char, 2ul, -1, 3ul, 3ul> >, tetraphilia::imaging_model::GraphicXWalkerList3<tetraphilia::imaging_model::const_UnifiedGraphicXWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits>, 0ul, 0, 1ul, 0ul, 0, 0ul, 0ul, 0, 0ul, 1ul>, tetraphilia::imaging_model::GraphicXWalker<tetraphilia::imaging_model::const_IgnoredRasterXWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits> >, tetraphilia::imaging_model::const_SpecializedRasterXWalker<unsigned char, 0ul, 0, 1ul, 1ul>, tetraphilia::imaging_model::const_SpecializedRasterXWalker<unsigned char, 2ul, -1, 3ul, 3ul> >, tetraphilia::imaging_model::GraphicXWalker<tetraphilia::imaging_model::const_IgnoredRasterXWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits> >, tetraphilia::imaging_model::const_SpecializedRasterXWalker<unsigned char, 0ul, 0, 1ul, 1ul>, tetraphilia::imaging_model::const_SpecializedRasterXWalker<unsigned char, 2ul, -1, 3ul, 3ul> > > >, tetraphilia::Terminal> >, T3AppTraits, tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits>, tetraphilia::imaging_model::SeparableOperation<tetraphilia::imaging_model::ClipOperation<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits> > > >(tetraphilia::ArgType<tetraphilia::TypeList<tetraphilia::imaging_model::XWalkerCluster<tetraphilia::imaging_model::GraphicXWalker<tetraphilia::imaging_model::IgnoredRasterXWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits> >, tetraphilia::imaging_model::SpecializedRasterXWalker<unsigned char, 0ul, 0, 1ul, 1ul>, tetraphilia::imaging_model::SpecializedRasterXWalker<unsigned char, 2ul, -1, 3ul, 3ul> >, tetraphilia::imaging_model::GraphicXWalkerList3<tetraphilia::imaging_model::const_UnifiedGraphicXWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits>, 0ul, 0, 1ul, 0ul, 0, 0ul, 0ul, 0, 0ul, 1ul>, tetraphilia::imaging_model::GraphicXWalker<tetraphilia::imaging_model::const_IgnoredRasterXWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits> >, tetraphilia::imaging_model::const_SpecializedRasterXWalker<unsigned char, 0ul, 0, 1ul, 1ul>, tetraphilia::imaging_model::const_SpecializedRasterXWalker<unsigned char, 2ul, -1, 3ul, 3ul> >, tetraphilia::imaging_model::GraphicXWalker<tetraphilia::imaging_model::OneXWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits> >, tetraphilia::imaging_model::OneXWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits> >, tetraphilia::imaging_model::const_SpecializedRasterXWalker<unsigned char, 2ul, -1, 3ul, 0ul> > > >, tetraphilia::TypeList<tetraphilia::imaging_model::XWalkerCluster<tetraphilia::imaging_model::GraphicXWalker<tetraphilia::imaging_model::IgnoredRasterXWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits> >, tetraphilia::imaging_model::SpecializedRasterXWalker<unsigned char, 0ul, 0, 1ul, 1ul>, tetraphilia::imaging_model::SpecializedRasterXWalker<unsigned char, 2ul, -1, 3ul, 3ul> >, tetraphilia::imaging_model::GraphicXWalkerList3<tetraphilia::imaging_model::const_UnifiedGraphicXWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits>, 0ul, 0, 1ul, 0ul, 0, 0ul, 0ul, 0, 0ul, 0ul>, tetraphilia::imaging_model::GraphicXWalker<tetraphilia::imaging_model::const_IgnoredRasterXWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits> >, tetraphilia::imaging_model::const_SpecializedRasterXWalker<unsigned char, 0ul, 0, 1ul, 1ul>, tetraphilia::imaging_model::const_SpecializedRasterXWalker<unsigned char, 2ul, -1, 3ul, 3ul> >, tetraphilia::imaging_model::GraphicXWalker<tetraphilia::imaging_model::OneXWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits> >, tetraphilia::imaging_model::OneXWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits> >, tetraphilia::imaging_model::const_SpecializedRasterXWalker<unsigned char, 2ul, -1, 3ul, 0ul> > > >, tetraphilia::TypeList<tetraphilia::imaging_model::XWalkerCluster<tetraphilia::imaging_model::GraphicXWalker<tetraphilia::imaging_model::IgnoredRasterXWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits> >, tetraphilia::imaging_model::SpecializedRasterXWalker<unsigned char, 0ul, 0, 1ul, 1ul>, tetraphilia::imaging_model::SpecializedRasterXWalker<unsigned char, 2ul, -1, 3ul, 3ul> >, tetraphilia::imaging_model::GraphicXWalkerList3<tetraphilia::imaging_model::const_UnifiedGraphicXWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits>, 0ul, 0, 1ul, 0ul, 0, 0ul, 0ul, 0, 0ul, 1ul>, tetraphilia::imaging_model::GraphicXWalker<tetraphilia::imaging_model::const_IgnoredRasterXWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits> >, tetraphilia::imaging_model::const_SpecializedRasterXWalker<unsigned char, 0ul, 0, 1ul, 1ul>, tetraphilia::imaging_model::const_SpecializedRasterXWalker<unsigned char, 2ul, -1, 3ul, 3ul> >, tetraphilia::imaging_model::GraphicXWalker<tetraphilia::imaging_model::const_IgnoredRasterXWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits> >, tetraphilia::imaging_model::const_SpecializedRasterXWalker<unsigned char, 0ul, 0, 1ul, 1ul>, tetraphilia::imaging_model::const_SpecializedRasterXWalker<unsigned char, 2ul, -1, 3ul, 3ul> > > >, tetraphilia::Terminal> > > >, T3AppTraits::context_type&, tetraphilia::imaging_model::Constraints<T3AppTraits> const&, tetraphilia::imaging_model::SeparableOperation<tetraphilia::imaging_model::ClipOperation<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits> > >, tetraphilia::imaging_model::const_GraphicYWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits> > const*, tetraphilia::imaging_model::const_GraphicYWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits> > const*, tetraphilia::imaging_model::const_GraphicYWalker<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits> > const*, tetraphilia::imaging_model::SegmentFactory<tetraphilia::imaging_model::ByteSignalTraits<T3AppTraits> >*)

<comment><USER17> If you want some huge symbols, introduce Boost Lambda into a project. Doing a single for_each with a Boost Lambda can introduce symbols of several 100k.

<comment><USER16> Nice! I'm not near a C++ environment atm, but I promise an upvote to anyone who digs up one of these beasts for us to gawk at!

<comment><USER14> This is one that I found from running nm on a binary:

        _ZN5boost6detail7variant15visitation_implIN4mpl_4int_ILi40EEENS1_20visitation_impl_stepINS_3mpl6v_iterINS7_6v_itemI25SelectedEntityChangedDataNS9_IN11InputAction17ServerCommandDataENS9_INSB_18SetupBlueprintDataENS9_INSB_13BuildRailDataENS9_I2IDI20CustomInputPrototypetENS9_IN10ActionData22TrainWaitConditionDataENS9_INSI_18TrainWaitConditionENS9_INSB_22BuildTerrainParametersENS9_I27DeciderCombinatorParametersNS9_I30ArithmeticCombinatorParametersNS9_INSB_18PlayerJoinGameDataENS9_INSB_7CrcDataENS9_INSB_20SetBlueprintIconDataENS9_I20AbilitySpecificationNS9_INSB_17TakeEquipmentDataENS9_INSB_18PlaceEquipmentDataENS9_I6VectorNS9_IdNS9_ISF_I9ItemGrouphENS9_INSB_15MarketOfferDataENS9_ISsNS9_INSI_33BehaviorModeOfOperationParametersENS9_INSI_17TrainScheduleDataENS9_INSB_18GuiTextChangedDataENS9_INSB_14GuiChangedDataENS9_INSB_12GuiClickDataENS9_INSB_20SelectItemParametersENS9_INSI_24LogisticFilterSignalDataENS9_INSI_22LogisticFilterItemDataENS9_ISF_I19TechnologyPrototypetENS9_INSI_10SignalDataENS9_INSI_26CircuitConditionParametersENS9_INSB_19SetFilterParametersENS9_INSB_19BuildItemParametersENS9_INSB_16CancelCraftOrderENS9_INSB_9CraftDataENS9_I13ShootingStateNS9_IhNS9_ItNS9_IjNS9_IbNS9_ISF_I13ItemPrototypetENS9_ISF_I15RecipePrototypetENS9_I28ItemStackTargetSpecificationNS9_I11RidingStateNS9_I9DirectionNS9_INSB_14SelectAreaDataENS9_I12RealPositionNS7_7vector0INS3_2naEEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELi0EEELl40EEENS8_IS32_Ll48EEEEENS1_14invoke_visitorINS1_11get_visitorIKS10_EEEEPKvNS_7variantINS1_13over_sequenceINS7_8vector48IS1N_S1M_S1L_S1K_S1J_S1I_S1G_bjthS1E_S1D_S1C_S1B_S1A_S19_S18_S17_S15_S14_S13_S12_S11_S10_SZ_SY_SsSX_SW_dSU_ST_SS_SR_SQ_SP_SO_SN_SM_SL_SK_SJ_SH_SE_SD_SC_SA_EEEEJEE18has_fallback_type_EEENT1_11result_typeEiiRS3K_T2_NS3_5bool_ILb0EEET3_PT_PT0_

The c++filt output is 13,776 characters, so I can't easily copy it here.

</comment></comment></comment></comment><comment><USER18> There's also this one [https://github.com/ianlancetaylor/demangle](https://github.com/ianlancetaylor/demangle)

</comment><comment><USER19> I really enjoy reading these pieces where someone rewrites something in rust and it turns out better than the old C version due to rusts safety features. Usually those kinds of projects are just a rewrite to someones favorite language of the month, for little tangible benefit other than their own satisfaction or education. These rust ones seem to show tangible benefits to the language itself.</comment>


Ask HN: Research based master's degree opportunity for experienced software dev? - <AUTHOR> I have been working as a software developer for 4+ years. My under grad result is pretty bad ( CGPA  < 3 ). I am interested to further my study in research-based master's degree.<p>- Is there any hope ?<p>- Any advice/ suggestions / help ?<p>- Anyone here looking for research assistant on data science / information technology / software engineering ?<p>Thank you for your kind words/ helps! <comment><USER2> The last of your questions is really good. A lot of research labs do hire developers as staff on various projects. Those roles tend to be a little lower paid than industry, but you get to work on interesting things.

Sometimes academic employers will support you in a relevant degree while you study. Depending on the country and university, this might be fee free, you might be released for a day a week or something to work on it, and you might enter the program differently to regular applicants (i.e. you get put on the program rather than needing to 'deserve' it).

If you want to do this, apply for jobs you'd want to take anyway at labs you'd want to study at, and ask this question at the same time as you'd normally negotiate compensation.

Don't forget to look at gov labs as well as universities, and also to look at other countries if you like because universities sometimes get a bit of a free pass in terms of staff immigration.

<comment><AUTHOR> Thanks!

</comment></comment><comment><USER3> My random advice from the internet:

1\. Identify academics doing research in interesting areas.

2\. Contact them about your interest and goals.

3\. See what happens.

Good luck.

<comment><AUTHOR> Yah, planning to do them as well. Thanks.</comment></comment>


All your interwebs are belong to Facebook - <AUTHOR> http://www.extremetech.com/internet/97063-all-your-interwebs-are-belong-to-facebook

<comment><USER2> The "like" button at the bottom of this article cracks me up.</comment>


Ask HN: When a CEO Faces Complete Disgrace, How Do They Stay Afloat? - <AUTHOR> My question is in the context of people like Elizabeth Holmes, who was charged by the SEC and currently being investigated by the FBI. She obviously cannot work any longer, and I suppose she was not reckless in her spending, so in the worst case scenario, she may have savings? But between lawyers fees, and falling out with many people, do CEOs like this go live with their parents, friends?<p>I know people do get back on their feet though, but it's the in-between period, the logistics that puzzles me. Is there a secret club that bails high flyers out? <comment><USER2> She can't be a director of a company for a long time, however she still built a business, raised money, built a huge profile and generated a massive amount of hype. Someone somewhere will want that experience on their team, and be willing to ignore the rest of the story (provided she can stay out of prison).

I'm sure she still has friends, and some of those friends are perhaps wealthier than others. If your friend fell on hard times and you happened to have a spare guest house or apartment in a city you rarely visit, I'm sure you'd help them out if you could.

</comment><comment><USER3> > Is there a secret club that bails high flyers out?

It depends.

In the case you mentioned (Elizabeth Holmes) she is well off and connected (via family) that at some point she will find some sort of work if she wishes.

Thats fairly true for most people in a similar social strata - once your that far "in" someone has a vested interest in making sure you dont fall too far.

</comment><comment><USER4> A lot of your assumptions are wrong. When you fail big enough there will always be plenty of opportunities to do so again. Failing small is much more dangerous.</comment>


Computer Crime, Then and Now - <AUTHOR> http://www.codinghorror.com/blog/2012/09/computer-crime-then-and-now.html

<comment><USER2> From Article: _One of his friends is a 15 year old hacker who goes by the name of Cosmo; he's the one who discovered the Amazon credit card technique described above. And what are teenage hackers up to these days?_

Adapted from the Evil Overlord list[1]: _12\. One of my advisors will be a 15-year-old hacker. Any flaws in my computer security that he is able to spot will be corrected before implementation._

These kids should be paid to find and report these security holes, not arrested. They're producing very valuable information in their boredom.

[1]<http://www.eviloverlord.com/lists/overlord.html>

</comment><comment><USER3> When you think about it, a supermarket authenticates your identity to a higher standard when you purchase beer more than many of the companies that you do non-trivial business with. Kind of pathetic.

For a random hacker to compromise your personal security, they need to find the last four digits of a credit card number that is relatively easy to derive. That's scary. Much scarier is that a not-so-random hacker with even a casual personal acquaintance can utterly destroy you.

<comment><USER4> You know what is really scary....when I lost my Wells Fargo debit card and requested a replacement only the last four numbers changed. The same exact four numbers that are shown on virtually every webpage and purchase order in the world!

Wouldn't take long to guess those last four if you were the reason I was getting the new card (i.e. you were in possession of my old card).

</comment></comment><comment><USER5> I remember having a very good time reading Mitnick's "Art of Deception" ten years ago.

A very good overview of what is social engineering, its methods, risks and consequences.

</comment><comment><USER6> How about a credit card anonymization service, such that the bank allows you to generate a virtual 'card number' useful for payments to only one merchant?

<comment><USER7> Several (many?) banks do this. I've used citibank's 'virtual account numbers' in the past when dealing with merchants I did not trust.

<comment><USER8> Seconding citi virtual cards. You can also limit the maximum amount a virtual card can be charged.

</comment></comment></comment><comment><USER9> Tl;dr use social engineering - computers are not the weak point, people are.

True.

<comment><USER10> To me the real story is how powerful the last four digits of your credit card are and how easily they're attained. Even more shocking is your privacy basically depends on the least secure online account you own.

Think of how easy it is to write a program like this:

      INPUT:  list of someone's online accounts,
              desired account access
      OUTPUT: step-by-step instructions of numbers to call and forms to fill out
              to obtain desired account access

All you would really need is a small database of the information required to reset your password and login for a bunch of popular accounts. Your script just has to connect the dots.

</comment></comment><comment><USER11> I agree w/ Mr. Atwood's assessment that people are, have always been, and will continue to be the weak point.

I strongly disagree w/ his statement that no attackers still attempt frontal assaults. Thinking that way promotes a dangerous complacency, not unlike the complacency that I see created after a company spends a large sum to install some security product. "Now that we have <firewall / security scanner / NIDS / SEIM / log aggregator / patch management> product we are 'secure'!"

In my work I continue to see Internet-facing machines with shockingly poor security posture in companies large enough to "know better". Those vulnerabilities are, of course, still "people problems" at their heart (sysadmins who end-run good security process, developers who won't allow patches to be installed, etc) and they're still out there en masse.

</comment><comment><USER12> The first book about Mitnick was _Takedown_. It came out right after he was caught.

</comment><comment><USER8> I find this reassuring for my personal projects; I'm not a security expert. I've been afraid that my VPS was going to be exploited as soon as I started opening up services to the internet, but so far this has not been the case. All I've done is install fail2ban and spent a short while reading up on best practices/config settings before installing services, and everything has worked out so far ...

<comment><USER13> How do you know you weren't exploited? You say that you aren't a security expert.</comment></comment>


Model Your Users: Algorithms Behind the Minuum Keyboard - <AUTHOR> http://minuum.com/model-your-users-algorithms-behind-the-minuum-keyboard/ <comment><USER2> My biggest gripe with smart keyboards is that it doesn't work well for multiple languages.

I speak three that uses the english alphabet, and the keyboards get annoying when it starts predicting english words when I'm typing something in a different language altogether.

Most of the time I even disable the dictionary on normal keyboards.

<comment><AUTHOR> My cofounder (spaky here) seems to be comment-limited on HN, but here are his thoughts on this:

I completely agree. I speak two languages regularly (English/French) and I also find it to be a pain point.

It's something that I hope we can address over time with Minuum. Certainly the first step will be making it really fast and painless to switch languages.

We've also considered having a quick way to disable auto- correction/disambiguation on the fly.

Do you have a favoured solution? Sounds like maybe simultaneous language support doesn't quite cut it for you.

<comment><USER2> I don't really have a favoured solution, as of now, other than not using predictive typing.

I can see that Minuum works well using Bayes to predict a certain english word given the user input.

If you guys generate/use a language model for other languages that would give us around the same accuracy/prior probability as the english model, then I think it shouldn't be a problem.

Having quick settings and options that you can setup and choose which languages to include in the prior probability.

Being able to quickly turn off/turn a language, add/remove languages to the priori, etc.

<comment><AUTHOR> We do have English, German French, Spanish, and Italian now actually, but the experience of switching between them could be improved.

<comment><USER3> This might not work at all but I wonder how it would work if you supplied it with a "mixed" language model. That is, a language model based around a person using multiple languages interchangably on the fly, simultaneously, instead of doing this modal switching stuff that causes so many headaches.

</comment></comment></comment></comment></comment><comment><USER4> "Incidentally, this is also why the Dvorak keyboard layout is exactly the opposite of what you want in a highly ambiguous scenario; Dvorak places all the vowels adjacent to each other, significantly increasing ambiguity. Intuitively it rearranges word-space to put many common words right next to each other."

I suspected as much when it came to Swype; it's nice to see someone who has actually done the work verify this intuition. I use Dvorak on my physical keyboards, but I find it sort of... ironic, for lack of a better word... that the suboptimality of QWERTY is itself the key to how these alternate sloppy- keyboards work. It's sort of nice that my QWERTY skills don't entirely go to waste...

<comment><AUTHOR> I think a big part of the appeal of Dvorak in the dev community is that there's something very satisfying about a keyboard based on real research. That research was done for 10 finger full-size keyboards though, and doesn't really map to the current generation of keyboards. As I allude to in that footnote, we've actually done some really cool research into optimal keyboard layouts in ambiguous scenarios. We'll probably do a follow up post diving into that! (also stay tuned, there should be a paper coming out soon).

<comment><USER4> Yes, that's probably true. QWERTY is unlikely to be optimally suboptimal either.

...

OK, OK, that was snark, I admit it, _but it felt good_. Mmmm... oh yeah, that's the stuff.

More seriously, it is unlikely that QWERTY is optimal for this use case since it _certainly_ was never designed for this.

<comment><USER5>
        it is unlikely that QWERTY is optimal for this use case
        since it certainly was never designed for this

QWERTY was designed to minimize jams on manual typewriters. You get a jam when you press two nearby keys in quick succession. This is actually extremely similar to the layout constraint swype operates under.

<comment><USER4> I was talking about Minuum, not Swype there. For Minuum, "maximizing alternation" is not _a priori_ obviously the same as "maximizing the information theory _distinction_ " between two subsequent keypresses. In fact, the fact that you are trying to maximize separation tends to imply that you are thereby tending to make the next keystroke more predictable than it should be, which is to say that the likely next keystrokes have clumps where too many of the most likely "next letters" are all on one side, which is suboptimal from the information theory perspective. QWERTY is not likely to be optimal for this use case; it may even turn out that the optimal keyboard resembles it as little as QWERTY resembles Dvorak.

</comment></comment></comment></comment></comment><comment><USER6> The "visualize some words" graph is awesome; took me a minute to realize it was interactive. I'd be interested in another post about how Minuum incorporates personal typing habits over time.

<comment><AUTHOR> Good idea, there are a number of other interesting topics we could do follow ups on. Maybe we can get everyone as excited about keyboards as we are!

</comment></comment><comment><USER7> The video of this working on the smartwatch is crazy. I've always wondered how smart watches would deal with text input, looks like there's finally a solution. Is it possible to run this on the Pebble or Samsung watches right now?

<comment><AUTHOR> Author here: That video is an in-house demo of an early prototype on a Samsung Galaxy Gear, so yes it works on those! Minuum isn't yet shipping on any smart watches, but we're hoping to have something out as soon as possible.

<comment><USER8> Other Minuum co-founder here.

We will be setting up an alpha with some Galaxy Gear users in the next week. Some technical know how will be required, but if you're interested send us an e-mail at firstname.lastname@example.com.

</comment></comment></comment><comment><USER9> Why does a keyboard need permissions that include:

1) Network communication (full network access)

2) Your social information (read your contacts)

?

The first makes it sound like it's a keylogger, and stops me in my tracks.

The second... just why on Earth would a keyboard need to have a list of contacts? Are you going to spam my friends?

If #2 was asked for without #1, I could charitably hope that the contacts are just used for word suggestions based on names and addresses. But due to #2 being asked for in addition to #1 I really just think this is a spam machine at best, and a leaking of private contacts at worse.

Is anyone from Minuum on here who can explain why those permissions would be required.

<comment><USER10> I asked the very same question about #1 on the Play store, and the developers did respond quite quickly: the network access is required to download new language packs. This makes perfect sense to me, as much as I'd like to see something like keyboards split off into two apps: the keyboard, with no/minimal permissions; and the 'helper' app, for settings, dictionary building/importing, downloading language packs, etc.

As far as reading my social information, I have no idea why it requests that. However, upon checking XPrivacy, I can see that it has never even attempted to access accounts, contacts, SMS/MMS, etc. Which would lead me to speculate that this is either a mechanism for recommendations, or used to build up dictionaries. (Edit: I never have the keyboard build up dictionaries, so I never told Minuum to try to do anything along those lines.)

<comment><USER11> Under settings there is an option for you to import your android dictionary, as well as import contacts. I like that they it's opt in, and going by your comment it seems like they're being honest.

</comment></comment></comment><comment><USER12> I want to buy Minuum, but I _really_ like SwiftKey. Has anyone else made the jump from SwiftKey -> Minuum? Pros/Cons you can offer?

<comment><USER13> They're both predictive typing, so they both fall on their face when it comes to two things. Proper nouns and slang.

Whenever I try to write one of those two thing (often, think email addresses, friends names , "yo", etc) I have to fall back on regular input.

With swiftkey, this means just going back to pecking. With minuum, it means going into a menu and switching to minuum's full sized view or long pressing each region to get a zoomed in view of the keys around there to pick out the one I want.

The compactness of minuum is great, though. And when I'm entering non-proper nouns it's as fast as any keyboard (given a few days to adjust).

I paticuraly like the "swipe left for space" function.

It makes me want to try even more radical keyboards. Maybe something chord based.

<comment><USER4> Do they not let you add to the dictionary? Honest question, I've only used Swype, but you can definitely add things to the Swype dictionary and they work just like any other word after that.

<comment><USER14> They do, but in order to enter a custom word, you have to switch typing modes to a full-screen keyboard, which is a 2 second action. With sliding keyboards, you just start pecking because you already have a full-screen keyboard.

</comment></comment></comment></comment><comment><USER15> Awesome product.

I wonder if typing on watches will be someday as normal as typing on phones. I would rather bet on speech recognition.

Off-topic, but I'm hoping one day programming won't be a desk job. You'll get to walk around, interact with a touch screen and just have a conversation with the computer about what should your program do.

<comment><USER14> I'm waiting for the brainwave typing device still... With IM display in Google Glass, it'd be as good as IM-ing in your head.

<comment><USER16> Researchers at the Imperial College of London are developing an EEG that fits in your ear:

[http://www.technologyreview.com/news/518356/device-could- spo...](http://www.technologyreview.com/news/518356/device-could-spot- seizures-by-reading-brainwaves-through-the-ear/)

 _By nestling the EEG inside the ear, the engineers avoid a lot of signal noise usually introduced by body movement. They can also ensure that the electrodes are always placed in exactly the same spot, which, they say, will make repeated readings more reliable._

</comment></comment></comment><comment><USER17> Okay, I'm typing on Minuum right now. It's extremely accurate but I feel slow. You sort of have to shut your brain off and pretend you're playing a letter hunting arcade game.

It seems like I miss the space bar about five percent of the time.

To the developers, nice job and thanks for putting it on sale in the Play store.

<comment><AUTHOR> Shame about the spacing issue, out of curiosity, how large is your device?

We actually prefer to use the right slide gesture for a space, the added bonus being that then you can disable the space bar in the settings and save even more screen space.

After you've used it for a few days, I'd love to get your impressions. You can get in touch with me at firstname.lastname@example.com if you're interested in sending any thoughts.

<comment><USER17> Hi, thanks for getting back to me! I didn't realize that the right swipe existed, but it's amazing! It actually solves both of my problems: now I can keep my thumbs in pretty much the same spot, which is great.

I'm using an HTC First (please don't make fun of me), which has a 4.3 inch screen.

</comment></comment></comment><comment><USER18> Amazed that no one has linked this yet, as it's almost the same concept, at least in terms of the inference part.

[http://en.wikipedia.org/wiki/Dasher_(software)](http://en.wikipedia.org/wiki/Dasher_\(software\))

"Dasher is an input method and computer accessibility tool which enables users to write without using a keyboard, by entering text on a screen using a pointing device such as a mouse, a touchpad, a touch screen, a roller ball, a joystick, a Push-button, a Wii Remote, or even mice operated by the foot or head."

Hard to tell how much success it ever had in terms of adoption, although I could imagine there may be users out there who find it invaluable. Certainly worth a look though as it gives a very nice visualisation of the text prediction algorithm as it goes.

</comment><comment><USER19> I just got this and tried it out.... awesome. recommend it. My friend and I watched the amusing video and i said, what's 2 bucks. It is just as fast as normal typing but gives me more real estate to see the convo!

also: took me all of 5 seconds to get fluent at it. no joke.

<comment><AUTHOR> Hey, that's great to hear, we'd love to get feedback from you after you've had a chance to use it for a few days. My email's in my profile, drop me a message in a few days!

</comment></comment><comment><USER20> In addition to popular SwiftKey and Swype, it's great to see all these new experimental keyboards coming out. Between KALQ for speed and Minuum for saving screen real estate, there are so many great options to choose from on the Android platform.

[https://play.google.com/store/apps/details?id=com.vardhamani...](https://play.google.com/store/apps/details?id=com.vardhamaninfotech.kalqkeyboard&hl=en)

</comment><comment><USER21> It is apps like these that make me consider switching from iphone to android on my next phone purchase.

</comment><comment><USER22> When do you think we'll get to the point where the blog header will link to the actual product. I know there's a lil button up there in the corner but I intuitively just click that header.

</comment><comment><USER23> It would have been interesting to see how well this would work with that canonical phone that was going to have the side-scroll sensor in the side of the phone, completely off the screen.

</comment><comment><USER24> Instant buy. Waited for years for keyboards like this!

</comment><comment><USER25> Guys, I know this is an extremely stereotypical Hacker News response, but I really want a Dvorak layout :(

<comment><USER8> It's mentioned in the footnotes of the article and discussed below [https://news.ycombinator.com/item?id=7111183](https://news.ycombinator.com/item?id=7111183)

Basically the way Dvorak is optimized is sub-optimal for the Minuum disambiguation engine and so it reduces the accuracy. It turns out you're much better off with QWERTY or better yet something specifically optimized for Minuum.

</comment></comment><comment><USER26> Does Minuum use the Y position of taps as well as the X? If not, it is throwing a predictor away.

</comment><comment><USER27> Wow, they really did their homework, huh?</comment>


Digital Signatures, Authentication, and rubygems-openpgp [video] - <AUTHOR> http://vimeo.com/album/2255908/video/59297058

<comment><AUTHOR> This is a lightning talk given by Grant Olson about using RubyGems-OpenPGP[1] to help secure the RubyGems system. Ever since it was hacked a couple of weeks ago people have been asking how to secure RubyGems.org and this short video shows one possibility.

[1]<https://github.com/grant-olson/rubygems-openpgp></comment>


Ask HN: How did you handle a difficult co-worker situation? - <AUTHOR> How have you handled in the past a situation where you were a member of a team where you didn't get along with another member of the team in a way that affected you negatively in any capacity?<p>If possible, include a brief high level description of the situation and how it was resolved. <comment><USER2> He was the first iOS developer, I was number two. He had "worked" for 9 months on a rewrite of their existing product, and all he had to show for his work was a few scroll views (that performed terribly with trivial amounts of data)

The rest of the team hated him, management thought he was toxic and tried to avoid him at all costs. But they never fired him. I have no idea why.

I tried to work with him, I really tried. I kept interactions positive, I asked him to review my code before it was merged. I asked for his opinion on matters. He was a remote worker and was always "too busy to chat"

In hindsight, when I interviewed, he was the only team member I didn't talk to, and who wasn't great - I should have seen that as a warning, my fault.

I generally get along with people, and before that I had never worked with anyone I disliked - as a result, I couldn't see how anybody could be truly "toxic" \-- I wasn't sure toxic people even existed.

In the end, I had to leave, because every day was a hugely negative experience.

Sometimes you just have to move on. Every day I learn :)

</comment><comment><USER3> I had a co-worker who managed to push my buttons in just the right combination such that one day I lost it and let him know exactly how much I didn't appreciate him. It was a tunnel vision moment and I am glad I didn't let it go further, but I went outside and cried like a baby for letting myself get to that point before apologizing to him. He continued to behave how he did and it got to me once more, but I did my best to limit my interactions with him and to go through my manager when possible. Since my manager was in the room during the fateful outburst, he was quite happy to intermediate. It had no negative career impact, but I was shaken by it and I think in any other situation, I would have been reprimanded formally or something.

I can't say there is a lesson in there except, don't let yourself get to the point where you are unable to maintain your professionalism.

</comment><comment><USER4> Sadly "avoid, avoid, avoid, deflect, and when you to absolutely _have to_ deal with them, just keep it polite and transactional, just-the-facts-ma'am, all about the work and the work only. And count the days until the next job comes along and/or I have enough FU money to take a nice, long vacation" often seems to be if not the best, certainly the simples minimum viable solution.

(Combined with, "And BTW, try not to drink too much.")

Yeah sure, there's also "talk to management about it" (which is in fact the first line of defense). And often enough, it actually does work.

The thing is, often enough the issue isn't the co-worker per se, but denial, myopia and/or a sense of paralysis in the management layers who you'd think would be both (1) able to recognize the problem and (2) eager to help out. So sadly, in not infrequently happens that neither (1) or (2) is in the cards. Typically because they think said employee is a rockstar/10xer, always at his desk, always seems to able to answer loudly and confidently about any subject whether he actually knows what he's talking about or not. You know, valued, irreplaceable character traits like that that many organizations cherish and reward with handsome bonuses and promotions.

And so it goes, on and on and on in this work culture of ours.

</comment><comment><USER5> The first step is to talk to your coworker and tell them your concerns in a way that is not criticizing them or makes them even more difficult to work with. You can also try and socialize outside of work: grab a few beers and get their point of view.

If they continue to be hard to work with, escalate to management and outline your concerns.

What you really want to say to management is that your ability to perform at 100% is affected by this coworker / arrangement / situation, and you are being obstructed from providing the most value you otherwise could to the company.

Any sensible manager would immediately address the issue, as he/she will recognize that your output is affected and the company is getting less value from you due to this arrangement.

</comment><comment><USER6> Another developer, who I had out-developed, intentionally sabotaged my code in the wee hours to make me lose face. Fortunately, we had source control, and he was a fool, so it backfired.

Even so, the long-term prospect of not being able to turn my back on my coworkers was not one I welcomed, so I got into independent consulting. Could probably make more working for the man, but I think the freedom of it is priceless.

<comment><USER7> Lol he tried to add bugs to your code in Git?

<comment><USER6> This was old days of visual source safe, but yeah.</comment></comment></comment>


Buzzing the brain with electricity can boost working memory - <AUTHOR> https://www.sciencedaily.com/releases/2017/03/170314081547.htm <comment><AUTHOR> link to the paper is available here: [https://publishing- cdn.elifesciences.org/22001/elife-22001-v...](https://publishing- cdn.elifesciences.org/22001/elife-22001-v1.pdf)</comment>


Proactive Security and (re)discovering OpenBSD - <AUTHOR> https://medium.com/@loganaden/proactive-security-re-discovering-openbsd-8f9be4d9d9f9 <comment><USER2> The post looks unfinished. What are these principles author is talking about and how can they be applied to web development?</comment>


Magic Mushroom Drug Evolved to Mess with Insect Brains - <AUTHOR> https://blogs.scientificamerican.com/artful-amoeba/magic-mushroom-drug-evolved-to-mess-with-insect-brains/ <comment><USER2> This answer is a bit underwhelming to my mystic sensibilities.</comment>


Error handling in a correctness-critical Rust project - <AUTHOR> http://sled.rs/errors.html <comment><USER2> Argh! The scrolling!</comment>


West Africa First Mirror Project Is Making Open-Source Software Easier to Access - tefo-mohapi http://www.iafrikan.com/2016/09/01/west-africas-first-mirror-project-is-making-open-source-software-easier-to-access-in-nigeria/?utm_content=buffer35cc0&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer <comment><AUTHOR> > ...has announced the launch of the Nigerian Mirror Project, which is > bringing free and open-source content closer to end-users in West Africa > through servers physically hosted in the country.

From what I've been told, most places in Nigeria get about 4 hours of electricity per day. A data center in a place like that must be really, really, expensive to maintain.</comment>


Full-Body Scan Technology Deployed In Street-Roving Vans - <AUTHOR> http://blogs.forbes.com/andygreenberg/2010/08/24/full-body-scan-technology-deployed-in-street-roving-vans/

<comment><USER2> That explains why I have received so much spam about dieting lately.</comment>


Angel investors increasingly making convertible loans rather than taking equity - <AUTHOR> http://www.ft.com/cms/s/2/01630196-b545-11df-9af8-00144feabdc0.html?ftcamp=rss

<comment><USER2> When 'pg' tweeted other day about all deals being convertible notes, I researched a bit about them. Following is my notes on em.

Convertible notes make a lot of sense for both Angels and Founders as both are taking risks. If a startup ever makes it big, founders have benefit as angels are being discounted. If a startup doesn't make it, at least angels get the power and they can act according to the prior agreed conditions. For angels, tax advantages are also worth considering. Again, all the benefits depend on the fine details.

Venturehacks has nice article. <http://venturehacks.com/articles/debt-or- equity> Summary is that, it is better to raise convertible debt for small amounts and it is better to go for the equity if bigger amounts are needed.

There is an awesome write up by Yokum here [http://www.startupcompanylawyer.com/category/convertible- not...](http://www.startupcompanylawyer.com/category/convertible-note-bridge- financing/)

There are many types <http://en.wikipedia.org/wiki/Convertible_bond#Types>

I think it is safe to assume that a seasoned angel/vc won't screw founders - it only gets them bad reputation. That said, it is everyone's responsibility to know/read what they are getting into before signing.

</comment><comment><USER3> _"Investors who put up the early "seed" capital for technology start-ups in the US have come up with a novel idea for how to value businesses that in most cases have not started trading: put the issue off until later"_

I thought the move towards convertible notes was primarily being driven by the startups/founders rather than the investors.

<comment><USER4> The standard rationale for doing a note is that they're simpler and therefore cheaper to do, which in theory helps both founders and investors (unless anyone thinks its a good idea to blow startup capital on lawyers).

This article was pretty much the most clueless thing I've ever seen written about convertible note financing. Better to just forget you ever saw it.

</comment></comment><comment><USER5> Maybe someone can help me out here, with something I don't understand.

What happens to the convertible note if you never go on to raise another round, but you still have a successful business that generates a lot of cash for yourself?

<comment><USER6> Depends on the terms - it could convert to equity, get paid back, or have it's maturity date extended...

More here: [http://www.startupcompanylawyer.com/2007/04/29/what- happens-...](http://www.startupcompanylawyer.com/2007/04/29/what-happens-to- the-convertible-promissory-note-if-the-maturity-date-is-reached-and-there- hasnt-been-a-financing/)

</comment></comment><comment><USER7> Are convertible notes new? Seemed common 10 years ago even.</comment>


Show HN: The actual registry price of 246 TLD's - <AUTHOR> https://github.com/judge2020/Actual-Domain-Prices <comment><USER2> what's the reason for tld price variation ?</comment>


Ask HN: Introductory Finance for Hackers - <AUTHOR> Are there any good resources that go over the basics of finance/what goes on inside big financial institutions? I'm curious and couldn't find a good intro. <comment><USER2> Some book recommendations here:

[http://www.stat.unc.edu/faculty/cji/890-11/Goldman-Sachs- Sug...](http://www.stat.unc.edu/faculty/cji/890-11/Goldman-Sachs-Suggested- Reading-List.pdf)

</comment><comment><USER3> If you don't track your personal spending, start now. Your life is a little business. If you save 25x your annual spending and invest it properly, you can declare financial independence, withdraw 4% a year, and live off your investments FOREVER.

I used to run Profit & Loss (P&L) statements for projects at a corporation and first learned the basics that way, but the paragraph above is what really opened my eyes. Once you have skin in the game the numbers become far more meaningful.

<comment><USER4> >If you don't track your personal spending, start now. Your life is a little business. If you save 25x your annual spending and invest it properly, you can declare financial independence, withdraw 4% a year, and live off your investments FOREVER.

Factually this is not guaranteed. Highly likely, yes, but its not a "truth" so to speak. This is financial advice calibrated to historal returns. Besides that, not everyone wants to life as frugal as a homeless person for 20 years. A lot of people will regret it.

<comment><USER3> Agree with you on the frugality bit. Take a look at fatFIRE, a community of people who save aggressively to retire early but still enjoy a relatively lavish lifestyle after retirement.

[https://www.reddit.com/r/fatFIRE/](https://www.reddit.com/r/fatFIRE/)

My savings target is about $6MM. I won't need to live like a 'homeless person' as you say when I get there.

</comment></comment></comment><comment><USER5> I'm neither a writer nor a finance pro, but I've been investing for myself for about 30 years. I wrote these posts for my kids so they could learn from my mistakes as well as what I learned along the way.

[https://hackernoon.com/https-medium-com-davisjames-hacker- fi...](https://hackernoon.com/https-medium-com-davisjames-hacker-finances- introduction-14b8283e8677)

</comment><comment><USER6> See

[https://www.amazon.com/Trading-Exchanges-Market- Microstructu...](https://www.amazon.com/Trading-Exchanges-Market- Microstructure-Practitioners/dp/0195144708/)

for the securities side of the industry and

[https://www.amazon.com/dp/0470095008/](https://www.amazon.com/dp/0470095008/)

for banks that take deposits and make loans.

</comment><comment><USER7> Double entry bookkeeping seems like a good place to start to develop a conceptual understanding of accounting, and it's a useful skill too.</comment>


End-of-world prediction interrupts TV broadcasts in Orange County - <AUTHOR> http://www.ocregister.com/2017/09/21/end-of-world-prediction-interrupts-tv-broadcasts-in-orange-county/ <comment><USER2> Sadly it wasn't Max Headroom. How hackable is the EBS?</comment>


Ask HN: How do you manage your bookmarks and notes? - <AUTHOR> After reading https://news.ycombinator.com/item?id=21840140 I was looking for tools to organize my links and archive them for future but I couldn't find anything that fullfiled every requirement I had in mind. Is there anything that will allow me to -
1. Put a bookmark list page on my website on a subdomain or embed it.
2. Access control and management with multiple members or family.
3. Detach myself from it anytime I want with a local offline app to browse them later on. (I hate subscriptions)
Bonus - open source, privacy oriented.
Things I did check out - pinboard, umark, pocket, evernote, notion etc.
Maybe my requirements are common or obscure so I also made a survey (plug) - https://forms.gle/WcgWKR95M5fgxsW97 <comment><USER2> Google Chrome Bookmark Manager.

I've also tried:

\- Pinboard (favorite)

\- Pocket

\- Raindrop

Have a lot of bookmarks already and value to your time? You are better off going into Bookmark Manager on Firefox or Chrome/Chromium and organizing there.

I learned that the hard way - none of the bookmark places are good at bulk organizing tagging unfortunately! So if you're getting into a dedicated bookmark service, assume upfront time organizing what you have currently.

Unfortunately - why I ultimately burnt out is none of them - to my knowledge - sync back into chrome bookmarks so I get them in the bar. And they don't integrate / sync with my bookmarks in Chrome automatically. These services end up getting bolted on and treated as second class to the browser's bookmark manager. So they're not bookmarks anymore.

</comment><comment><USER3> Static Marks [1], a tool I have written, fulfills at least 1 and 3 (and the OSS bonus). 2 could be achieved with HTTP Auth. But currently the tool is rather meant for techies, i.e., all bookmarks are maintained in YAML files and you have to setup the pipeline yourself. For example, I handle my private bookmarks in git and update the web app on every push on my server. The access is handled with HTTP Auth. It works similar for my team's bookmarks.

[1] [https://darekkay.com/static-marks/](https://darekkay.com/static-marks/)

</comment><comment><USER4> I've written browser extension ([https://github.com/karlicoss/grasp](https://github.com/karlicoss/grasp)), that allows me to create bookmarks straight into org-mode. Then I can manage them in emacs alongside other org-mode notes.

<comment><AUTHOR> That's pretty neat!

</comment></comment><comment><USER5> raindrop.io is kinda great. gettoby.com as well.

<comment><AUTHOR> Looked into raindrop but stopped at their pro plan cost. Is that monthly?

Edit: The time bar on mobile site wasn't visible. It's paid yearly

<comment><USER5> I roll with the free plan. Not that much added in the pro plan tbth. Comparison @ [https://raindrop.io/pro/buy](https://raindrop.io/pro/buy)

</comment></comment></comment><comment><USER6> Poorly!

<comment><AUTHOR> is that an actual app? Can you link me?</comment></comment>


As Scotland's 'Trainspotting' Generation Ages, the Dead Pile Up - <AUTHOR> https://www.nytimes.com/2019/08/07/world/europe/scotland-heroin-deaths.html <comment><USER3> Not mentioned in the article:

The Scottish heroin epidemic started in Edinburgh, the more prosperous of Scotland's two largest cities. This was largely due to the presence of MacFarlan Smith, which was at one point the world's largest producer of pharmaceutical opiates. That initial cohort of heroin users in the 1980s predominantly used drugs that were diverted from the legitimate pharmaceutical supply rather than smuggled from abroad, which led to an unusually rapid increase in the user population and the illicit market.

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

The majority of overdose deaths in Scotland involved multiple drugs; for reasons that are not entirely clear, Scottish addicts are particularly prone to concurrently use opiates, benzodiazepines and alcohol in an indiscriminate manner. This vastly increases the risk of overdose due to the cumulative and unpredictable respiratory depression induced by multiple drugs.

[http://www.sdf.org.uk/934-deaths-from-a-drug-overdose-in- sco...](http://www.sdf.org.uk/934-deaths-from-a-drug-overdose-in-scotland- in-2017/)

<comment><USER4> That is rare information. Never heard of MacFarlan Smith before.

To add to the cocktail of drugs there is also glue sniffing. South of the border you will never see anyone sniffing glue and I doubt there are many people in England who wake up in the morning with a burning desire to sit in the street sniffing glue. But this goes on in Glasgow. I found this shocking to see.

There is also 'Bucky' that alcohol that is not sold south of the border.

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

15% alcohol in what is effectively an energy drink. Happy times.

<comment><USER5> > South of the border you will never see anyone sniffing glue and I doubt > there are many people in England who wake up in the morning with a burning > desire to sit in the street sniffing glue

This is quite an unsubstantiated claim. Never? Of course you will, and do.

> There is also 'Bucky' that alcohol that is not sold south of the border.

This is patently false. It's made in Devon at Buckfast Abbey, so of course it's sold south of the border. And you see it south of the border all over the place. I know several places off the top of my head in Leeds and London where you can buy it. You can buy it on Amazon as well.

[https://www.buckfast.com/stockists](https://www.buckfast.com/stockists)

<comment><USER4> You are nit-picking here.

I have spent a lot of time in the scummier parts of London and yet to step over some kid sniffing glue. In Glasgow it is an all too common sight. You can check the health statistics and I am sure there are a few parts of North England and Northern Ireland that are similarly blighted but glue is not a problem south of the Watford Gap in the way that it is in Glasgow.

Sure Bucky is now stocked by Booker and therefore available in corner shops in England, however this is a recent development. Five years ago it was near impossible to buy the stuff in England. As for today, good luck buying bucky in a normal supermarket - Tesco, Waitrose, Asda, Sainsbury's, Aldi, Lidl etc. or even in a pub. It isn't marketed in England in the same way it is marketed in Scotland.

<comment><USER6> > I have spent a lot of time in the scummier parts of London and yet to step > over some kid sniffing glue. In Glasgow it is an all too common sight.

I studied in and now live and work in Glasgow. I've been here for a total of 7 years. I walk to and from work across the city. I'm out late in either the City Center, the west end, Finnieston or the Merchant City at least once a week. I'm maybe out twice a month for past 1am nights and I'm up early for the gym a few mornings a week too. I have not once seen anyone sniffing glue or doing any kind of drugs openly on the city streets.

<comment><USER7> Cities are weird beasts. I live in Midtown Atlanta and walk to and from work, I am also out and about sometimes in the evenings. It's one city at these times. But if I'm out late at night, every now and again I'm froggy for a late night walk, I see packs of people just hanging out. I have no idea where they came from, where they live, Midtown is an expensive place, or why they feel like Midtown is a great place to bring your private outdoors party, but I don't encounter it unless I'm off my routine.

It's possible that open drug use might be happening right under your nose and you're never around to see it.

</comment></comment></comment></comment></comment></comment><comment><USER8> Scotland is a tiny country but it never ceases to horrify me at the depth of the social and health divisions between different parts of the country, Scotland is often described as the "sick man of Europe" and Glasgow in particular has a remarkably bad life expectancy - the "Glasgow Effect":

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

I can strongly recommend Darren McGarvey's _Poverty Safari_ a personal account of a deprived childhood on the outskirts of Glasgow.

Edit: Something I find grimly fascinating is the Scottish Index of Multiple Deprivation (SIMD) and its interactive map visualisation:

[https://simd.scot](https://simd.scot)

<comment><USER9> Thanks for sharing that map it's fascinating. Quite eery that knife-shaped area of orange/red in the west of Edinburgh from Sighthill into Haymarket - <USER2> is so pronounced and so contained between the train lines. I used to take the bus out from the city to Heriot-Watt University and both 25 and 34 routes zig- zag through that area and it's a bit grim. Playing 5-aside in the pitches at Sighthill was also a fun adventure.

<comment><USER8> I worked at Riccarton for a few years and cycled from Leith - had a few late night "adventures" including someone throwing a brick at my head, which fortunately missed.

</comment></comment></comment><comment><USER10> This is a particularly active political issue too – drug policy is at present a reserved matter of the UK government, which means the devolved government of Scotland is missing some important tools they could use to help deal with the issue.

This something that the pro-independence Scottish government are making quite a bit of noise about now; some of it is probably opportunism, but Scotland's drug culture is different enough that it certainly seems to require different tools. In particular, there is pressure among some people for the introduction of safe drug consumption facilities, with the idea being that this keeps people off the street, with access to medical care, in the system, and with support to help them recover. These are currently prohibited in the UK.

We'll see what happens over the next few years, of course. The current UK government is unlikely to be giving any concessions.

<comment><USER11> The UK used to prescribe heroin for addicts, which I understand inspired the Swiss treatment of addicts. Rolling that back as part of the war on addiction seems to have been counterproductive in terms of overall health.

<comment><USER12> The Swiss experiment was a massive disaster. Wish we had never done it, and it certainly took a few decades to clean up its effect on parts of Zürich. It attracted junkies from all over Europe and with it brought crime and violence. I spent a few years going to primary school near the epicenter of it in the late 90s. The number of times I saw people shooting up in broad daylight right in front of my school… is shocking. Even more shocking were the parks littered in used needles. Parks kids would play in… can you imagine what can happen? They'd be cleaned up on the regular, and staff would literally have bags full of used needles!

It was pretty traumatic to see, not that I really understood it as a kid.

It was way worse than the streets of San Francisco today, which are an absolute disaster too!

Good riddance, getting rid of that "treatment" was the best thing we ever did.

<comment><USER13> [https://www.tagesanzeiger.ch/extern/storytelling/needletraum...](https://www.tagesanzeiger.ch/extern/storytelling/needletrauma/)

<comment><USER12> Great story, thanks for sharing.

</comment></comment></comment></comment></comment><comment><USER14> My late brother used to talk about an area outside Glasgow called Springburn and how it is consistently listed as one of the poorest/deprived places in Europe (not sure if that was the correct term but it gets the point across).

Yet each election term they voted in either the same politicians or politicians with the same manifestos.

Nothing will change!

<comment><USER10> Well, it's more complex than that.

In a country that has for many years only had a broadly two-party system, there was little effect to be had by voting for someone else. And given Glasgow's historical politics, that was always going to be the lefty party.

Things have changed, though. The devolved Scottish Parliament has now been in operation for 20 years; in Westminster, Glasgow North-East (which is the parliamentary constituency covering Springburn) was in 2015 one of the constituencies that saw its vote swing _massively_ behind the pro-Scottish- independence party that was traditionally unpopular in UK-wide elections, though they narrowly lost that seat in the unexpected 2017 election.

And this is the reason it is important – drugs policy is reserved to the UK government, and there's a fair bit of chat about it now.

<comment><USER14> My issue with drug policy revolves around two key points: 1\. The war on drugs is an utter failure (by that I mean, it hasn't halted drug use but there are likely those in power who benefit from this) 2\. None of their policies tackles root causes, e.g. putting ex-drug users back into their old habitats will likely guarantee they'll just do it again.

I'm from Glasgow (Kirkintilloch), live in Ayrshire now, and I saw it first hand: I had two friends die of OD's years ago.

I only visit Glasgow city centre on occasion and each time I do it appears to get worse but I live near Irvine now and you can tell a mile away who's had their methodone so it's no better down here.

<comment><USER15> While I don't think it's a cure all, Portugal seems to have had significant improvements in drug related health problems (at least in the short term), crime and anti-social behavior after radical decriminalization in 2001. But sounding tough on drugs is too tempting for politicians, and most of the press screams at any sign of decriminalization.

[https://www.theguardian.com/news/2017/dec/05/portugals- radic...](https://www.theguardian.com/news/2017/dec/05/portugals-radical- drugs-policy-is-working-why-hasnt-the-world-copied-it)

</comment></comment></comment></comment><comment><USER16> For the record, I love Scotland and visit at least once per year. The North East coast is beautiful.

For people outside the UK, I'd recommend tracking down a BBC documentary called The Scheme. It's quite old now (~2010) but still pretty relevant.

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

<comment><USER17> It's all available on YouTube, although the quality isn't great, it's still watchable. It might be a struggle for people not used to Scottish accent though.

Episode 1: [https://www.youtube.com/watch?v=9X6KfCYJx_g](https://www.youtube.com/watch?v=9X6KfCYJx_g)

Episode 2: [https://www.youtube.com/watch?v=ZgwELFu6Erw](https://www.youtube.com/watch?v=ZgwELFu6Erw)

Episode 3: [https://www.youtube.com/watch?v=k9YV4aJ49SI](https://www.youtube.com/watch?v=k9YV4aJ49SI)

Episode 4: [https://www.youtube.com/watch?v=-bK0bleFCuI](https://www.youtube.com/watch?v=-bK0bleFCuI)

Episode 5: [https://www.youtube.com/watch?v=E90kfvhSS7E](https://www.youtube.com/watch?v=E90kfvhSS7E)

</comment></comment><comment><USER18> Does anyone know what is going on with Estonia in that first graph?

The first spike in deaths for Estonia seems to happen after the 2008 financial crisis, but I'm surprised to see that the dfinancial crisis hit Estonia harder than the US?

What other facts give Estonia a surprisingly high mortality rate from opiates?

<comment><USER19> Googling some gdp graph tells you that Estonia's GDP dipped -14% in 2009 while some other countries featured in the article's drug graphs had it a lot easier (around -5% for Scotlan, Denmark, USA). Seems like the # of unemployed quintupled as well. Combined with the country's rather light social safety net and relatively low GDP to begin with it must have been pretty nasty.

<comment><USER20> A lot of young Estonians went west to make money to send home, and that money counts towards GDP in France/England et cetera, not Estonia, even though it then was sent home.

Meanwhile, they were not home to add to the public health statistics, while those who couldn't do that stayed behind, including those who fell into opiate addiction.

So the stats make the Estonian situation look more miserable than it was. (Which is plenty miserable, mind.)

<comment><USER21> > A lot of young Estonians went west to make money to send home, and that > money counts towards GDP in France/England et cetera, not Estonia, even > though it then was sent home.

If that money was sent home to Estonia, then it is getting measured in the impact it has on GDP. It shows up in, for one example, household consumption data.

Jane takes remittance money, goes into a shop in Tallinn, makes a purchase. Now that's part of GDP. Jane pays her rent with remittance money, now that's part of GDP.

That's exactly how it should work. Further, those remittances are a small minority share of all generated production by that person - leftover savings (which can then be shifted) after expenses necessary for existing in France/England.

Mexico as one famous example often leads the world in remittance figures, money coming from the US ($20-$30 billion per year). The impact of that remittance money shows up directly in the measured GDP figures of Mexico. It's still only 2% of the Mexico economy each year however.

If you look at Estonia's remittance numbers, you see a modest increase after the great recession. That increase difference would be a trivial share of their economic results, 0.3% or so. Total annual remittances today are higher now than they were in 2010-2013. Back then it was typically 200m-300m euro annually, or roughly 1% of GDP (nowhere near meaningfully denting the 14% decline figure referenced by the parent).

</comment></comment></comment></comment><comment><USER22> I remember the discussion here: [https://news.ycombinator.com/item?id=18766301](https://news.ycombinator.com/item?id=18766301) Is this what growing up in those tenements leads to?

</comment><comment><USER23> I do feel that the book had the effect of popularizing the insinuation that trainspotting is a futile, otiose pursuit, where as for many people it is a pleasearuble, fulfilling hobby with some of the same evocations that birdwatching does.

<comment><USER24> Do you mean heroin is a fufilling hobby? 'Trainspotting' is a euphemism for taking heroin. The novel and the film don't have anything to do with literally spotting trains.

<comment><USER23> I meant the real trainspotting.

</comment></comment></comment><comment><USER25> Maybe there's just no solution to the drug problem. We've tried everything already at great cost. Sometimes it's better to admit a war is not winnable and to pull out before wasting more resources.

<comment><USER26> There is a solution, but it involves the rich paying more tax to rebalance society and boost social mobility. We've not tried everything, we've just tried most of the things that don't involve rocking the boat.</comment></comment>


Reddit: I'm Four Years Old. AMAA - <AUTHOR> http://www.reddit.com/r/IAmA/comments/fxhsu/im_4_years_old_amaa/

<comment><USER2> It's interesting how answers seem wiser when put in a different context, e.g, "Q. What do you think of the current economic climate? A. Dragons!" I think oracles operated on a similar premise.

<comment> mkr-hn Maybe the Oracle of Delphi. The king would take that to mean he needed to go to war with China.

</comment></comment><comment><USER3> Absolutely adorable.</comment>


My Dad's Friendship with Charles Barkley - <AUTHOR> https://www.wbur.org/onlyagame/2018/12/14/lin-wang-charles-barkley <comment><USER2> I watch Inside the NBA almost religiously - it's such a perfect show sometimes.

It's not your typical ESPN or Fox Sports commentary show where an anchor talks about a player's "tenacious tenacity". It's a show that presents itself as a place where four friends talk about a shared interest.

To accomplish this, they need to be comfortable talking to each other without being confined to the sports equivalent of political correctness - to have unconstrained degrees of freedom in criticism, humor and general skylarking. This happens oftentimes to the point of controversy, with Charles usually being involved at the center of any such controversy.

This story is beautiful, but to anyone that is a fan of Charles Barkley, it is unsurprising. He's always been a beacon of genuineness through his time as a player, as a commentator and this article simply extends that same light to his personal life.

<comment><USER3> Actual chemistry between the folks on screen that produces results that seem like ... actual chemistry seems really undervalued / rare these days.

I love reading / watching sports.... sports shows that aren't the sports them- self are almost always so bad and wonky.

Inside the NBA is a noteworthy example of what it should be.

<comment><USER4> It's a jewel. One of my favorite moments and a sample of that chemistry for the interested..

[https://youtu.be/uVcAazaigiQ](https://youtu.be/uVcAazaigiQ)

<comment><USER5> SNL bits jewels too

[https://www.youtube.com/results?search_query=snl+charles+bar...](https://www.youtube.com/results?search_query=snl+charles+barkley)

</comment></comment></comment></comment><comment><USER6> I had a very similar one-time experience with Charles Barkley. I was a regular at the bar at the Ritz-Carlton on Central Park South in NYC, and was introduced to Barkley by the bartender, who often connected solo diners/imbibers with each other for conversation.

We had a nice conversation about NYC, vegas, gambling, friendship, etc. along with a number of tequila shots. He was extremely down to earth while not pretending like he was anything other than a world famous former basketball player.

</comment><comment><USER7> We should also never forget the classic gaming inspired by Charles Barkley - Barkley, Shut Up and Jam![1], or the spin-off RPG, Barkley, Shut Up and Jam: Gaiden[2]

[1] [https://en.wikipedia.org/wiki/Barkley_Shut_Up_and_Jam](https://en.wikipedia.org/wiki/Barkley_Shut_Up_and_Jam)! [2] [https://en.wikipedia.org/wiki/Barkley,_Shut_Up_and_Jam:_Gaid...](https://en.wikipedia.org/wiki/Barkley,_Shut_Up_and_Jam:_Gaiden)

<comment><USER8> The plot of Barkley, Shut Up and Jam: Gaiden sounds awesome:

"The game starts off in 2041, twelve years prior to the main part of the game, in "post-cyberpocalyptic Neo New York". Charles Barkley performed a powerful dunk called a Chaos Dunk at a basketball game, inadvertently killing most of the people in attendance. As a result, basketball was outlawed and many basketball players were hunted down and killed. In 2053, another Chaos Dunk is performed in Manhattan, killing millions. Barkley is blamed for the Chaos Dunk and is hunted by the B-Ball Removal Department, led by Michael Jordan."

(It just gets weirder from there)

</comment></comment><comment><USER9> This is a lovely and charming story...but. The whole premise is that the relationship between the suburban dad and the celebrity was somehow weird and unbelievable. I see that, but it's a shame we can't turn the world on its head somehow so that it would be just everyday normality. Celebrity culture has elevated some people to a kind of otherness. But they're just people.

<comment><USER10> The whole premise of the story is exactly what you say you wish it was.

<comment><USER9> I'll try one more time and then I'll let it go. I enjoyed the story, and only wish it was less remarkable.

<comment><USER10> That works way better.

</comment></comment></comment></comment><comment><USER11> >"Listen: As an adult — and you're too young to understand this now — all you want is your kids to be happy. That's what you work for. To give your kids everything in life."

This sentiment is common to all parents across race, culture, and religion. It is one of the things that makes us human. So uplifting to hear how these two very different people connected over that.

</comment><comment> a-wu Listen to the narrated version of the article. It's much more powerful hearing the author and Barkley talk about Lin, especially when Barkley talks about how he and Lin would talk about their kids.

<comment><USER12> Complete opposite experience for me. I found Lin's daughter's voice quite grating and reverted to reading the text. The part that did me in was when she gleefully enunciated "exclamation point exclamation point."

<comment><USER13> I don't follow what you're trying to say about her "gleeful enunciation".

<comment><USER14> Possibly regarding the intonation/inflection and pitch?

</comment></comment></comment></comment><comment><USER15> This was such a lovely story it made me tear up. Barkley does come across as a really nice guy on television and his friendship with Shaq is legendary, so it's great to hear confirmation that that is really the case. And Charles words at the funeral were brief but genuine and warm. Great afternoon read.

<comment><USER16> This happened to me too, but at work haha.

One thing that I always appreciated about Barkley growing up was his ability to be sincere and relatable; he speaks from the heart.

</comment></comment><comment><USER17> I was hoping to hear more about his cat litter work. What did he do? Did he ever talk about it with Barkley? etc

<comment><USER18> > I was hoping to hear more about his cat litter work

Of course it could be a different Lin Wang working in this area, but it looks like he has a few patents for new absorbent materials and related things [0, 1].

[0] [https://patents.google.com/patent/US5849405A/en?inventor=Lin...](https://patents.google.com/patent/US5849405A/en?inventor=Lin+Wang)

[1] [https://patents.google.com/patent/US7757638B2/en](https://patents.google.com/patent/US7757638B2/en)

<comment><USER19> Cat Litter (and other absorbency products like diapers) are one of the most competitive areas of consumer material science.

I read a great article about how there is continual pressure the shrink the shelf space they take from super markets, and that has led to some pretty interesting breakthroughs in science.

I can't find the article now of course.

<comment><USER17> If you ever refind that article, please send it to me.

</comment></comment></comment></comment><comment><USER20> Great article.

Charles Barkley is one of the few celebrities I respect. He believes in diversity of thought.

</comment><comment><USER21> I met him a few times, his daughter went to my high school in Scottsdale. Always such a nice guy, even though freshman were always collectively losing their minds.</comment>


My version of youtube instant - <AUTHOR> http://primepie.com/

<comment><USER2> As far as I can discern, it almost exactly duplicates YouTube's search except it loads results on the same page and is a little faster (but not _instant_ ).

</comment><comment><USER3> Yeah I think this is how it should work too - aka a list of results not just one semi-random video. Nothing against the other solution but this is actually useful versus a novelty.

Nice job.

<comment><USER4> Yeah, but there's something pretty compelling about having the video start playing as soon as you start typing. I agree with a comment in the previous thread that all the other implementation needs is a 'next video' button or key combo.

</comment></comment><comment><USER5> It would be awesome if clicking the videos would open an embed on the right side of the browser, and optionally, auto-start the first video.

Great job :)

<comment><AUTHOR> Added the embed part. Thanks for your feedback! :)

</comment></comment><comment><USER6> Cool but I see

function(a,b){return new c.fn.init(a,b)}

as a description of a lot of videos.

<comment><AUTHOR> fixed. thanks for pointing it out.

</comment></comment><comment><USER7> That's more what I expected when I clicked on the 'original'. I think a 3x4 layout would be more user friendly, I might add.

</comment><comment><USER8> TO coder how many searches are for music videos or artist names; majority?

</comment><comment><USER9> This is awesome stuff.

</comment><comment><USER10> I like it</comment>


The coolest way to generate binary strings (2013) [pdf] - <AUTHOR> https://www.researchgate.net/profile/Aaron_Williams10/publication/257376294_The_Coolest_Way_to_Generate_Binary_Strings/links/572a12cf08ae057b0a0787f9/The-Coolest-Way-to-Generate-Binary-Strings.pdf <comment><USER2> The link appears to go to the ResearchGate landing page, not to a PDF, despite the "[pdf]" in the title.

<comment><USER3> When I hit the page it auto-downloaded a PDF

</comment></comment><comment><USER4> I've heard the term "title gore" apply to titles -- this is "abstract gore". The abstract reads like a Reddit comment. Might also want a [2013] by this.

<comment><USER5> I liked the abstract though: I felt like I understood the content of the paper without having to read the abstract multiple times.</comment></comment>