Threads for saulpw

  1. 2

    Love it.

    Two tweaks (maybe) for the About page:

    Explore this dataset with the tools of your choice to figure out the answers light the hannukah candles.

    Should that say “to figure out the answers and light the Hanukkah candles”?

    1. 2

      “to figure out the answers and light the Hanukkah candles”

      Or… “to figure out the answers to light the Hanukkah candles”.

      1. 2

        Hmm…I think to/and works better than to/to, even if it is slightly less accurate.

      2. 1

        Yes, you’re right. It’s been hectic pulling this thing together, thanks for helping tighten it up!

        1. 5

          My pleasure—and sorry to be nitpicky. I’m a teacher, and it can be tough to turn off the part of me that grades and corrects papers.

          I love the idea and the ASCII art.

      1. 2

        Did anybody find their privacy policy? I’d like to know what they’re going to do with the email addresses they collect.

        1. 1

          Hey! Creator here. This is a good point and we’ll add a Privacy Policy straightaway. In short, though, we’re just going to email people when the puzzles are released, and then plan to email them again in the future if/when we have other data games like this. Nothing untoward intended.

          1. 2

            Nothing untoward intended.

            I think a straightforward promise like “We will not use the email for anything other than these two purposes now or in the future” would build more trust, assuming you can make it.

            1. 0

              Personally I trust no one when providing an email address. Anyone can say “we will never spam you”, but then send you a bunch of annoying marketing emails that are impossible to unsubscribe from or sell your email to other companies etc.

              That’s why I use services like AnonAddy (https://anonaddy.com/) and/or a domain catch-all address. It makes it less concerning to share my email because each app/vendor/company gets their own unique email address with zero setup. For example:

              haukkah-of-data@mycooldomain.com
              or
              xYuvoTx9jRv2gt0Mk6H3@anonaddy.me
              

              This allows you to not only know who sold your email, but also to disable aliases you no longer want to receive emails on, in case they get too spammy or irrelevant.

        1. 2

          The project looks really nice, but whenever I look at trailer data I reach for pandas with the occasional plot, which suffices for my needs most of the time. While I like the idea of VisiData a lot, it’s value just doesn’t seem to justify learning how to use the software for me.

          1. 5

            I dunno, it’s pretty easy for basic use cases: arrow keys, Shift+F for freq table, ‘q’ to quit. Seems like it would be less effort to try it out than to post a comment about why it doesn’t seem worth it to try it out.

            1. 3

              I use VisiData to massage csv and excel files before importing them elsewhere. Best tool I found so far for this use case.

              1. 2

                Thank you for VisiData. I’ve only discovered it in the past 18 months, I’m certainly no expert user, and the 45 minutes I’ve spent squinting at youtube demos and cheatsheets has conservatively saved me 3 or 4 days worth of scripting against crappy CSVs and workbooks.

                Also, I feel like, lurking somewhere around the corner, I could integrate this with the django shell and similarly shorten my approach to getting data into a form I can help business people manipulate and use. I think I’m super close to finding that path but not there yet.

                1. 1

                  This could be pretty easy, depending on how the django shell is designed. Ping me if you’d like to talk or try to bang through it some afternoon!

            1. 1

              I recently added a CAA to my open-source project, because I want the ability to re-license the project, both to potentially offer a paid dual-licensing option for companies who can’t stomach GPL3, or to eventually change from GPL3 to e.g. MIT if I want to be more permissive. It surprised me to realize that accepting an outside contribution of any size taints my legal authority to create additional licensing options, despite the fact that only 2-3 people have written 99% of the code. A DCO would do absolutely nothing for me in this case.

              1. 4

                Well, accepting contributons doesn’t affect what licensing options you have for your code, you just can’t do whatever you want with someone else’s code. You could remove it if you need to

                1. 1

                  Right, but that gets complicated when the code is intermingled. If someone submits a 5-line patch to implement a minor feature or fix a bug, I appreciate it, but if it’s going to make the project more difficult for me to work with in the future, then it’s not worth it. Hence the CAA.

                  1. 3

                    The key point with copyright is that it applies only to creative works. For example, if you underline a word in a book then you have probably not created a new copyrightable derived work. If you fix some typos, the same applies. Small bug fixes in code typically fall in the same category. Whether a 5-line patch would be subject to copyright is not a clear-cut rule, but it’s quite likely that it would not.

                    When LLVM was relicensed, the first step was getting the people responsible for most of the code to agree. The next step was auditing the remainder of the code and either rewriting large things or determining that small things were not subject to copyright.

                  2. 1

                    Generally correct. But if you accept contributions under a copyleft license and then modify or extend in a way covered by that copyleft license, it will affect your licensing options for your new code.

                    1. 2

                      Of course. Code that you are only legally allowed to write because someone else licensed their code to you must abide by the terms of their license. So to patch out their code you would have to patch out any code that you derived from their code, since it is in part theirs. Only your code is yours.

                  3. 2

                    A DCO would do absolutely nothing for me in this case.

                    Yes, but that isn’t the point, right?

                    There is a significant number of people who simply won’t agree to copyright assignment exactly due to the “benefits” you mention. So you are missing out on their contributions, that may be totally fine for you, but there is the difference between a CLA and a DCO.

                  1. 6

                    Funny I was literally just writing down this kind of list for a presentation I had to make for one of my courses.

                    This is what I wrote:

                    • CPU :: Everything is a memory address
                    • Unix :: Everything is a stream
                    • Lisp :: Everything is a symbol (as in ‘symbolic computation’)
                    • Erlang :: Everything is an actor
                    • Prolog :: Everything is a relation
                    • Haskell :: Everything is a function
                    • Mathematics :: Everything is a set
                    1. 10

                      Lisp :: Everything is a symbol (as in ‘symbolic computation’)

                      In lisp, everything is a cons cell, an atom (‘symbol’), or nil.

                      CPU :: Everything is a memory address

                      On a CPU, there are usually two or three types of operands (depending on if RISC or CISC): registers, immediates, and (only on CISC) memory operands.

                      Memory operands are composed of a combination of registers and immediates. The point being that you take a value which is nominally an integer and treat it as a memory address in a specific context. So I don’t think it’s very useful to say that everything is a memory address.

                      Unix :: Everything is a stream

                      Streams are a very important part of unix, but they’re not the totality. In the unix programming language, functions are called ‘processes’ and data comes from ‘files’ (though “stream,” as you call it, is perhaps the clearer word). Data and data structures are (arguably) more important than the transformations we define on them, but the process model is an indisputably an integral part of unix.

                      Haskell :: Everything is a function

                      In untyped lambda calculus, everything is a function. Haskell has types, as well as laziness and boatloads of other junk.

                      Mathematics :: Everything is a set

                      I think this one is the truest, if perhaps also the most literal.

                      1. 3

                        Nice, thanks for diving in. I knew some were inaccurate as I wrote them but got the general idea across, I should have added tcl’s ‘everything is a string’, I think that holds up pretty well.

                        1. 1
                          Mathematics :: Everything is a set
                          

                          (or a category or a type)

                          (although at least type theory really rejects the idea that everything is X, by explicitly saying that ⊤ is different from ⊥, and ne’er the twain shall meet)

                          (I don’t know about category theory)

                        2. 5
                          • APL :: Everything is an array
                          1. 3

                            Smalltalk :: Everything is an object

                            Pascal :: Everything is a procedure

                            Plan 9 :: Everything is a file system

                            1. 1

                              Mathematics :: Everything is a set

                              And all sets are categories.

                              1. 1

                                Matter and pattern is what the universe is made of, these words are etymologically related to the words ‘mother’ and ‘father’ for a reason.

                                Math represents one with elements (in sets) and the other with morphisms (in categories). One implies the other as we know, so the universe is built on circular reasoning :)

                                1. 4

                                  Your etymology is highly suspect, as is all reasoning derived from it.

                                  1. 0

                                    You don’t like to have fun? I think this is a nice perspective and it has given me something so I figured I’d share it..

                                    I agree that it’s all ‘highly suspect’ - I wouldn’t base any important decisions on such “reasoning” ;)

                                    But at least for ‘pattern’ we have ‘patron’ as a root which comes from ‘father’, with such old words it’s hard to make any strong claims.

                                    1. 1

                                      Nothing you say is accurate.

                                      1. 1

                                        Nothing you say is substantial.

                            1. 13

                              The way to think about VisiData is: imagine the core functionality of Excel Pivot Tables were written by a UNIX & command-line hacker with a love of Python, plain text formats, good CLIs, and rich/visual command-line tools, like htop and vim. Take that as a starting point, and then imagine the hacker took the concept very deep and wide. That’s VisiData. It’s a pretty cool project.

                              1. 8

                                Wow, thanks Andrew. I’ve put a lot of thought and love into VisiData and it is so heart-warming when someone really gets it. I’m proud to be called a hacker (in the design sense and not the security sense of course :)

                              1. 3

                                I’m adding (what will hopefully be) a smooth history-diving workflow to vgit, to help track down when sheet joins were broken in VisiData. If anyone wants to play with an experimental git TUI (or help design), I’d love to get some feedback!

                                1. 4

                                  I’m a bit surprised at all of the people rushing to defend Rick. Should the situation have never gotten that far? Sure. Does that absolve Rick from being very bad at his job? Not at all. Especially if you read some of the followups (e.g. Why Rick couldn’t come back from the brink), he was afforded ample opportunity to not be an asshole martyr.

                                  Are we so attached to the solo hero coder idea that we can’t help but defend it even when it’s as toxic as Rick is?

                                  1. 7

                                    I wouldn’t call the comments here as defending Rick as much as trying to be more critical of the author, who chose to exemplify his firing of an employee as an example of good management. I mean, it’s in the freaking inflammatory title: “We fired our top talent. Best decision we ever made.” Would you expect that to be the statement of a well-meaning, constantly-reflecting leader?

                                  1. 9

                                    Somehow this article had very little actual content or advice.

                                    1. 4

                                      I think the advice is pretty clear. Stick to something until it is finished, and don’t let your mood dictate your work schedule if you are building something.

                                      1. 1

                                        Nothing is ever finished.

                                        1. 2

                                          Nothing is ever finished.

                                          That’s why you stick to something.

                                          1. 1

                                            You also need to learn to, in the words of a now-famous new-generation Disney princess, “let it go, let it go.”