An introduction to reactive programming - <AUTHOR> https://codewords.recurse.com/issues/two/an-introduction-to-reactive-programming <comment><USER2> Nothing against react or reactive, but it's yet another reaction to going down the wrong path originally -- it seems.

I really don't understand why so many people jump to event driven systems when genuinely parallel computing is so easy. Specifically Erlang/elixir make it easy. EASY I tell you!

Yeah, yeah, Erlang has a weird syntax. Ok, so lose two weeks learning it. But you don't even need to do that-- just learn Elixir which is pretty comprehensible right off the bat.

Where's the downside? There isn't one. Yet people are going out of their way, doing all these different projects and attempts whose sole purpose is to try and fake your way around a problem that was genuinely solved 20 years ago!

To be honest- and maybe I'm wrong and missing something here-- it seems like so many programmers are following what's hip and popular. V8 was a neat javascript engine, and then node cam along, so lets jump into callback hell! Why put up with that when erlang was around and well known?

It's like people choose technologies based on fashion. But that seems too... pessimistic so I don't want to believe that.

<comment><USER3> I spent a total of 11 months consulting with a company that built a large (50kloc) financial system in erlang. They had terrible performance problems that were caused entirely by erlang.

Imagine you have a large amount of data (order books, accounts, etc). You could put it all in on erlang process, but the gc does not cope well with large heaps (multi-second pauses). You could store the data outside the heap (eg ets) but then you pay the cost of copying on every access and have to tradeoff ease of use (more data per key) vs performance (less data per key). You could split the data up into many processes and then all your simple calculations become asynchronous protocols. Have fun debugging the math or rolling back changes on errors.

I went into that contract with a fondness for erlang. Now I wouldn't touch it ever again. A naive single-threaded blocking server achieved 10x less code, 40x better throughput and 100x better latency. I used clojure, but any sane platform would have worked just as well with that design.

<comment><USER4> I'm curious whether you brought this problem up to the attention of erlang maintainers, what where their reactions and whether it will be addressed in the future. GCing large objects on the heap was (perhaps still is despite improvements) a significant problem also on .NET platform. Not sure whether this is the case, but have you considered patching the GC yourself or perhaps moving the problem to BIFs and managing that memory manually (without copying to ETS) ?

<comment><USER3> The problem was not a few large objects, but large numbers of small objects eg thousands of orders per market. I considered using manual memory management but it would have required rewriting most of the code (it was almost all business logic). I sketched out a prototype in clojure to see whether a better GC would help and found that even with hastily written code and much abuse of persistent data structures, the G1 collector could keep the pauses under 100ms. I expect that carefully tuned code would reduce those much further.

</comment></comment></comment></comment><comment><USER5> I don't understand the hate for such methodologies (in the comments here) that seem to go down the wrong path. And this is coming from someone who is a strong proponent of functional programming.

The problem as I see it is pure functional programmers scoff at object oriented design being so prevalent while object oriented programmers seem so biased and giddy towards OOP when they haven't even seen the light yet. How come more people don't see that both are correct?

Both are the result of the market and people reacting (heh) to the market. This by definition means that both are correct but serve different purposes. What is fascinating to me is that the web has evolved enough to where user are expecting results immediately for their actions. This is an amazing time to live in. Why? Because this means the market is finally very invested in providing a fluid functional experience for the user. Since the front end is functional and the backend is OO, its very exciting times as we are the midst of real time innovation. React is just a tool to help connect these two very different pieces.

Functional programmers need to get off their high horse and ask themselves why frameworks are almost entirely object oriented. Object oriented programmers need to ask themselves why they didn't think of a reactive view sooner. Both are not 100% right but functional programmers come off as d*cks when they fail to see there is no continuum of FP principles and that in the real world OOP makes sense (say to connect the pieces between say a Scala backend and React front end). You'd think they would realized this sooner though when noting, for example, that "call by name" usually is more efficient than "call by value".

<comment> vezzy-fnord I don't follow how "the market" validates technical paradigms as correct in any way you describe. Even assuming efficient rational actors, it has always seemed like the industry adjusts to what has low conceptual overhead and high familiarity, good advertising and at least reasonable utility.

Nor do I understand how the real-time web indicates we're in an innovative age just because functional techniques are currently gaining popularity.

For what it's worth, I've never been hostile to OO. I enjoy Smalltalk, I like Erlang most out of the so-called functional languages, and I've had interest in the concatenative, logic and array programming paradigms as well, where it seems most academics and HN users are ruthlessly committed to FP that they sometimes fail to recognize there's other paradigms as well.

<comment><USER5> 1 - yes my definition of the market is actually as simple as part of your reasoning -> "it has always seemed like the industry adjusts to what has low conceptual overhead and high familiarity, good advertising and at least reasonable utility." I'm not sure if you meant it or not but that the perfect definition of a market and I mean it in that sense. As I've learned from pursuing my own startups...the market is not rational in any other sense. Ever.

2 = Because programming has always (in the mainstream sense) been FP platform + OOP middleware /frameworks + FP high level layer. Now, looking back, in most disciplines only 1 or 2 of these are used, but that just means in those situations the other layers are factored out. In enterprise AND startup development THIS is the formula that is ever present nowadays.

3- I've heard very good things about Erlang. I agree there are more paradigms. That is just a continuation of my first point interestingly enough.

I'm pretty new to programming but the benefit of being an unbiased observer is being able to pick up on all these things. Thank you for the response.

