1. 27

    This is beautiful, could it be archived as something like lobste.rs/bbs or something after April Fools' is over?

    1. 18

      It lives at https://lobste.rs/bbs for now, and the home page has reverted back to normal

      1. 2

        Is there any way to view the Hacker-News-styled site that was shown for April Fool’s in 2013 (screenshot)?

        If not, could we have one? lobste.rs/hn probably wouldn’t be a good URL, because you would need sub-URLs for every other page on the site. How about an hn query parameter, so you can see the HN prank version with ?hn=true ?

        1. 4

          It was mostly just a custom stylesheet but there have been changes to the HTML since then so the stylesheet would probably need updating, which is more work than I care to do to preserve that ugly thing.

        2. 1

          Thanks so much, and is there a way to participate in discussions through that interface?

          1. 3

            There was not, I ran out of time.

            1. 2

              Is the source on github online somewhere? I can’t find it in the official repos.

              1. 3

                It is not. I’m not sure whether I want to publish it or not since it was largely a creative effort rather than technical and I will probably just publish a writeup on my site about the technical details.

              2. 1

                Ah ok. Any plans to add that functionality? It’s the only reason I am using this beta site.

          2. 2

            Agreed! Fantastic job. I would love to come back and mess around with this in the future.

            1. 2

              Agreed. This is really fun and cool. … no way for a guest to get read-only access, but I guess that’s historically accurate.

              1. 9

                You actually can get access by logging in as guest with no password, which is also historically accurate. :)

            1. 2

              I’m looking at making my Go micro-framework a little better: https://github.com/dougblack/sleepy

              I’m also thinking about how to add identifier-based semantic coloring to Vim: https://medium.com/p/3a6db2743a1e/

              1. 3

                One thing that stands out as a little awkward is the syntax for defining a dict.

                => {"dog" "bark"
                ... "cat" "meow"}
                ...
                {'dog': 'bark', 'cat': 'meow'}
                

                I would think the pairing should be more explicit:

                => {("dog" "bark")
                ... ("cat" "meow")}
                ...
                {'dog': 'bark', 'cat': 'meow'}
                

                This would actually fall in line with the pythonic way of converting a list to a dict:

                >>> b = [('dog', 'bark'), ('cat', 'meow')]
                >>> dict(a)
                {'dog': 'bark', 'cat': 'meow'}
                

                Regardless, the quickstart is actually a pretty nice little introduction to lisp for python programmers.

                1. 1

                  The syntax is very similar to Clojure:

                  http://clojure.org/reader (see the maps point)

                  What I found surprising is that they’re actually implemented as association lists (not Python dicts). To get keys you have to do something like this:

                  (defn dict-keys [d]
                    (slice d 0 None 2))
                  

                  I couldn’t see that in the stdlib so I’ll probably submit a pull request and find out :)

                  1. 2

                    Nevermind, they eventually get compiled down to Python dicts:

                    => (.values {1 2 3 4})
                    [2L, 4L]
                    => (.keys {1 2 3 4})
                    [1L, 3L]
                    

                    I was confused before because I had a raw HyDict via a macro :(

                1. 2

                  If I was going to upgrade my python 2.7 project, why wouldn’t I just take the time to move all the way to python 3.4?

                  Adding intermediate versions seems like it would slow adoption of python 3+, not speed it up.

                  1. 3

                    One of the more approachable things I’ve read on how to configure Vim as a beginner.

                    One thing that I keep wondering about and can’t find an answer to: What does g do in Vim? It seems to be a part of a bunch of vaguely-related commands. Is there some general theme for what it does, or are there just a bunch of commands that you have to remember are g-something?

                    1. 4

                      Open vim and type :help g and you’ll get a detailed description of the commands.

                      1. 3

                        Yeah, the trouble is that it’s kind of a pain to navigate the help until you get a good understanding of Vim. Luckily, I have a copy of the helpfile as a PDF.

                        For what I wanted to know, it looks like there isn’t much of a theme behind the g commands, or the other prefix characters. No wonder people get so fired up about Vim vs Emacs - seems you need a lot of time invested in either one to use even a fraction of their features, and it’s all useless on the other one.

                        1. 3

                          Agreed regarding the time investment needed to get up to speed on Vim, but g is most definitely a special case.

                          g is a “kitchen sink” of sorts where a bunch of unrelated commands have been stuck because on a QWERTY keyboard it’s a very easy-to-reach key.

                          That said, the two most common uses of g can be thought of as goto and global.

                          For goto, things like g10 take you to the 10th line.

                          For global, this is taken from vim help:

                          :[range]g[lobal]/{pattern}/[cmd]
                                  Execute the Ex command [cmd] (default ":p") on the
                                  lines within [range] where {pattern} matches.
                          

                          So it’s a way to apply a command to multiple lines.