1. 3

    if you want to see them with counts, and no whitespace at the front or end, then there’s this terrible one-liner:

    sort **/*.hs | sed 's/^[ \t]*//;s/[ \t]*$//' | sort | uniq -c | sort -k 1,1 -g
    1. 1


      1. 2

        Aaronson comments on it at the top of this post: http://www.scottaaronson.com/blog/?p=3389

        1. 6


          > 2min * 3hours
          1. 2

            What answer did you expect?

            1. 6

              I think I’d expect it to report the result in either min² or h². It’s not wrong per se, but to take a non-time example, I think if I gave you dimensions of a road in terms of how many meters wide and km long it is, and then asked for the surface area of the road, I’d expect an answer in either m² or km², not m·km.

              edit: Having actually read the help, it looks like it does support this, but only if you request the result in specific units. Otherwise it just naively compounds the units of the input. One of the examples in the help is that 6Mbit/s * 1.5h -> Gb gives you 4.05Gb. But if you type just 6Mbit/s * 1.5h, you get 9Mbit·h/s; it doesn’t attempt to simplify the units by default.

              1. 1

                Update: I discovered that there is already a GitHub issue for this wishlist item.

              2. 1

                i’d expect an error, because it doesn’t make sense. (note that you get an error with 2min * 3hours -> min)

                1. 3

                  You get an error on the latter one because the unit you get from multiplying two times together is [time]², not [time]. If you instead ask for 2min * 3hours -> min², there’s no error.

                  Granted, squared time on its own doesn’t have a physical meaning, but it appears frequently in other expressions. For example, this works correctly: 1kg * 32miles / (2min * 3hours) -> N.

            1. 9

              A number of times I’ve signed up on a site where the account can’t be logged into until the verification link comes through e-mail, and the e-mail either never arrives or comes with significant delay (20-60 minutes). If I had to go through that every time I logged in, I would not use that site.

              1. 4

                That was the kind of insight I was blind to and looking for from writing this article. Thanks =)

                1. 1

                  even if you rarely logged in, because the site allows you to stay logged in?

                  1. 2

                    Some people choose not to stay logged in to every site all the time. Either by logging out when done, or just blunt daily cookie clearing.

                    1. 1

                      If we’re starting a list of people who clear their cookies regularly, I’m on it. Irregularly, but on average every other day or so. Cookies accumulate a lot of tracking information very fast, so it’s only reasonable to wipe them regularly.

                1. 5

                  Not 100% satisfied with battstat so I’m thinking about refactoring the code to add printf(1) style formatting instead of space delimited replacement tokens.

                  I finally got around to setting up a blog (Ghost running on docker) but I’m not sure how much or how little information I want to share on it, and what topics to cover. Getting in the habit of writing more was my intention so we’ll see how long it lasts.

                  1. 2

                    battstat is cool; thanks!

                  1. 2

                    at work i’m trying to finish writing a proposal.

                    at home i’m trying to make progress with the tensorflow-haskell library, but i’m not having a great time, and i’m getting a bit overly frustrated by it.

                    i think i need to relax and take a bit of break.

                      1. 7

                        There’s a lot of name-calling: imbecile, crackpot, etc. Wish the author could couch their skepticism in polite terms. I get it - over the years there have been all sorts of disproven free energy machines or what have you. THIS one has yet to be disproven, so I’d not go around slinging that language just yet.

                        If someone is able to figure out what is the cause of the force they measure, it may be interesting. But I can’t find enough motivation to spend a minute with this stuff because I am confident that whatever will be the actual reason why they think that they’re seeing a reactionless force, it will be dumb.

                        For now we have observations that do not fit existing knowledge, so why not investigate rather than dismiss? That’s all. I’m confident that they’ll figure out the mechanism of force generation as well, but I’m not as certain that it will be a ‘dumb’ reason. It may fit existing knowledge in some way, but show a novel application - which is totally ok. The point of the device AFAIK is not to prove ‘everything you know is wrong’, but rather ‘this might be useful, though we don’t understand how it works yet’.

                        Sadly news reporting tends to go towards the sensationalist ‘everything you know is wrong’ angle all too much, which perhaps the author is reacting to. I don’t know. But until we understand this EM drive I don’t see good reason to prance around calling everybody involved with it idiots.

                        1. 2

                          Disproving very simple things can take a lot of effort. However usually something valuable is learned if it isn’t simple instrument error. A gap in understanding here, an important fact there, and rarely a fundamental part of physics. Light wasn’t found to be a wave until someone was willing to do the dumb experiment to show how dumb it was to think that light could be a wave. Poisson really thought it was the STUPIDEST thing to insinuate. Sure this is very likely not that situation we are presently in but if we never tested we’d never actually know.

                          A little wiki excerpt. “Poisson studied Fresnel’s theory in detail and, being a supporter of the particle theory of light, looked for a way to prove it wrong. Poisson thought that he had found a flaw when he argued that a consequence of Fresnel’s theory was that there would exist an on-axis bright spot in the shadow of a circular obstacle, where there should be complete darkness according to the particle theory of light. Since the Arago spot is not easily observed in everyday situations, Poisson interpreted it as an absurd result and that it should disprove Fresnel’s theory.”

                        2. 2

                          fwiw, lubos is not particularly well respected in the physics community, so i wouldn’t consider him a good source of information.

                        1. 8

                          I fell in love with Pocket Ref and want to do something similar, targeted for travel fun.

                          It’s meant to be a reference manual for all things you can do to avoid boredom. The idea is that you travel with this tiny manual everywhere and can discover new games and things to do, especially without your phone. From kids games, card games, to conversation topics and a meditation tutorial.

                          The idea came to me after spending a weekend in a mountain cabin with my wife where we decided that we wouldn’t waste “idle time” playing phone games. We revisited some board games, explored around, looked at the night sky, and spent hours with insightful conversations you don’t usually have at home.

                          I just started, but I’ve already compiled some games and things to do. I’d love to get new ideas, especially from all around the world. I’m in Spain which has some unique kid games and card games, and I suppose all countries in the world have their own. It would be amazing to include games (though not only games) from all around the world.

                          I’m totally open to contributions, just drop me a message or an email!

                          1. 2

                            This might work better as a poll/questionaire-with-a-single-question, which then you compile the results. I would buy that for $12.

                            1. 1

                              My goal is to self-publish it as a pocket book that you can physically bring with you (plus ebook for those who want search and more). $12 is a reasonable price, I was thinking of that exact price range depending on costs, build quality and end result.

                              I can prepare a questionnaire once it’s on a later stage, it can benefit a lot from having traditional games from all around the world – though I’ve already done some research and most of them are pretty similar!

                              Thanks for your support!

                            2. 2

                              sounds fun to me!

                              1. 2

                                For stargazing, please include a constellation map!

                                1. 1

                                  Oh, hadn’t thought of that. Thanks for the suggestion, much appreciated!

                              1. 3

                                hopefully having some interviews this week :)

                                also with any luck i’ll release a little poc dashboard thing that queries the bitbucket/confluence apis via haskell and loads them up in the jupyter dashboard project thing!

                                also, probs be doing a bit more work around the fp/haskell conference some friends and i are organising here in melbs; probs around august-september. maybe some of you other melb lobster peeps will come along!

                                1. 5

                                  melbourne, australia

                                  1. 4

                                    i’m trying to use the bitbucket api via haskell/wreq to make a jupyter dashboard thing using ihaskell. the hardest part is figuring out how to actually authenticate to the bitbucket api! it’s not the worlds friendliest…

                                    1. 4

                                      getting a new job!

                                      if anyone has a cool haskell/ml/ai job in melbourne or really anywhere in the world let me know :)

                                      1. 11

                                        maybe some people aren’t aware, but forking is actually useful even if you never want to change the project, but you simply don’t want it to one day disappear on you. this is important when, say, specifying them as submodules or dependencies in your own projects.

                                        this has happened to me personally before, and hence i now fork any project i’m interested in, as opposed to starring, so i know that it will always be accessible (as long as i keep my account; but this is something i am more in control of).

                                        1. 44

                                          Having not seen this on lobste.rs yet, I decided to submit it so as to head this off at the pass.

                                          Reading the proposition on their website, it’s pretty clear it’s a bad idea:

                                          • They save your shell history on their servers. Strike one.
                                          • The data is encrypted at rest, but … this means bashhub can still see all your shell history. Strike two.
                                          • Why would you want to save your shell history “in the cloud” I mean really

                                          But thanks to the power of Open Source!!!, we can look a bit further. And the results are horrifying:

                                          • Authentication rate limiting is done in the client.
                                          • (The installer no longer initiates a PyPI download over HTTP and extracts+executes without checksum, opening you up to a MITM) Someone’s paying attention ;) Not as of today.
                                          • Their password reset form takes a username and tells you the email address of the user if it exists.
                                          • They publish statistics of your private shell usage.
                                          • Why should that matter? The only authentication needed to search a user’s shell history is their user ID.
                                          • The user ID is a plain Mongo ObjectID.
                                          • With a known timestamp (and ability to construct your own user IDs just by registering), there’s only about 24 bits of ‘entropy’ left in the user ID. Except those 24 bits are the counter, which is sequential.
                                          • tl;dr: it’s probably true that anyone else can see all your shell history, too!

                                          Just reading the source will find more, and I’ve barely spent an hour looking at this. I’m sure the (currently closed-source) server has a lot more, but honestly it’s depressing to think about.

                                          Fie. Stay away. etc.

                                          1. 8

                                            While I don’t argue that history on a hosted site is a bad idea by default, and doubly so when we consider all the terrible issues you listed, I wanted to reflect on one part of your comment: “Why would you want to save your shell history “in the cloud” I mean really

                                            I have a shared history, and I love it. Context, host, timestamp, exit code and all that, easily searchable. I do a lot of trial & error research on throw-away hosts, and having previous history is very useful there.

                                            1. 3

                                              I’m curious as to how you set this up!

                                              More to the point: throw-away hosts? What kinds of things are you hosting? My question stems from my working at a web agency: I work on a lot of different hosts, often from several different clients in a single day, but I can’t think of an instance where I’d be doing similar things on different hosts and wanting that history available to use.

                                              (Maybe one case where I’d want this: one of my clients uses EC2 scaling groups. Usually the instance I debug on yesterday doesn’t even exist today. That gets mighty annoying.)

                                              1. 6

                                                I use throw-away hosts to reproduce issues customers are facing, and once the host is no longer needed, it gets purged from existence. I burn plenty of hosts a week, but the knowledge I gain by doing stuff on them is something I want to keep. I work from Emacs, pretty much all the time, including ssh'ing into the target systems.

                                                I capture all commands, and save them on my workstation, where Emacs runs from (this is trivial with eshell and a bit of emacs lisp). So, I have a single, unified history, with timestamps, output, exit code and whatnot. I have a small script that parses this and pushes it into ElasticSearch, and I can query that from Emacs again to have easy and convenient access to it. I also have a key combo that captures the last command, and allows me to tag it, or even turn it into a snippet I can paste later and fill out the blanks. This also gets indexed by ES.

                                                The global history and the capture file is in git, and I clone it whenever I need to work on a different machine: for example, if I work from home, I just git pull the stuff, and run a reindex in the background to update ES on my home PC. It would be trivial to set up ES on a VPN, but it is faster if my searches are local.

                                                There are probably better, more efficient ways to set this up, but this has worked remarkably well for me so far.

                                                1. 1

                                                  Any chance you have a link to the implementation of this? This sounds incredibly useful!

                                                  1. 1

                                                    I plan to share the setup at one point, but it will take some time.

                                                    1. 1

                                                      Have you done much with org-babel? I’ve considered using it for “executable” playbooks, similar in some ways to what you describe, though with your stuff, the creation of playbooks becomes almost trivial, as you can look back on and edit out the right commands…

                                                      1. 1

                                                        No, haven’t yet. I am fairly new to Org, and while org-babel is on my list of things to explore, I have not been able to play enough with it yet.

                                                  2. 1

                                                    I was going to say that a poor man’s version could be increasing your history limit to 10,000 and setting up a .bash_profile to do something like git commit + push on your history file on every command.

                                              2. 8

                                                this is shockingly bad.

                                                1. 4

                                                  I was kind of hoping it was intended as a parody, TBH.

                                                  No such luck.

                                              1. 23

                                                “It’s the world’s tiniest open source violin”


                                                1. 4

                                                  So what’s the alternative to GitHub that we should be using?

                                                  1. 14

                                                    Phabricator. It’s used successfully by Wikimedia, LLVM, FreeBSD, Blender, and many more communities. A bot to help bridge would be great (e.g. submit a pull request on Github, the bot creates a Phabricator review and directs the submitter there).

                                                    1. 1

                                                      Side note: anyone using Phabricator know of a good Not Rocket Science testing system? I’m a little new to it still and am not sure how to make Revisions work how I want.

                                                    2. 13

                                                      Gitlab. Open-source, with a hosted option if that’s the service you need, but open-source so you can run it yourself, or pay someone else to, and contribute changes if you need them.

                                                      1. 1

                                                        I’ve run a small/mid-sized project on here for the past few months, and I’ve been quite happy with it. Does everything I need, except the primary gitlab.com instantiation does not allow commenting over email, though this can be enabled for private installs.

                                                      2. 9

                                                        IMO, BitBucket is superior to GitHub in every way except for CI/CD integration. Which I believe they are working on. It’s still possible to at least kick off jenkins jobs and what not but it’s a bit janky and there is no feedback yet. Otherwise, I find BitBucket to be very well done.

                                                        EDIT: I’m responding to the above from a feature/quality perspective. Not based on the xkcd cartoon.

                                                        1. 8

                                                          Bitbucket recently got CI status integration. As an Atlassian employee I’ve seen some really cool Bitbucket and CI integration being used internally. I’m sure some of this slickness will be shown using public projects soon.

                                                          1. 2

                                                            you can’t even search in repositories in bitbucket online.

                                                            why do you prefer it?

                                                            i use both, and find bitbucket mostly worse in most web user experience: no searching, can’t see sources vs forks easily, dashboard shows repos and not activity of people you follow as primary thing (i use this on github a lot).

                                                            1. 2

                                                              The two things you mention are two things I basically never use. Most of the repositories I interact with are ones I’m using locally and have in my various tooling already and most of the programming I do is in organizations where forks aren’t really useful at all. BitBucket has robust branch permissions which I make more use of.

                                                              The Pull Request system, which is my main use for any tool like this, is significantly superior to GitHub’s for my usecases. It has Reviewers, real Approve buttons, and Tasks, all of which I use a lot. I don’t really care about the social/activity aspect that GitHub is aiming for, I mostly care abotu a tool around development, which I find BitBucket does a lot better. I also have to use GHE at work which I find very aggravating to use.

                                                          2. 7

                                                            Set up your own server. Use a mailing list for reviews.

                                                            1. 7

                                                              I used self hosted gogs for a bit, but ended up returning to github because I missed the social/community features. Sure, they technically exist on gogs too, but who’s going to sign up for my gogs instance just to say post an issue, or star/what/whatever it?

                                                              1. 2

                                                                One can use cgit and use email for reviews. No need to create an account. Although the barrier of entry may be a little bit higher as not many people use git format-patch/apply-patch, this is more an issue familiarity than something inherent to the process. I like it more than github’s pull requests as it is easier to go back and forth.

                                                                1. 1

                                                                  For open-source projects with outside contributions/contributors, dead right. For my purposes though gogs is ideal. I’ve been using it for personal projects for a few months. Works well enough that I moved all my private repos from Github onto it and saved myself cash money. Fast, simple and regularly updated, often with nice new features that so far have all seemed pretty well-tested and working. For my v low-complexity requirements, natch. YMMV.

                                                                  1. 2

                                                                    If it’s for private repos, why not just have bare git repositories on an ssh server?

                                                                    1. 1

                                                                      Well, sure, in terms of raw git operations, no reason - but private repos can still have multiple contributors, and even single-contributor projects can benefit from organisational tools like the issue tracker, milestones, wiki for notes, etc. Mostly though I just like the UI, the graphical, easily-click-through-able display of a range of projects at a glance, and the visual diffs are simple and easy to get at. Sure, none of this is anything Github/Bitbucket/etc doesn’t do, but it does all the bits that I need and like, well enough for me, for free, on my server.

                                                                2. 3

                                                                  I agree that there’s no shortage of OSS GitHub alternatives out there, and most of them work really well.

                                                                  What kills me is the lack of a hosted free-software alternative to Google Groups. I have a couple projects on librelist.com, but it’s been down for almost a month now, and I haven’t gotten a response about what’s up. Hosting your own mailing list is really easy to screw up.

                                                                  1. -4

                                                                    Well you did not host your own mailing list.

                                                                3. 1

                                                                  Kallithea, although it desperately needs a larger community of contributors to add features like pull requests and CI integration.

                                                                  1. 1

                                                                    I see no one has mentioned Launchpad yet. Launchpad supports git repositories now, and they’re improving it steadily. The Launchpad blog has info on their progress.

                                                                    Keep in mind that I work for Canonical, who started Launchpad and who employ everyone I know of who works on Launchpad development (I’m not really up on who’s doing what, though). There are other organizations who use LP, e.g. Openstack.

                                                                    My own opinions of LP are mixed. I like it, and I used it heavily for a couple of years, but eventually moved to git, and moved off to mostly use GitHub, back before LP added git support.

                                                                    LP’s bug tracking is more featureful than github’s issues. There are lots of other features that may or may not be useful, such as PPAs, translation support, blueprints, etc etc.

                                                                1. 1

                                                                  last time i mentioned i was looking at deploying a yesod with docker; i’ve since figured that out in a pretty nice way; but might revisit it in light of say - http://www.yesodweb.com/blog/2015/12/yesod-hosting-docker-kubernetes; but in any case, i learned some stuff that might be worth posting one day.

                                                                  for now i’m still working on my secretive yesod project. i keep adding features, so i need to wrap those up and hopefully deploy it sometime next month.

                                                                  1. 2

                                                                    and some private forums. that’s about it.

                                                                    1. 2

                                                                      i’m spending a lot of my free time figuring out how to deploy a yesod thing to some docker image; it’s proving more annoying than i anticipated, but at least i might get an article about how to do it out, after i’m done!