</comment></comment></comment><comment><USER6> So many comments here critical of nonblocking code. What, exactly, is the downside? Seems to me that any downside is purely syntactical (callback hell etc. or whatever people like to say when they can't write good nonblocking code).

So with nonblocking code you have the challenge of a syntax that may be difficult for some. With any variant of threading, you have the actual real programming challenge of dealing with state, locking etc. I would much rather have syntax issues than state issues.

Also the only people who complain about nonblocking code are those who have been writing threads for 15 years. Why is it that something that is supposedly so bad and confusing is actually so easy for new programmers to pick up?

<comment><USER7> I find myself wondering the same thing. async-await syntaxes make asynchronous functions work pretty much the same as synchronous ones syntactically. The only drawback I can really think of is that you end up Futures going up the call stack. But this, again, seems to me to just be a detail.

On the other hand, the benefits are really obvious control flow with implicit synchronization. Scala has shown that it's pretty easy to integrate asynchronous workflows with actors.

</comment></comment><comment><USER8> Can we please stop using the term reactive programming wrong? Reactive programming[1], aka dataflow programming, is writing programs that work like a spreadsheet. Microsoft Excel is a great example of an environment for reactive programming. _Functional_ reactive programming, or FRP, is simply reactive programing in a functional style.

What we have here isn't reactive programming at all, but a few patterns (or, rather, anti-patterns) devised to avoid blocking kernel threads (only some of them are related to reactive programming). They manage to avoid blocking but at great cost. If the overhead caused by blocking bothers you, you need to understand why and realize there are far better ways of avoiding it than these anti-patterns.

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

<comment><USER9> > there are far better ways of avoiding it than these anti-patterns.

Could you describe or at least point to some of them?

<comment><USER8> Lightweight threads. They make blocking free, and allow using constructs far more suitable for imperative languages. They don't destroy your stack traces, and don't require you to re-invent exception handling and control flow. Instead of promises -- simple blocking calls (or blocking futures in some cases); instead of observables -- blocking queues (aka channels).

Instead of reaching out for ways to avoid blocking, we just make blocking free.

<comment><USER10> Do you mean co-routines / user threads / green threads? I tend to agree it can have a serious performance boost in some cases. Not sure why you were down voted.

There is actually a library for java that adds it via byte code instrumentation (quasar or something) although not sure it will work for scala.

But saying that actor model is bad practice, I'm not sure that I accept it. Maybe on a single muticore but once you start talking distributed computing (e.g. Spark which is Akka based) then all this "avoid crossing to the kernel" optimization is becoming a drop in the ocean.

<comment><USER3> > all this "avoid crossing to the kernel" optimization is becoming a drop in > the ocean

Here is an example of a small single threaded program beating out a number of distributed graph frameworks running on 128 cores, with a 128 billion edge dataset.

[http://www.frankmcsherry.org/graph/scalability/cost/2015/02/...](http://www.frankmcsherry.org/graph/scalability/cost/2015/02/04/COST2.html)

Performance matters because it enables simplicity. If your language forces you to pull in multiple machines to solve your problem then its turned a simple program into a distributed system and life gets complicated fast. Just throwing more cores at a program without understanding why its slow will just get you into trouble.

Multithreaded programs and distributed programs should be a scary last resort after making absolutely sure you can't get away with the simple solution.

<comment><USER10> Yes I saw this, and got a little disillusioned at first, but after looking carefully this is not big data, their entire dataset fits in RAM. When your dataset can't fit in RAM - this is where the last resort comes into play. Sadly most companies, I agree, don't know when data is really big data. Most of the time it's just medium data. And I agree about the overhead costs.

<comment><USER3> > their entire dataset fits in RAM

128 billion edges. 1 TB of data just to list edges as pairs of integers. 154 GB after cleverly encoding edges as variable length offsets in a Hilbert curve.

Do you have a bigger dataset?

<comment><USER10> Oh, I was referring to the original posts. Will take a look. Thanks!

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> Reactive programming - you mean like reactive like reactive manifesto? That's not event driven. See recent published manifesto ([http://www.reactivemanifesto.org/](http://www.reactivemanifesto.org/)): they describe message driven paradigms, not event driven ones (now - this is a revision). But that's only a very small part of it! Recommend "Reactive Design Patterns" the free chapter from manning press: [http://www.manning.com/kuhn/RDP_meap_CH01.pdf](http://www.manning.com/kuhn/RDP_meap_CH01.pdf)

<comment><USER12> _describe message driven paradigms, not event driven ones_

Messages _are_ events.

 _Reactive programming - you mean like reactive like reactive manifesto?_

That seems to be more about idealized system properties than about a style of programming. (Plus at least one bit of silliness, w.r.t. blocking / non- blocking being inherently inequal.)

<comment><USER7> Not exactly. Messages and events are dual to each other. Messages are sender centric. The sender determines the links to the receivers. The receiver listens regardless of who's sending.

Events are receiver centric. The receiver explicitly chooses what senders to listen to. The sender fires off events without regard for who's listening.

I'm not sure how much distinction actually matters in terms of expressive power, but it does seem to impact how the paradigms are used in practice.

<comment><USER13> > The receiver explicitly chooses what senders to listen to.

Not necessarily. The receiver could just specify what kind of messages to receive instead, and be decoupled from the sender.</comment></comment></comment></comment>


Debunking that C++ is faster and safer than Rust - <AUTHOR> https://www.viva64.com/en/b/0733/ <comment><USER2> > As you can see, the documented behavior and the absence of undefined > behavior due to signed overflows do make life easier.

Not having undefined behavior does make life easier, but having it be defined and then giving the example which benefits from the way that Rust chooses to define it is not really fair.

> With less effort, Rust generates less assembly code. And you don't need to > give any clues to the compiler by using noexcept, rvalue references and > std::move. When you compare languages, you should use adequate benchmarks.

Actually, the issue is that C++ just can't match Rust's semantics here. By default it will allow for exceptions, by default it will copy; if you watch the talk rvalue references cause the double indirection and fixing this would require some changes in the language to accommodate the use case.

<comment><USER3> > the example which benefits from the way that Rust chooses to define it

I'm actually struggling to see what the practical benefit is in having it wrap around. The program is still producing garbage at that point, which you're not handling, so why not let the compiler just forget about that case just like you already did?

<comment><USER4> The practical benefit is not in the wrapping specifically. The difference is in it being UB vs not UB; that is, overflow is a "program error" not UB, and so the language defines how implementations must handle this error.

You aren't supposed to rely on this semantic, as it's an error. If the checks get cheap enough, rustc will also check in release.

<comment><USER5> I mean, the post seemed to be arguing that the wrap-around is somehow beneficial, so I'm not sure you're saying the same thing. But if all you want is check + crash when that happens then can't you just use a compiler flag or a different data type or something else for that in C++?

<comment><USER6> It is beneficial that the behavior is defined, and therefore consistent. So you don't run into cases where it works on your laptop, but not on your server. Also, in this particular case, overflowing is probably not terrible, since you are computing a hash code. The worst case is that the distribution may not be as even as you hoped.

<comment><USER3> > It is beneficial that the behavior is defined, and therefore consistent. So > you don't run into cases where it works on your laptop, but not on your > server.

I already don't run into such cases though? Do you run into cases where changing an overflow to wrap-around (e.g. maybe via unsigned?) makes it suddenly your code work on 2 machines, whereas leaving it as overflow makes it work on 1 machine but not the other?

<comment><USER6> That was the example given in the original article

<comment><USER3> Yes, but I was asking about your experience.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> > The bug has been present in LLVM since 2006. It's an important issue as you > want to be able to mark infinite loops or recursions in such a way as to > prevent LLVM from optimizing it down to nothing. Fortunately, things are > improving. LLVM 6 was released with the intrinsic llvm.sideeffect added, and > in 2019, rustc got the -Z insert-sideeffect flag, which adds llvm.sideeffect > to infinite loops and recursions. Now infinite recursion is recognized as > such (link:godbolt). Hopefully, this flag will soon be added as default to > stable rustc too.

Be aware that this isn't a LLVM bug but a direct consequence of the insanity of C++ specification (wrt. forward progress induced undefined behaviour).

The C++ rules around forward progress allow C++ compilers to faster eliminate code which doesn't produce any observable side effects (without the code triggering undefined behaviour) but it also removes code which intentionally or not hangs the process in a busy loop or is intended to cause a stack overflow... (e.g. for testing protections).

The flag currently isn't added to rust as the penalty effect on compiler time (needs to run more analysis) and runtime (doesn't eliminate all code it should) is currently pretty high.

So this might take a while until _fully_ fixed (you always can pass in the flag yourself if you want).

Through some fixes which make it harder to hit the bug until a proper solution is found _might_ not be so far of (I hope).

<comment><USER8> It's indeed not a bug for C++, but to be clear it _is_ a bug for C and Rust that use LLVM but don't have that same guarantee as C++. LLVM assumes that guarantee holds for all frontends, and added the sideeffect opcode so that frontends for languages that don't have that guarantee have a way out.

</comment></comment><comment> nv-vn Important to note that PVS-Studio is a static analysis tool for C++. As such it would definitely be in their interest to have more people use C++, but since they're arguing in favor of Rust here it definitely speaks to the fact that their analysis is unbiased.

<comment><USER4> They have also previously posted some negative ones too, so I was surprised to read this for that reason. I think it also contributed to my confusion around the title vs text, that others have expressed in this thread.

</comment></comment><comment><USER9> Here's a case I stumble on: Rust seems to generate unnecessary branches. Compare copying an optional range:

C++: [https://godbolt.org/z/VCf638](https://godbolt.org/z/VCf638)

Rust: [https://rust.godbolt.org/z/jRFiw_](https://rust.godbolt.org/z/jRFiw_)

I think the key difference here is that C++ allows specializing optional on trivial types - can anyone shed more light?

<comment><USER10> It looks like the C++ version always does the copy, regardless of whether or not the optional is empty, whereas Rust only bothers copying if there's anything there.

Is this a remnant of #[inline] on Option's Clone impl methods?

With "larger" types (e.g. an optional several-GiB array) it seems like this could save some time depending on where things are in memory.

</comment></comment><comment><USER11> This article is a bit click-baity. It's more about busting myths by a particular C++ programmer against rust.

Anyway for a truth (well maybe it is a myth?) that we can't bust yet... Rust is simply not available on all platforms that C++ is. Two platforms that I think are missing:

* 16-bit MS-DOS

* 32-bit PowerPC (Linux)

<comment><USER7> Is anyone besides embedded doing _any_ 32-bit dev outside of maintaining legacy code?

I mean 64-bit PowerPc is by now around 17 Years old and even 15 years ago some of the most widespread users of PowerPc (Xbox) switched to using 64 bit PowerPc architecture...

<comment><USER12> Xbox 360 still ran in 32bit mode with the exception of the hypervisor. No use of 64bit pointers on a system with a max of 1GB of RAM other than just wasting cache space, and there's no real other benefit tacked on like you see in other 64-bit archs.

<comment><USER7> Thanks I didn't know this. I just looked up since when PowerPc 64-bit is a think.

<comment><USER12> Ah. In that case the PowerPC 620 was a 64 bit design from the late nineties.

</comment></comment></comment></comment></comment><comment><USER13> Very interesting article. Most of the time I do not like myth busting articles because they are to much focused on opinions and taking things out of context but this one is very well written and fully based on facts on both sides. Thanks for sharing.

<comment><USER14> Thank you!

</comment></comment><comment><USER15> Just looking from afar, I don't have time to analyze every other claim, but this one:

> Both C++ and Rust have generated identical assembly listings; both have > added push rbx for the sake of stack alignment. Q.E.D.

seems to be completely wrong: a decent compiler is able to align the stack without "touching" it. For the variables inside of the function to be pushed to the aligned stack position, only different offsets have to be calculated. For the stack itself to get to be aligned, only the register has to be updated, surely nothing has to be pushed.

So something else must have been happening there, and I don't have time to analyze what, but I'm sure push is surely not necessary for alignment alone.

<comment><USER9> You are correct, it has nothing to do with alignment. rbx is a callee-saved register, so the callee saves it.

<comment><USER6> Do you mean thar rax is caller-saved?

<comment><USER9> rax is indeed caller-saved, but I was referring to rbx. In this code:

        int bar(int a, int b) {
           int z = a * b;
           foo();
           return z;
        }

[https://godbolt.org/z/a8Y35r](https://godbolt.org/z/a8Y35r)

Where to put `z`? It has to be someplace where `foo` won't clobber it, like a callee-saved register - in this case ebx.

But now `bar` is responsible for saving the value of ebx for its caller. That explains the push and pop.

Alignment is unrelated; this is just about calling conventions.

</comment></comment></comment></comment><comment><USER16> This is an endlessly perplexing headline, as its core assertion, "C++ is faster and safer than Rust", is what the body of the article spends its whole time attempting to refute. A more accurate title for the content of this article would be "Debunking the myths that Rust is not safer or as fast as C++".

<comment><USER17> Ok, we've debunked the title above.

<comment><USER18> Are comments about the title of articles offtopic? Because sometimes comments that discuss titles, without being inflammatory, are flagged, and sometimes they aren't.

<comment><USER17> I suppose they are in principle, but we don't have an explicit rule against them, and user passions around titles burn so hot that it wouldn't make a difference if we did. There are also so many of them that you're not likely to see consistency around what gets flagged vs. not. Are there specific links we could look at?

<comment><USER18> Thanks for replying. I was thinking about the "Make X Y Again" types of article that, intentionally or not, invites offtopic discussion.

The original comment from simonw ([https://news.ycombinator.com/item?id=23137531](https://news.ycombinator.com/item?id=23137531)) originally did not have many comments but was already flagged when I saw it first, which was strange to me because the comment basically says "this is a bad title (it distracts from the content), don't do that". This is quite a reasonable comment to me.

So under that comment are many exchanges that may or may not be offtopic, but I was curious in particular about why that parent comment was flagged, and what recourse users have when something is flagged but maybe shouldn't (wasn't there a "vouch" action?). My opinion is that if the submission itself brings political subject into light, even indirectly, it is unfair to flag political comments as offtopic.

<comment><USER17> A bunch of users flagged that comment. We can only guess why users flag things, but my guess is that in this case they thought it was a specimen of the very distraction it was worrying about.

<comment><USER18> I agree that it's probably what they think. My opinion is that flagging is unecessary in that case since people can already downvote and hide distracting comments.

Thanks for your answers.

</comment></comment></comment></comment></comment></comment></comment><comment><USER19> Strictly speaking it's the compiler that generates faster code.

<comment><USER20> You'll never get faster code out of JS, though. Language design matters a lot.

<comment><USER7> Well, there are some close to native code speeds for some (very constrained) use-cases.

They way it's done is that if you use a certain stile of C the compiler will speculative do assumptions about the code allowing it to basically add all the C optimizations. Except that it always has to check if the assumptions are uphold and then fallback and that because it's a JIT it has much less time to optimize the code and do cross-code-section optimizations.</comment></comment></comment>


Learning Morse code in the 21st century - <AUTHOR> https://airfactsjournal.com/2019/12/learning-morse-code-in-the-21st-century/ <comment><USER3> I learned Morse code back in 1992 in order to pass the General class amateur radio license. Back then, the test was 13 words per minute. I practiced for a few months with cassette tapes and over the air copy. After I got up to about 18 WPM, I went and took the test. I almost choked, but was able to recover and pass the test. I haven't used Morse code since then.

<comment><USER4> There's been a bit of a resurgence with the lower solar cycle, for mobile radios such as the KX3/2 and FT-817 which top out at 15W, having a mode that concentrates most of its power in ~500Hz of bandwidth(vs ~3kHz for voice) is a huge advantage.

Aside from FT-8 and related digital modes it has an impressive ability to punch though when few other modes will.

<comment><USER3> I have nothing against CW, it's just not for me. Also, I don't operate HF any longer. At this stage of my ham radio adventure, it's all about SDR on UHF and microwave frequencies. Current project is wideband (10 MHz) digital links on 10 GHz.

<comment><USER4> Oh yeah totally, just more for context who might not be aware that there's still some practical benefits along with the historical aspect.

</comment></comment></comment></comment><comment><USER5> I've learned a bit of morse code from flying. The older VOR navigation systems identify themselves with a three letter code, so to confirm you have the right frequency dialed in, you listen to the dot/dashes getting beeped at you. I cheat - I found a font that would translate the VOR name FCM when I printed it for my kneeboard.

The charts, for example, lists the morse code for the VOR, which translates to FCM

[https://skyvector.com/?ll=44.80208246787191,-93.453170428716...](https://skyvector.com/?ll=44.80208246787191,-93.45317042871639&chart=117&zoom=1&fpl=%20KFCM%20undefined%20KFCM)

</comment><comment><USER6> My uncle used to work as a radio guy. I remember visiting The National Maritime Museum with him and he just walked up to a morse machine and started writing stories.

Last weekend when we talked he mentioned being sad that a lot of this knowledge is getting lost. Must be a strange feeling walking through a museum and it being the tools of your trade.

<comment><USER7> I mean, JS coders now can have that experience after a year or two. Only they don't get their past exhibited in museums.

</comment></comment><comment><USER8> Does anything have a recommendation of how to learn Morse today? maybe an app? the app the author recommends is only for iOS and I have Android

<comment><USER9> The best is G4FON's Morse Trainer, requires Windows, works on Wine.

[http://www.g4fon.net/](http://www.g4fon.net/)

Edit: You'll have to navigate to the Morse Trainer link from the main page.

Also, it's the best because it has knobs for all the variables -- speed, number of characters sent, even options to add QRM (interference) and variable sending speed (imitating very well someone with an unsteady fist).

As an aside, it's pointless to learn code visually. It's only really useable as an auditory messaging system.

<comment><USER10> _only really useable as an auditory messaging system_

What? When I was a kid, it was common for camping flashlights to have pressure buttons on the side, which was intended for (and we used for) morse code. Ships used bright, shuttered lights for Morse code, soldiers used it, scouts used it, kids communicated with friends in the neighborhood at night.

<comment><USER9> OK, yes, but it's still the rhythm of the flashes that are being interpreted, not _ .... .. ...

Plus, I am willing to bet that far more messages using Morse are sent over radio than with lights.

</comment></comment></comment></comment><comment><USER11> Maybe three years ago I dove into cheap SDR receivers for a few months, exploring different SDR devices, different frequency bands, different decoders, etc.

One really surprising thing was how little morse code was to be found. And when I did find it, the decoders (like fldigi) were unreliable in decoding. I'm not sure if it was because of their decoding algorithms or if the senders simply had too much variance in their timing.

The bit of traffic I did decode was simply exchanges of contact so each could log a new call sign in their books. I'm not sure what I was expecting to find: because the bits seemed to be "secret" due to my ignorance of morse code, my brain heuristically assumed information they hid must be important.

<comment><USER12> A while ago I dove into ham radio a bit. I think what you saw was the 40m and 80m bands (HF band, very high range) which are used mainly for "competitions" (essentially exchanging callsigns).

I still find it intriguing because it's such a simple way of communicating. You can build the circuits yourself and with a license communicate with others over kilometers (with a good antenna sometimes thousands of kilometers). Think about it, without cell phone towers, satellites and all that commercial infrastructure it's really the only way to reach anyone.

</comment></comment><comment><USER13> You would think it would make sense for Morse to be the foundation for computer representation of text, being binary and all. But the real challenge is that Morse code does not use standard lengths for each character.

It's, imo, one of the earliest technologies that shows the divergence between what is easy for humans vs what is easy for machines.

<comment><USER14> Morse code isn't binary, it's trinary.

You have 3 signals: dots, dashes, and spaces.

Here's the relevant extract from the wikipedia article on Morse Code:

> Each Morse code symbol is formed by a sequence of dots and dashes. The dot > duration is the basic unit of time measurement in Morse code transmission. > The duration of a dash is three times the duration of a dot. Each dot or > dash within a character is followed by period of signal absence, called a > space, equal to the dot duration. The letters of a word are separated by a > space of duration equal to three dots, and the words are separated by a > space equal to seven dots

<comment><USER12> You can represent it as both binary and ternary

R is: .-. (dit dah dit)

which could be 121 in ternary (0 being pause)

or 1011101 in binary, since one dah is three dits long

<comment><USER15> In that case we may as well use the alphabet tbh

</comment></comment></comment></comment><comment><USER16> I remember writing morse code letters with my then girlfriend while in my last years in school. back then I was able to fluently read and write morse. We didn't want others to be able to easily read what we wrote. It was in the late 90ies and we were so sweetly naive.

Today, except SOS, I can't read/write anything in morse.

</comment><comment><USER17> I recently enjoyed the chapter in "code" about Morse code [1]. After some googling around I also found this morse chat rook which is a good laugh for anyone looking to kill some time struggling to spell profanities in morse :) [2]

[1] [https://www.amazon.co.uk/Code-Language-Computer-Hardware- Sof...](https://www.amazon.co.uk/Code-Language-Computer-Hardware- Software/dp/0735611319)

[2] [http://morsecode.me/?room=1](http://morsecode.me/?room=1)

<comment><USER18> [2] was strange, keyboard straight key is the worst.

</comment></comment><comment><USER19> I learned back in 2000 at Ft. Huachuca, it took about 30 8 hour days for me to get through the basic Morse course, I don't remember how long it took to get through the rest of it. I do remember getting a certificate, the Samuel B Morse award, for copying at slightly above the required speed which I think was something like 22 groups a minute.

</comment><comment><USER20> I wrote a text to morse code converter some time back if anyone is interested:

[https://text2morse.jimmyislive.dev](https://text2morse.jimmyislive.dev)

<comment><USER21> ..././. ./\--/.-/-.-./... --/-....-/-..- --/\---/.-./..././-....-/.-././\--./../\---/-./.-.-.-

<comment><USER18> ...- .. -- .... ..

</comment></comment></comment><comment><USER22> Morse code is one of the few signal encodings that can be understood by both humans and computers.

</comment><comment><USER23> I like to hunt Non Directional Beacons on the long wave band. Unfortunately I have read they are being decommissioned.

<comment><USER12> Are you sure? There are some beacons by the IARU [0] - across the world - <USER2> one after the other transmit their callsign. It can be used to test reception and it can be a challenge to receive a signal from 100s of kilometers away without a repeater.

[0] [http://www.iaru.org/beacon-project.html](http://www.iaru.org/beacon- project.html)

<comment><USER23> These can be heard out to a few 100 km:

[http://www.dxinfocentre.com/ndb.htm](http://www.dxinfocentre.com/ndb.htm)</comment></comment></comment>


Ask HN: What do you think of Portlets? - <AUTHOR>

I've been stuck on doing Java Portlet development for a month, which is my first real run through with this specific piece of tech. And I'm not growing especially fond of it.
The specification seems solid enough, but direly lacking in key areas which seem to be commonly requested in portal development, I usually find myself longing to re-implement the 15 or so Portlets in another web framework - which I'm currently convinced would be both faster and more cost efficient.
I'm wondering what your impressions are about Portlets, and if anyone have some good or bad experience they would like to share about it.
EDIT: The question is related to Java Portlets (or JSR-168/286) <comment><USER2> I used JSR-168 (JBoss Portal) back in 2006/2007 and was my worst programming experience ever.

Web development has only gotten better since 2006, so there is no reason why you shouldn't be able to do the same using any of the modern frameworks.

</comment><comment><USER3> A specific brand/blend of Portlet?

<comment><AUTHOR> Added "Java Portlet" to specify, thanks for the heads up.</comment></comment>


Algoraves: dancing to algorithms - <AUTHOR> http://boingboing.net/2013/05/11/algoraves-dancing-to-algorith.html

<comment><USER2> Quick-sort with Hungarian (Küküllőmenti legényes) folk dance: <https://www.youtube.com/watch?v=ywWBy6J5gz8>

Bubble-sort with Hungarian ("Csángó") folk dance: <https://www.youtube.com/watch?v=lyZQPjUT5B4>

<comment><USER3> Not sure if weird or amazing.

</comment></comment><comment><USER4> I feel awkward just watching it. But hey, if it's fun more power to them.

</comment><comment><USER5> I went to the algorave in Brighton. Was the recommended field trip for a Generative Creativity modules im taking as part of my degree. In my opinion the spectacle of coding IS as intrinsic to the performance as the musical output is.

I dont think it really does it justice to compare it to more traditional DJing/controllerism. Generally the kind of music from livecoding is qualitatively pretty different.

<comment><USER6> What degree/uni, may I ask?

<comment><USER5> Computing and A.I at Sussex - Just about to graduate. Really enjoyed it.

</comment></comment></comment><comment><USER7> This looks like a (rather cheesy) repackaging of the experimental electronic music scene. It's not significantly different to what people like Autechre have been doing for decades (several names on algorave.com are from that scene).

</comment><comment><USER8> Looks a bit cheesy, but neat idea. What makes this different from DJing? You still need someone to control the flow of the music, whether the person is 'live coding' or switching knobs to a synthesizer.

<comment><USER9> I guess not at all, except that algorithms are probably more powerful in a certain way that controllers/mixers/etc cannot achieve.

Of course, "algorithms" (to be honest I don't really know what is happening in the video) and using "traditional" DJ tools aren't really fair comparison -- they're totally different. With DJing the virtue is in the DJ's manual abilities, his technique (among many other things). In this case it's in the programmer's ability to automate a soundsystem.

I should note that modern DJ software is very advanced in the algorithm department though...perhaps the algorave approach is the quintessential hacker mentality of playing with the technical nitty-gritty, whereas modern mixing software remain rather closed to the DJ (an attempt to emulate DJ hardware, I guess).

Edit: whoops, looks like the "hacker mentality" is the whole point. According to <http://algorave.com/about/>

"These days just about all electronic music is made using software, but with artificial barriers between the people creating the software algorithms and the people making the music."

<comment><USER10> To be honest, it kinda reminds me of the chiptune, fingerdrumming, controllerism deparment. When you DJ, your main job is to match two beats up so that they don't conflict, everything else (like scratches or effects) is soundactic sugar.

It's not coding the program, it's making them cross compatible.

<comment><USER11> I'm not clear on your point (the video shows music improvisation, not DJing), but "soundactic sugar" is fantastic.

<comment><USER10> I'm not sure of the point either now. It was kinda late at night to be fair.</comment></comment></comment></comment></comment>


Mastering Bitcoin – By Andreas M. Antonopoulos - <AUTHOR> http://shop.oreilly.com/product/0636920032281.do

<comment><AUTHOR> Looking forward to the release of the ebook version</comment>


Ways to protect yourself from the NSA and other eavesdroppers - <AUTHOR> http://www.zdnet.com/six-ways-to-protect-yourself-from-the-nsa-and-other-eavesdroppers-7000016860/ <comment><USER2> Quitting social networks and using Tor and PGP isn't going to protect you from a nation-state intelligence agency. To suggest so is laughable and naive. We're not even at amateur hour yet.

You're better off reading Grugq's post[1] on developing good OPSEC, and even then you're far and away from it.

[1] [http://grugq.github.io/blog/2013/06/14/you-cant-get-there- fr...](http://grugq.github.io/blog/2013/06/14/you-cant-get-there-from-here/)

<comment><USER3> Did you read the article?! It's a straw-man pointing out that the only way to ensure privacy is with the protection of law:

>If we really want to protect our privacy on the net what we need is more than better technology, we need fundamental changes in our laws and how we enforce the privacy laws we do have. Then, and only then, will we have a fighting chance of keeping our privacy on the Internet.

<comment><USER4> You're right but I don't think this very likely. I think changing your online behavior is the only real way to escape surveillance. That basically means either not using the web or only using it when you don't care about who's watching.

Changing the laws and/or enforcing them would be ideal but then it seems we'd end up right where we are again. Part of the reason for the secrecy of these programs isn't only national security but a way to circumvent the laws. From what we know about the current NSA controversy, these programs are mostly legal and being enforced just fine. Courts are ruling in favor of these things. That's not to say a debate over the 4th amendment isn't unreasonable.

Sometimes I feel there's a part of me that believes we could change the laws. The problem may not be our representatives exactly but rather the power that's been given to the military industrial complex. It's like a totally separate government unto itself, creating problems to solve to justify its own existence.

</comment></comment></comment><comment><USER5> I seem to be discussing this topic with my friends almost on a regular basis now.

However, and as we all agree, it's much difficult putting them into use. We need these services. If I get lost, I need Google Maps to find the way. I need GPS. These are things that have no other alternative.

Likewise, if I want to talk with a friend over video and I tell him I don't want to use Skype, he laughs at me. Will he download and install Jitsi just for me? No, that is not how it works.

If we are using these tools for ourselves, say personal browsing using Tor, that is fine. But the moment you start interacting with someone else and expect them to send you PGP encrypted emails, not to use Google Talk/Skype, people just don't care and will not switch to other alternatives. Also, you will get laughed at for being a paranoid nut. Unless these secure alternatives become the norm, good luck expecting others to change. That means your family and friends who just want to use a service and don't care about the privacy problems behind it.

TL;DR: our reliance on these technologies makes it difficult to completely let go of them. And for most of them, there are no privacy-preserving alternatives.

<comment><USER6> As an alternative to google maps, try openstreetmap. It's got good coverage, and there are numerous routing engines based off it.

<comment><USER7> Also, try a map ;-) (semi serious)

</comment></comment></comment><comment><USER8> The only way to protect yourself, is to force politics, to stop the sniffing now and to delete all the previously gathered data. There is no technical solution, only a political one.

<comment><USER9> And then in 5 years, when the program rises from the dead only with a different name and a more closely-screened cadre of analysts, what then?

I hate to say it but what you're saying is like telling a 17-year-old that the only way to protect themself from STD/pregnancy is to never have sex. I mean, _you 're right_, but you're also failing to cope with the reality of the situation. ;)

<comment><USER8> Well, before enough people are telling their governments to stop surveillance, it needs to be a strong matter of public interest. The same applies for a broad application of any technical solution.

At the end we probably need both, the public constantly controlling politics and technical solutions to make surveillance generally harder, but it all requires the public interest reaching at least the critical mass.

If 99% of people didn't want surveillance, then governments would have virtually no chance to install it, but at the moment many people think surveillance is good for them.

</comment></comment></comment><comment><USER10> _Instead run your own IM service with your own Extensible Messaging and Presence Protocol (XMPP) server_

Only technical savvy people can do something like that, and from those few will ever bother. Besides if I'm to set-up my own XMPP server why not hangout at IRC.

 _Quit social networks, all of them_

Try telling that to a 20 something. Social networks are the Internet for them, they don't just quit.

Advices like these are absolutely useless. HTTPS Everywhere is probably the only usable advice in the whole article. Everything else can't be proposed to the average user.

IMHO privacy is one thing and protecting yourself from NSA a whole different. While you can protect your privacy following some simple rules, making yourself invisible from NSA is practically impossible-unless you're willing to forgo many of the conventions of modern life.

<comment><USER11> > Advices like these are absolutely useless. HTTPS Everywhere is probably the > only usable advice in the whole article. Everything else can't be proposed > to the average user.

Considering that the so-called Average User doesn't care aboit his/her privacy in the first place, is this much of an issue really?

<comment><USER12> Facebook is pretty much 100% https already. Think about it.

<comment><USER13> And then there is open graph…

[https://graph.facebook.com/search?q=my%20cell%20number&type=...](https://graph.facebook.com/search?q=my%20cell%20number&type=post&limit=50)

Become your own NSA!

</comment></comment></comment></comment><comment><USER14> It seems like it should be possible to make a much lighter weight encrypted email protocol than, say, GnuPG. Address books should have a public key field. Emails should have a X-Public-Key: and X-Signature: fields. You can add key exchange on the existing protocol. If you've got a public key in your address book, outgoing emails should be encrypted. It seems like it would be trivial for GMail or Thunderbird to support something like this. I realize this doesn't solve all the problems GnuPG does, but email exchange would be encrypted, it would be easy to adopt, and would let the end user choose manage keys and store emails encrypted (Thunderbird, say) or not (GMail).

<comment><USER8> > Address books should have a public key field.

Smart.

<comment><USER9> They do, in the DoD.

</comment></comment></comment><comment><USER15> It will be funny if the NSA saves the newspapers as the only method left of communicating securely. You just take out encrypted ads in the nytimes when you want to communicate with someone. No way for them to know who it was meant for. What are they going to do, ban encryption in newspapers ? Are they going to torture everyone taking out encrypted ads ?

<comment><USER15> Clarification, I meant save print delivery.

<comment><USER15> Don't need print delivery if nytimes releases an app that pumps all classifieds to you even if you ask for just the front page.

<comment><USER16> Did you forgot to change your username when you replied to yourself?

</comment></comment></comment></comment><comment><USER12> A much shorter version of this article: "Quit Google. Quit Facebook. Quit Apple. Quit Microsoft. Quit Yahoo. Quit Skype."

<comment><USER17> That seems to be the truth. but almost impossible.

<comment><USER18> Debian + Duck duck go.

</comment></comment></comment><comment><USER19> This article is a bit of a copout, but you can certainly lower your footprint.

Using Tor or a VPN are definately good things to obfuscate traffic, but you basically have to use them ALL the time otherwise your activity can be corrolated.

Using your own IM isn't a requirement either, you can use OTR for semiprivate conversation.

</comment><comment><USER17> What about the data that is already out there ?? Is there any way to get that removed from their servers ?

<comment><USER19> Probably never.

</comment></comment><comment><USER20> _we already know the government can, and will, grab cloud servers._

They will grab your private servers too, if they have probable cause to do so. I don't see this particular argument being very persuasive.

<comment><USER21> Yeah but your private servers have full disk encryption. And whichever other security measures to decide to not skimp on for convenience.</comment></comment>


Product-Minded Engineers: Who They Are and Why They Matter - <AUTHOR> http://mokriya.com/blog/product-minded-engineers-who-they-are-and-why-they-matter/ <comment><USER2> I've launched several startups and I know how important it is to teach the employees to work as a team. Engineers might mistakingly think that the users will be fond of their products with so many features. But ordinary people do not often need them, they just want intuitive, easy-to-use products! Designers try to convince engineers to produce more user-friendly solutions, but it may lead to conflicts. So before developing a new feature, we brainstorm to the balance between complexity and simplicity together. It helps us stream the energy on reaching our common goal without any misunderstanding.

<comment><AUTHOR> That's awesome @alex_lubinsky - you nailed it, it pretty much comes down to transparency and solid communication practices. Building a culture within the team of user-first when thinking through the product.</comment></comment>


Why a Digital Diary Will Change Your Life - <AUTHOR> https://www.nytimes.com/2019/06/12/opinion/digital-diary.html <comment><USER2> Nice idea, but not sure why you need a dedicated app like Day One ($36 p.a. for premium) to keep a journal though. You could do the same thing in pretty much any notes app for free, or just keep a Word doc or similar.

</comment><comment><USER3> Keep a notebook and write.

No one will be able to scan your content and process you/sell you things.

<comment><USER4> I agree. A journal is supposed to be "your place" usually that no one knows about. When you use apps and note apps to journal in your data is being sent somewhere and the sacredness "your place" idea is gone.

</comment></comment><comment><USER5> I was debating trying something similar. I have my own domain for use of Nextcloud and my own email, but I have toyed with the idea of making a website similar to a digital journal. Whether its documenting how I figured out something (usually technological), or just some other passing thoughts, or for a way for family to see what I have been up to. I really don't want to monetize it or try to make it popular, but I have mulled it over in my head.

Has anyone else tried that?

<comment><USER6> You can see my failed attempt at [https://lemanchet.fr/learned- today.html](https://lemanchet.fr/learned-today.html)

I say failed because I don't feel very good with writing my findings publicly when other people may find this information trivial. What if people realize that I don't know how to use gdb?

<comment><USER5> What you had is actually really close to what I was thinking. I like the idea of talking about some technical thing I figured out, and group it with other ideas or interests (like your photo page, I liked the photos!).

I am currently protoyping the idea with my wedding page. I built a self hosted WordPress service, learning how to set it up and maintain it has been an interesting challenge.

And to me, I'd ask why does it matter if you don't know how to use gdb or $TOOLSET? A lot of learning has to start at some point, and for all you know what you figure out either helps someone new or it shows someone else a new way to use it.

<comment><USER6> Thank you for the positivity, maybe it will make me give it another try.

<comment><USER5> I always think we are our own worst critics.

</comment></comment></comment></comment></comment><comment><USER7> I'm a developer so I created my own simple PHP version. The habit-changing feature I added was having the script email me every day. So every day I get an email asking what I did the day before. Like texts, I find it hard to ignore emails, so I actually reply. Previously, when I had to remember to add an extry, I'd go weeks without journaling.</comment>


The Troika Laundromat - <AUTHOR> https://www.occrp.org/en/troikalaundromat/ <comment><USER2> _Some of the money that Roldugin's companies received from the Laundromat originated in a massive Russian tax fraud exposed by Sergei Magnitsky, a Russian lawyer who died in jail after revealing it._

[https://www.occrp.org/en/troikalaundromat/vast-offshore- netw...](https://www.occrp.org/en/troikalaundromat/vast-offshore-network- moved-billions-with-help-from-major-russian-bank)

Pretty amazing how people show up to fight and get themselves killed on principle in situations like this.

<comment><USER3> This led to the Magnitsky Act [1], where the U.S. slapped heavy sanctions on a number of Russian individuals believed to have been implicated in his death. This hurt Russia so much that they retaliated in a number of ways, one of which is the topic of investigations of a prosecutor whose name is Mueller...

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

<comment><USER4> ..and this is what the "adoptions" talk was a euphemism for during the Trump Tower meeting

[1] [https://en.wikipedia.org/wiki/Magnitsky_Act#Ban_on_U.S._adop...](https://en.wikipedia.org/wiki/Magnitsky_Act#Ban_on_U.S._adoption_of_Russian_children)

</comment></comment></comment><comment><USER5> We constantly hear the Russian economy is in shambles, but at the same time the whole planet seems flush with shady Russian cash.

I'm honestly confused by the real status of their economy.

<comment><USER6> An economy of scale has value measured in trillions. A trillion is 1000 billion. If I succeed in stealing 0.01% of something in trillions, I have x times 100 millions.

I think we can assume that inside this economy, theft significantly north of 0.01% is taking place. For reference my partner ran a small independent bookshop and she worked on 1% theft of stock as a rough model. For "theft" read "oh I dropped it in a puddle, the book is now filthy and unsellable, I shall keep it and use it for .. nevermind"

Tax compliance in Greece was figured at below 50%. Tax -avoidance- [edit: wrong. evasion] (not tax minimisation) is theft from the state. If a modern western economy inside the EU has less than 50% compliance on tax, what do you think the post SU states have?

What is the value of an illegally exported tank? Barrel of oil? A Tonne of industrial diamonds? Cobalt? If you lived in an economy which was so physically large most of its visible ocean borders were probably un visited 99% of the time, and you had a megatonne of industrial diamonds.. what would you do?

<comment><USER7> > Tax avoidance (not tax minimisation) is theft from the state.

Tax avoidance is OK. It's tax evasion that's illegal.

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

<comment><USER6> Sigh. Sorry. fixed. Wish we had -markdown- for corrections.

</comment></comment></comment></comment><comment><USER8> I suspect that Western authorities tolerate this because it brings billions of dollars into their economies.

<comment><USER9> The British definitely do, it's part of their "second empire." Almost every overseas possession is now a haven (from BVI, the Caymans, to independent states like the UAE and Singapore).

<comment><USER10> Meanwhile, the London real estate prices increased 5-10 fold between 1995 and 2015. Coincidence?

[https://data.london.gov.uk/dataset/uk-house-price- index](https://data.london.gov.uk/dataset/uk-house-price-index)

</comment></comment></comment><comment><USER11> 1\. It is great this this information is published. People should know about these crimes. I sincerely hope that all involved with rot in jail (or worse, for all I care). It would be even better if it also would drop the curtain on the people who (so far) remained out of view in all this.

2\. What is absent (surprisingly, if you're naive), both in this publication and in general regarding the topic, is the relationship between Russian oligarchs, their rise to power after the collapse of the USSR, and the assistance they got from mostly foreign/US "advisers", "investors" and "businessmen". All of which were eager to at least make as much profit from the chaos, and probably had full blessing of the US government to corrupt Russia as much as they could.

3\. Somehow, the foreign individuals who played key roles in creating the Russian "reality" as it exists today, just happen to (mostly) stay out of view in every publication. That some of these individuals are themselves under investigation in Russia, some of which lost much of their "gains" made in Russia, and now some of the most vocal driving factors behind the current anti-Russia rhetoric/hysteria in the USA, can of course be all just coincidence.

4\. Looking at the list of supporting organizations on the OCCRP's web site, it would be rather extraordinary if this publication does not have a political bias, since many of these supporters have rather blatantly open political agendas (with some of them at least being suspect of being criminal organizations in their own right).

5\. What if this publication is first and foremost a political chess move, in a large scale turf war between competing criminal organizations? All of which are effectively outside the reach of legal scrutiny. I do not claim that this is the case, but it might be worth considering.

<comment><USER12> >4\. Looking at the list of supporting organizations on the OCCRP's web site, it would be rather extraordinary if this publication does not have a political bias, since many of these supporters have rather blatantly open political agendas (with some of them at least being suspect of being criminal organizations in their own right).

What are the blatantly open political agendas of those supporters? I'm asking seriously. All seem to be about human rights and civic societies and so forth.

<comment><USER13> Well, US Agency for International Development is one of them.

Whilst I have no doubt it has done some good stuff, it's also been directly involved in funding attempts at regime change. This usually done under the guise of promoting democracy – often in places that were once US puppet- states.

It's interesting that the US speaks of promoting democracy, when it is fiercely supportive of some of the least democratic states.

If USAID's plans would be so widely supported by the US taxpayer, words like "discreetly" [0] should not need to be used.

[0] [https://www.scribd.com/document/122217408/USAID-DAI- Contract](https://www.scribd.com/document/122217408/USAID-DAI-Contract)

<comment><USER12> Thanks! Very interesting document.

</comment></comment></comment></comment><comment><USER14> This is an absolutely incredible read.

Guess sanctions only impact the poor...

<comment><USER15> they only help "strongmen" leaders become even more popular among their populations because of an "external" enemy.

</comment></comment><comment><USER16> I highly recommend Bill Browder book on this topic - "Red Notice: How I Became Putin's No. 1 Enemy".

It's an awesome read - and very interesting. It's written by the guy who used to run the biggest investment fund in Russia and was quite an activist. Later, he and his lawyers uncovered a massive tax fraud scheme, involving a lot of important people - he became number 1 enemy there. One of the lawyers - Magnitsky, got imprisoned for several month, then beaten to death there. He (Browder) now spend his time trying to uncover more of the abuses in Russia (the recent wave of investigation into European banks is one of the fruits of his work).

The book is mind boggling.

<comment><USER17> He was an activist in the 'investor activist' sense when he was running the fund.

</comment></comment><comment><USER18> I take it the dataset isn't available anywhere for download?

<comment><USER19> They have _some_ data available at [https://data.occrp.org](https://data.occrp.org).

As far as I can tell, the data for this investigation is not (yet?) accessible. [https://www.occrp.org/en/troikalaundromat/about-the- data](https://www.occrp.org/en/troikalaundromat/about-the-data) has some information about it, and includes an address to contact for journalists who want to gain access.

The leaked info seems to consist of bank statements. It's unlikely that any bank conducts illegal transactions only, so it is understandable that they cannot release the data to the public without harming lots of legitimate customers.

<comment><USER20> Disclosure: I've used to work for OCCRP.

That's a platform designed for journalists that indeed contains a lot of scraped data and leaks. It cross-references them, so you can type in a name of the person/company and see the data points mentioning them. Some of the investigations got started precisely because journalists were able to use it to see a connection you can't see otherwise. It handles all the quirkiness that arises from dealing with different alphabets, and it accounts for multiple ways you could type a name from a different alphabet into Latin.

The administrators of it manage who gets to see which data sets for obvious reasons. Knowing nothing about this specific investigation, I assume that the data is currently only accessible to the pre-approved journalists (that work on this investigation).

The code of the tool is available on GitHub, and if you happen to stumble upon a security issue: [https://www.occrp.org/en/responsible- disclosure](https://www.occrp.org/en/responsible-disclosure)

</comment></comment></comment><comment><USER21> I think it's somewhat telling that the thing I imagine being laundered when I hear or see the word Laundromat, is money.

</comment><comment><USER22> After panama papers I realized that money are moved using fax machines. It seems to start moving money you need to know company name and its representetive. Having this info sending a fax stating move money from A to B is sufficient. I assume huge amounts can be or are stolen from ofshore companies.

</comment><comment><USER23> Absolutely enthralling so far. A must read for everyone.

</comment><comment><USER24> posted this already yesterday, identical URL and title. I don't understand why my submission got demoted and this one is at the front [https://news.ycombinator.com/item?id=19309329](https://news.ycombinator.com/item?id=19309329)

<comment><USER25> Timing and luck. It is more important though that a good link eventually gets the exposure it deserves.

<comment><USER24> no that's fine, the goal is to have it seen and see what people think.

but it seems my understanding of how links get promoted is incorrect. When submitting links that have been shared hours/days (or sometimes weeks) before, then the submit usually takes me straight to the page of the original poster. It seems that there is a limit of how many links can be on the frontpage by a given user or something (but that too doesn't seem right considering that in Dec I had 4 links on the FP top 30 on the same day).

For long time I thought I understood this site but now it's clear to me I know nothing :)

<comment><USER25> No wait, those aren't the same URLs actually if you look at them. So that explains it ;)

<comment><USER24> hmm, but they are the same: [https://news.ycombinator.com/from?site=occrp.org](https://news.ycombinator.com/from?site=occrp.org)

</comment></comment></comment></comment></comment><comment><USER26> I think Western countries should make a favor and not punish any of that and even encourage Russian money flowing away from Russia. At some point Russian people have to stand up for themselves. This Oligarch situation is so bad its upsetting

<comment><USER27> What do you think ordinary Russians will/should think of the West if it does this? Do you think it will encourage them to vote for a pro western liberal democrat? or an authoritarian strongman?

What would you think if Russia did this to your country? Supported the oligarchs in your country... to make you see the error of your ways?

<comment><USER26> I dont think its about voting. The whole system is corrupt there due to the people who have power. And if west lets them legally spend their money its going to be transparent to the people in Russia. Which might push them towards some action.

Btw west itself is not Liberal Democrat. Checkout Russian Liberal democrat Vladimir Zhirinovsky you'll see how different Russia is from West. I feel like you expect a western solution to a Russian problem. Im dont expect everyone agree with me, but to me it seems like this problem needs some extreme (not normal) approach

<comment><USER27> I definitely don't want a "western" solution to a Russian problem... my point was that's pretty much what you're advocating.

The west has a terrible history of implementing these kind of self defeating, counter productive Strongman strengthening policies (e.g. Putin is largely result of the west supporting with Yeltsin), which is what I think would happen if you were to "teach the people a lesson" which if I'm not reading you wrong, seems to me, what you are suggesting.

Also, the question stands, what do you think the effect of your suggestion on the average Russian? Do you think they will see things your way, or will they (in some sense rightly) see this as patronising interference. How would a western person see it if Russia were to do this to their country?

</comment></comment></comment></comment><comment><USER28> It's interesting that the fraud and laundered money is always blamed on the bad guy when in fact it should be the banking system that is held accountable. If you take large sums of money with a deposit description "for bills" without doing anything about it, well, sorry to say but you've failed to do your part in ensuring that money is not dirty. Banks are incentivized to look the other way and when they do get busted, nobody goes to jail, they pay a small fine considering the large picture and go on business as usual - see HSBC

<comment><USER29> I completely disagree.

It's correct to blame crimes on the bad guys. Theft and fraud are actual crimes with actual victims. Money laundering is a non-crime, and the rest of us shouldn't have to suffer an authoritarian financial system just because some people commit crimes.

Banks should provide a dumb service like phone companies do. It wouldn't be reasonable for the phone company to interrogate you about why you're making so many late-night phonecalls, and it's not reasonable for the bank to interrogate you about why you're depositing so much legal tender.

<comment><USER30> Money laundering is fraud. Most of the transactions involved companies created and owned by the Troika Dialog. This money laundering directly enabled a number of very harmful and illegal activities.

While I can understand valuing and protecting financial privacy, I fail to see how you can see Troika Dialog as blameless here.

In general, financial privacy must be balanced against financial transparency and enforcement. Tax evasion, embezzlement, bribery and other financial crimes come with significant costs to society.

<comment><USER31> If it really should, opening a bank should not be easier than opening a bank account. In, I think, half of Western world, banking licenses are issued with no questions asked aside basic formalities.

You can't justify at all how anal are the banking regulations towards individuals, when bank owners are allowed an effective anonymity and life free of state intrusion.

Today's AML mass hysteria is not much different from the terrorism "security theatre" – completely ineffectual</comment></comment></comment></comment>


What is Something You Recommend (and why)? - <AUTHOR> Whether it be something to buy, an experience, a hobby, a perspective, or any anything else, please share some thing you recommend.<p>Some things I recommend to most people I meet:<p>- Google Chromecast. While the chromecast does not add any new functions, its ease of use is so high that you will get a lot of utility from it. Due to how easy it becomes to stream music/tv shows/movies etc from your phone/tablet/computer to your TV, you will end up streaming all the time. For example, now whenever I am near my living room, I'll put on music through my TV or an episode of Seinfeld or something.<p>- E-reader. They are quite cheap. I find the reading experience to be far superior to reading a physical book (especially if the book is heavy). You now have access to almost any book whenever you want it (and potentially for free/low prices). Anecdotally, I have heard that once people buy an E-reader, they find that they end up reading significantly more.<p>- Squash (or any other quick-cardio based sport instead of a cardio workout). Each game is short but still an incredible work out. You feel great afterwords and most importantly, each game is a ton of fun to play (a lot more fun than running on a treadmill). It's easy to learn/start out and not very expensive (atleast in the places I've lived) <comment><USER2> Read Man's Search for Meaning by Viktor Frankl. It's about a psychiatrist's experience in Auschwitz, and helps with identifying purpose and finding meaning in life.

[https://en.wikipedia.org/wiki/Man%27s_Search_for_Meaning](https://en.wikipedia.org/wiki/Man%27s_Search_for_Meaning)

[https://archive.org/details/MansSearchForMeaning_201507](https://archive.org/details/MansSearchForMeaning_201507)

[http://www.amazon.com/Mans-Search-Meaning-Viktor- Frankl/dp/0...](http://www.amazon.com/Mans-Search-Meaning-Viktor- Frankl/dp/080701429X)

Try to be 1% better and whatever you're focusing on improving. It's manageable. It's realistic. It adds up.

</comment><comment><USER3> Get lots of sleep, and exercise regularly.

Even if you're in a job you don't like, you'll still feel okay about life (serious depression issues aside).

Everything seems 10x worse when you're not sleeping well.

How do you sleep well? Get rid of your TV. Seriously, throw it out. You don't need it. Read a book that doesn't pertain to your career 30 minutes before you intend to go to sleep.

<comment><USER4> Conversely, for years I've followed the rule of watching fiction TV shortly before bed - this started when I was single and read research saying that you sleep better if you see human faces just before bed.

It seems to have worked.

</comment></comment><comment><USER5> I cannot recommend running enough. It's the best form of free therapy (well, after you buy proper shoes that is) on this planet. I don't run huge distances anymore (25+ km on weekends was regular, I've run two marathons, but now I stick to lifting mostly at the gym) but I've never gone on a run I've regret in a decade of doing it.

<comment><USER6> Very true, I always have a hard time getting out the door, but even when I come back panting, light-headed, and sweating like a mad man, I am always happy I did it and it really does make you energized(at least after the half hour or so it takes your body to get your energy level back up)

<comment><USER7> Wow, I don't find running leaves me energized. While I enjoy running (and especially long distance running), I find it leaves me drained and often depressed afterwards. I don't get the Runners High that so many mention, if anything I get Runners Low.

I generally enjoy the run and find it helps me lose weight in the long term, but I also find it saps my productivity because I feel so terrible & drained afterwards.

[Since my post is so negative, let me add a recommendation for an iPod Shuffle or Bose QC25s while running. I find the music helps me run 10 - 20% faster if I choose the right music, typically music by Pendulum.]

<comment><USER8> I try and practice mindfulness when I run, thinking about my breathing and steps, etc... I leave all my technology in my locker. A shuffle would be better than a phone, though. I've been considering one but I'm a big Spotify user. Sorry to hear about the post-run low :/

<comment><USER9> iPod + offline mode works for me :-)

</comment></comment></comment></comment></comment><comment><USER10> Learning to Cook - Alton Brown started me down the path of learning cooking from a science/chemistry point of view. After a year of on and off research I've been able to make meals from just things I find on sale over the weekend. It's almost like a puzzle. The pieces are all the food on sale (potatoes for $0.49 sign me up!) and the final product is full meals that I cook. (Plus always good way to impress another by cooking for them).

Monogatari (Anime Series) - It is a jumbled mess that is a jumpy as it is deep. If you don't want to see any fan service at all in your anime I would skip over this. If you don't mind that (or enjoy it) this is a great anime. It doesn't knock my favorite anime (Cowboy Bebop) off of my Number one slot, but this one is a great that I would wager will stand for the future. (Bakemonogatari is the first season).

Don't Panic - There's a reason it is written in big bold red letters on the universe's best selling book.

</comment><comment><USER11> Google Play Music - my favorite music collection service. Same price as Spotify ($10/month), but with the bonus of being able to upload 50,000 of your own song files (for any oddball music you have that isn't in their collection) as well as YouTube Red. Generally less buggy and doesn't have Spotify's streak of weird/terrible software design choices. (there's a script for porting your playlists over from Spotify: [https://github.com/rckclmbr/pyportify](https://github.com/rckclmbr/pyportify) )

Tweetdeck - I'll bet a lot of people on HN already use it, but to any Twitter users still using twitter.com instead of Tweetdeck, I highly recommend giving it a shot. The abundance of information on screen will be overwhelming at first, but give it a day or two, and your brain figures out how to make sense of it and love it.

Pushbullet - Receive and write text messages from your PC via Chrome extension. Receive push notifications for just about anything. I combine it with IFTTT to receive alerts for RSS feeds of blogs and comics I like (my recipes if anyone's curious: [https://ifttt.com/p/oxguy3/shared](https://ifttt.com/p/oxguy3/shared) ).

</comment><comment><USER12> If you're a nail biter, I can't recommend N-Acetyl Cysteine enough. I was a nail biter for my entire life - I don't think I'd used a clipper in over a few decades. On a recommendation I tried NAC and haven't bitten my nails since. I don't even take it anymore - after a few weeks the urge to bite never came back.

It was actually a key moment of enlightenment.

First, I realized how powerful, yet fragile habits can be. By forming habits, you can do things effortlessly for years on end without even thinking about it. At the same time, small interruptions can derail the behavior permanently.

And second, I realized that what we eat can influence our behavior in ways which are imperceptible. When I took NAC, I didn't feel any different - I just didn't bite my nails. It got me thinking that I should be more careful about what I put in my body, because even little things can make a big difference. Since then I've learned to cook, and now eat a far healthier diet than I used to.

</comment><comment><USER13> A couple of suggestions of ideas that have worked well for me.

\- Find a purpose in life. This does not have to be some big, grand thing but just something that you are passionate about. For example, I like to create products and businesses.

\- Help others because that gives greatest joy. I have deeply thought about what makes me very happy and I realized I feel really good when I have helped someone even in a small way.

</comment><comment><USER14> Sketch. I've transitioned my UI/UX workflow completely from Photoshop and haven't looked back. The hype is real and well-deserved.

Truman Capote's book - In Cold Blood. Also, The Great Gatsby. There are countless phrases littered throughout both where I just think 'fuck, that is really something'.

Keto. It's easy to stick to and I've consistently lost weight. I no longer have brain fog, bloating, and I can't even remember the last time I felt hungry or craved sugar.

Buddhism / meditation. It helps being thankful and to understand that there is something more to life than what is on the surface.

The Doors because, well, Jim Morrison.

Water. Seriously, drink more of it.

</comment><comment><USER15> Kettlebells. They're a good, time-efficient way to get a bit of aerobic and a bit of anaerobic exercise. Especially useful if you have problems that stop you running, e.g. foot problems or knee joint issues. Just make sure to get the technique right before you push yourself with them.

</comment><comment><USER16> Taoist Tai Chi [http://taoist.org](http://taoist.org)

It helps with balance, dexterity, openess to change, learning, letting go, relaxing and much more, both mentally and physical.

I got rid of 20 years of back pain and livea more healthy and balancee life now.

</comment><comment><USER8> Keeping a journal or diary. It's great for mental health and creativity. Not to mention the many benefits of more focused journals (food, shop journals, etc...)

</comment><comment><USER17> If you live on a coast or where they treat roads with salt, then wash your car periodically to prevent rust.

</comment><comment><USER18> learn touch typing if you havent already</comment>


My Heroes - <AUTHOR> http://jacquesmattheij.com/My+Heroes

<comment><USER2> Already submitted as <http://news.ycombinator.com/item?id=3134802></comment>


Ask HN: Japanese word for a parabolic rise in procrastination prior to shipping? - <AUTHOR> My apologies for the joke of a title, but I'm half serious here.
I've been working on a personal project for the past 2 weeks straight, a good 8 hours every single day, with very little in the way of procrastination.
Now, as I am nearing the point of putting the finishing touches on it... I am hungry... I am thirsty... I am playing with the dogs... I am avoiding work like a sickness.
Hell, I'm on HN now asking pointless questions.
Well, guess I had better get back to it. <comment><USER2> The work of starting is different for the work of finishing.

You in particular have completed tasks that you find easy to complete and you have put off the tasks you find hard to complete. So the residual tasks are hard.

Be careful of the business folks who want to do the 20% of the work that gets you 80% of the way there. If you don't get 100% of the way there you don't win the prize.

<comment><AUTHOR> Well at least I don't have this problem when it comes to paid-work!

It only ever seems to happen when it's my own idea I am working on... something I never seem to value as highly as paid gigs... which is probably a bigger internal struggle in itself now that I think about it.

I think all this thought experiment proves is that I really enjoy learning new things about technology (as I have done for the past 2 weeks on this project), and I dislike doing the tedious work once I've grasped the concept... which I think probably stems from the fact that I haven't fully grasped it yet still and I feel dumb/incompetent/afraid of trying to implement something I am not fully comfortable with.

Thanks for the chat.</comment></comment>


Ask HN: Why would businesses care for lowcode/Nocode tools? - <AUTHOR> Given : businesses are already using COTS apps for running their business. Eg - employee applications  (Workday/successfactors) sales & market facing applications (SFDC) / Business oS - SAP HANA.<p>Given the above, why exactly dev tools like outsystems, (have raised north of 300M USD), appian, mendix, kony will excite  large/mid size enterprises. <comment><USER2> For custom solutions, there is always something that needs a specific fit and needs to be custom developed and that is where these products fit in.

</comment><comment><USER3> there are small businesses like day care center, restaurant, motel. They need customization and can't afford engineering</comment>