Here in Denmark, both realized and unrealized gains are taxed at the year end. The losses are transferred to next years and deducted from the gains.
This might be an advantage if paying 27% lower-tier tax over the years, rather than being taxed once on cash out and hitting a higher-tier of 42%. However, given the compounding effect, it seems more preferable to accumulate gains and pay higher tax at the very end.
This sounds terrible. The whole idea is that you don't realize gains unless you have to. That is, don't sell your long investments! If gains are unrealized, how do you even pay? You must sell your assets to feed hugry monster called government.
GP is not fully correct. Under Danish tax rules unrealized gains are not taxed for standard stock investments. Taxation only happens when realizing gains or losses, except for special investment accounts like retirement savings or other account types that have well-defined special rules and clear limits on the amounts that you can put in them. For these special accounts, unrealized gains are taxed at their value at the end of every year.
> You must sell [some of] your assets to feed hugry monster called government [which runs the courts, police, and military which all exist to protect the rest of your assets].
Some assets are only sellable atomically such as art or a house. A government demanding more money because the thing I purchased with taxed money has become more valuable (or not become worthless) is a form of financial gluttony bordering on demonic.
Fiat currency is a tool created by governments to accomplish goals. Massive income inequality generally conflicts with most liberal democracy's goals. Taking loans against unrealized gains lets people much richer than me pay a much lower effective tax rate.
>So far, I'm happy with this simple solution: [...] constexpr const char toString[kSize] = { "Monday", "Tuesday", ... } *
But you had to manually code that "toString[] = {"Monday",}"
Your "simple solution" misses the point of the article which is to have the compiler automatically generating the serialized string representation of the enum without a human programmer having to manually code the switch case statements or array lookups and also avoid manually keep the enum & array in sync.
The idea is to have the enum definition itself acting as a "single source of truth" and comparing various language features or libraries to derive the code to write out enum names as strings. In other words, the author is exploring various techniques of pseudo "introspection"/"reflection" for the enum data type.
> Your "simple solution" misses the point of the article which is to have the compiler automatically generating the serialized string representation of the enum without a human programmer having to manually code the switch case statements or array lookups and also avoid manually keep the enum & array in sync.
I agree, in some cases automatic generation might save you some typing.
It might be also painful to maintain, as changing a string requires to change a corresponding enum everywhere in the code.
Open Interest is 420 contracts, this is a max number of options someone can hold (for that strike and expiry). See the first line on the first screenshot, just below "Historical Volume / OI". Nobody could hold more than that much contract.
Edit: The total contracts is 127, so it gives 127 x $18 x 100 ~ $230'000 profit. (Seems like the post on Twitter is missing x10 factor.)
> Unfortunately, I am all too well aware of why these decisions were made, and it is exactly one reason: Compatibility with legacy code. C++ has no editions system, no way to deprecate core language features.
Actually, I'm curious if somebody is working on a flavor of the modern C++ that abandons backward compatibility ?
The Carbon project feels like a completely new language. What I'd expect instead is something that adopts best features and practices from modern C++, so that an average C++ project would require just minor changes to migrate, in spirit of Python 2 -> 3 migration.
Have you looked at the CppFront[1] project by Herb Sutter? It's less of a completely new language like Carbon. It's meant to be C++ with a "nicer" syntax, while providing 100% linking compatibility, and with 100% source backward compatibility available when desired.
This... seems false? In particular, the point of an "edition" system is that code written for the new edition can seamlessly import code written for the old edition, and so a hypothetical pointerless "new edition" would simply disallow bare pointers in new files, and things like smart pointers would continue to be _implemented_ in old edition code.
> would simply disallow bare pointers in new files
And all their header files. That's a real Year Zero moment: you've just cut yourself off from the standard library, as well as most of the code you might want to link to. I don't think there's any "simpler" about it.
You can get to a pretty clean modern C++ by convention and compiler warnings and static analysis.
Carbon is a completely new language, and that's the point. Part of the language design is making compilation a lot faster, for example, as well as features that C++ can't realistically implement, while retaining C++ interop. It's an exciting way forward if they manage to achieve their goals, and it would be a way to gradually migrate C++ projects.
C++ was grungy in the 90’s, and, well, Rust as it is now is better than C++ as it is now, the comparison that matters now. Rust in 30 years will be better than C++ in 30 years. And safety is a big deal feature, and Rust has it. If it doesn’t have future big deal features, future languages can have it.
I reject the notion that C++‘s “maturity” is a substantial advantage given its unsafety.
I switched from screen to tmux after almost 20 years of using screen. The impetus for the switch was that I found a bug in screen, and discovered that it had been reported for many years.
tmux handles changing terminal sizes better than screen does. The config language is much easier to read and write. The status line looks a little nicer.
If you use screen mainly to disconnect a terminal from.m an SSH session then tmux won’t do much for you. However, it would be easy to switch because you’re only scratching the surface.
If you use it heavily, then you may be hitting limitations and it would be worth experimenting with.
I find that I do most of the tmux-like things with multiple iterm windows instead, but I’m a lousy mouser.
iTerm2 actually has a pretty well-designed tmux integration[0].
Overview from the guide:
When you run "tmux -CC", a new tmux session is created. An iTerm2 window opens and it acts like a normal iTerm2 window. The difference is that when iTerm2 quits or the ssh session is lost, tmux keeps running. You can return to the host you were ssh'ed into and run "tmux -CC attach" and the iTerm2 windows will reopen in the same state they were in before.
It works with multiple panes, windows, etc. Worth trying out!
If you're that happy with `screen` I would suggest that you just continue using it. I also was a `screen` user initially.
Later, I switched to `byobu`, which started out as a wrapper around `screen` by Dustin Kirkland (of Ubuntu). At some point `byobu` switched to wrapping `tmux` to fix some corner cases/bugs, and it now prompts on first run whether or not you want `screen`-like ctrl-a behavior. https://linux.die.net/man/1/byobu-ctrl-a
It’s like comparing Apache to nginx. They’re both very similar.
The biggest complaints with screen is that the source code is a disaster, and it’s slow with lots of windows, and has put mouse support.
Tmux is very configurable, I used screen from 2005 until 2017 when I went all in on Tmux. My muscle memory couldn’t adapt though. So not all my Tmux bindings match screen.
Exactly the same attack happened with me about a month ago, also with expired domain name and recovery email associated with it. Fortunately I also had an active phone number assigned, which I believe ruined hacker’s attempt.
Funny facts:
- the domain was registered at the same date as attack happened
- attack happened from Hamburg IP and Android phone. This data was in my reset email from FB. This was true when I stopped using FB 5+ years ago.
- domain registration costs money, hence success rate of such attacks should be rather high
- since I stopped renewing this domain, it was registered by one more entity. According to archive.org with just some ads.
Take care folks, remember about your expired domains.
This might be an advantage if paying 27% lower-tier tax over the years, rather than being taxed once on cash out and hitting a higher-tier of 42%. However, given the compounding effect, it seems more preferable to accumulate gains and pay higher tax at the very end.