1. 23

    Ah yes, in federal prison on wall street they call these wash trades.

    1. 7

      A lot of young traders are going to get in a lot of trouble, eventually.

      1. 15

        It’s kinda amazing watching the cryptocurrency folks reinvent every scam in finance and then rediscover why regulation exists.

        1. 4

          I’ve been thinking this so much lately, and not just w.r.t. cryptocurrency (though it definitely comes up a BUNCH there). It seems to me like at least some of the “disruptive” companies of the past decade or so are trying to “disrupt” regulation. Uber/taxis, AirBnB/hotels, anything in the gig economy/labor laws, are just a few examples. Turns out that regulations actually come about because of ordinary people getting screwed by companies, and we have them for good reasons.

          1. 2

            There will be scams and cryptocurrencies are also genuinely useful for things like fixing DNS and digital identity, creating decentralized organizations, dead-man switches, etc.

            It’s not clear to me this example qualifies as a scam, as it seems to be closer to a bug of some sort. However, you could call it a scam too, and I wouldn’t judge you harshly for doing so. A lot of these things seem scammy to me, and remind me of TheDAO. Broken promises. Foolish investors. etc.

            1. 2

              It’s sounds a lot like a database transaction.

              1. 2

                There’s a rather big difference between a MySQL transaction and a transaction that happens on a public blockchain.

                1. 2

                  Care to explain?

                  1. 2

                    For a start, MySQL has decent performance, and doesn’t incentivize wasting huge amounts of electricity.

                    1. 1

                      You’re right, it incentivizes data breaches, fake claims of privacy, censorship, on top of the same stuff that cryptocurrencies incentivize.

                    2. 1

                      Are you trolling or do you really not understand the difference?

                      1. 2

                        There is an obvious difference, but you seem to have stuff in mind. Are you thinking technically, culturally, economically, politically? I don’t know so I’d rather ask an open ended question. If I ask an open ended question I’ll get your opinion. (Which appears to be that I’m an asshole.)

                        Edit apologies for the tone. I’m not in a good mood and it’s not related to you.

                        1. 2

                          Everything you mentioned stems from the technical differences. And this is supposedly a website where we discuss the tech. Since you’re now saying the difference is obvious (as I feel), I will take that as you retracting your question.

                          Edit: saw your apology. Thanks. Hope you feel better.

          2. 6

            Wash trades are something other than what is being described here. Your statement is incorrect.

            In particular, a wash sale is when the same person buys and sells something to/from themselves to create fake volume.

            Using a short-term loan to take other actions is a different thing entirely. If you aren’t your own counterparty, it isn’t a wash sale.

            1. 1

              That’s true, this is a stretch of the term for dramatic effect, and to highlight the notion that cryptocurrencies seem to slowly reinvent classic financial market scams one by one.

              It can have the effect of boosting apparent traded volume (because some of these trades bounce currency out of and back into ETH), but the main purpose seems to usually be something in addition to that.

              1. 2

                to slowly reinvent classic financial market scams one by one.

                One would hope these systems can reproduce the behaviors of the existing system. The point is to be able to do things that weren’t possible before, like decentralized exchanges, social key recovery, ownership over digital goods, etc.

          1. 5

            Counter-point to this: Fuck RSA @ Summercon 2019

            RSA is elegant and simple, which makes it tempting to implement. But as that talk explains, there’s a huge number of traps that you can fall into. The article does nothing to warn about these risks.

            1. 3

              RSA was great back when it was new. It’s now more than 40 years old. We have way better options now and RSA needs to retire.

            1. 3

              If you’re putting binary files into git you’re doing it wrong. One could argue about small files, but compiled code/executables, photos or “gifs for the readme” are definitely misplaced in a git repository.

              1. 12

                I do find that having image files in a resources/ directory for something like a website is often simpler than separating the two. Even then making sure that images are compressed and generally not bloating repo size / git history is essential.

                1. 18

                  I do find that having image files in a resources/ directory for something like a website is often simpler than separating the two.

                  Yeah, the is exactly the use case here. Mercurial (and git) aren’t designed for handling large binary files, but if you’re checking in static assets/resources that rarely change it still tends to work fine. This repo was fine on Bitbucket for many years, and is working fine on an hgweb instance I’ve spun up in the mean time.

                  I specifically asked about limits because if it’s just the size of the repo being a technical problem for their infrastructure, I can understand. But they would not specify any limits, but just reiterated several times that Mercurial wasn’t designed for this. So I don’t know which of these was the actual problem:

                  1. The repo is so taxing on their infrastructure it’s causing issues for other users.
                  2. The repo is so large it’s costing more to store than some portion of the $100/year account price can cover.
                  3. They are morally opposed to me using Mercurial in a way that it wasn’t designed for (but which still works fine in practice).

                  Cases 1 and 2 are understandable. Setting some kind of limit would prevent those problems (you can still choose to “look the other way” for certain repos, or if it’s only code that’s being stored). Case 3 is something no limit would solve.

                  1. 3

                    If you want to store large files and you want to pay an amount proportional to the file sizes, perhaps AWS S3 or Backblaze B2 would be more appropriate than a code hosting website? I don’t mean to be obtuse, but the site is literally called source hut. Playing rules lawyer on it read like saying “Am I under arrest? So I’m free to go? Am I under arrest? So I’m free to go?” to a police officer.

                    1. 5

                      B2 or S3 would make things more complicated than necessary for this simple repo. I’ve spun up a $5/month Linode to run hgweb and it’s been working great. I’m all set.

                2. 6

                  This case was hg, but the same limitations are present. Hg has a special extension for supporting this:


                  And it’s considered “a feature of last resort”. It’s not designed to deal with these use-cases.

                  LFS support requires dedicated engineering and operations efforts, which SourceHut has planned, but is not ready yet.

                  1. 5

                    I have a repository with mostly PNG files. Each PNG file is source code; a chunk of data inside each PNG file is machine-readable code for the graph visually encoded in that PNG’s pixels. What would you have me do?

                    I suspect that you would rather see my repository as a tree of text files. While this would be just as machine-readable, it would be less person-readable, and a motivating goal for this project is to have source files be visually readable in the way that they currently are, if not more so.

                    git would not support binary files if its authors did not think that binary-file support were not useful; that is the kind of people that they are and the kind of attitude that they have towards software design.

                    With all that said, I know how git works, and I deliberately attempt to avoid checking in PNGs which I think that I will have to change in a later revision. It would be quite nice if git were able to bridge this gap itself, and allow me to check in plaintext files which are automatically presented as PNGs, but this is not what git was designed to do, and we all can imagine the Makefile which I’d end up writing instead.

                    1. 1

                      I like the project, but pardon my ignorance - aren’t the PNG files still binary assets produced by the “real” source code, which is the textual expression parsed to generate both the embedded bitstring and the dot graph? If they’re machine readable, that places them in the same category as compiled object files.

                      1. 3

                        The real source code is non-textual; it is the diagram (WP, nLab) which is being given as a poset (WP, nLab). To achieve optimal space usage, each poset is stored as a single integer which codes for the adjacency matrix. However, this compressed format is completely unreadable. There are several layers around it, but each layer is meant to do one thing and add a minimum of overhead; JSON (in the future, BSON or Capn) for versioning and framing, and PNG for display and transport. There isn’t really source code; there’s just a couple Python and Monte scripts that I use to do data entry, and I want them eventually automated away in favor of API-driven development.

                        For example, the raw integer for this “big” poset is (at the time of writing) 11905710401280198804461645206862582864032733280538002552643783587742343463875542982826632679979531781130345962690055869140174557805164079451664493830119908249546448900393600362536375098236826502527472287219502587641866446344027189639396008435614121342172595257280100349850262710460607552082781379116891641029966906257269941782203148347435446319452110650150437819888183568953801710556668517927269819049826069754639635218001519121790080070299124681381391073905663214918834228377170513865681335718039072014942925734763447177695704726505508232677565207907808847361088533519190628768503935101450078436440078883570667613621377399190615990138641789867825632738232993306524474475686731263045976640892172841112492236837826524936991273493174493252277794719194724624788800854540425157965678492179958293592443502481921718293759598648627823849117026007852748145536301969541329010559576556167345793274146464743707377623052614506411610303673538441500857028082327094252838525283361694107747501060452083296779071329108952096981932329154808658134461352836962965680782547027111676034212381463001532108035024267617377788040931430694669554305150416269935699250945296649497910288856160812977577782420875349655110824367467382338222637344309284881261936350479660159974669827300003335652340304220699450056411068025062209368014080962770221004626200169073615123558458480350116668115018680372480286949148129488817476018620025866304409104277550106790930739825843129557280931640581742580657243659197320774352481739310337300453334832766294683618032459315377206656069384474626488794123815830298230349250261308484422476802951799392281959397902761456273759806713157666108792675886634397141328888098305747354465103699243937608547404520480305831393405718705181942963222123463560268031790155109126115213866048693391516959219000560878337219324622230146226960346469769371525338127604307953786112516810509019551617885907067412613823285538493443834790453576561810785102306389953804151473860800342221969666874213156376831068606096772785272984102609049257833898258081466729520326827598704376424140779421965233471588921765110820238036094910936640446304632443760482611408445010230964335747094869968021425396439555206085281953007985784739643408074475440039274314217788647485602069097474262381690379456154426900896918268563062231294937080146199930562645748389040251871291840481739518244706752426504146889097315360662429293711705265772337748378759001582638301784557163848933046038798381667545043026975297902178839764134784634179453671000024868722179355800776002690855305662785522771116635997791339179517016284742206819482196944663461005128697584753594559406283638837841370287286682993990297923202976404261911087739188860505577427942276773287168600954693735964671046522557013031834557159173262849132567983767216098382093390056878765856939614383049277441.

                        1. 1

                          Ah, okay, I see. Makes sense, thank you for explaining!

                    2. 4

                      I’ve seen this argument quite a number of times, and almost always without a coherent explanation of why is that wrong. What’s the rationale behind this argument?

                      1. 4

                        Shameless plug, I contributed heavily to this help topic back when I was the PM for Microsoft’s Git server: https://docs.microsoft.com/en-us/azure/devops/repos/git/manage-large-files?view=azure-devops

                        FWIW I disagree with the comment up-thread which says that GIFs for READMEs don’t belong. If you’re going to check in a logo or meme or whatever, that’s perfectly fine. Just don’t do 1000 of them and don’t churn it every week.

                        1. 2

                          I think a big part is also “are my tools there for me or am I slave to my tools?”

                          If I have a website and most content is under version control, it’s annoying and complicated to have (big) assets outside. Most people simply want one repo with everything inside, and it’s mostly additive, often once per week - it simply doesn’t matter if it’s the wrong tool.