1. 2

    Can you elaborate a bit more? Social sector + data / analytics is pretty vague. For example:

    • Senority (junior / medior / senior)?
    • Availability (part-time / full-time)?
    • Remote (willing to relocate)?

    More info is insightful to give tips about where to look for a job. Based on the little available info, I’d guess Itility might be something?

    1. 1

      thanks! sure, definitely: senior, full-time, we’re moving to the UK so remote or local is fine :)

    1. 1

      it’s nit-picking; but you do use conditional logic in the lookup of the dictionary. (a dictionary basically says “if this, return that”).

      in any case, i really like the math part! :)

      1. 2

        Technically, dictionary can be implemented without conditional logic, so it doesn’t actually use it. Alternatively, you could use an array instead of dictionary.

        1. 2

          another way to see it is that there is literally an if statement in the mathematical definition.

        2. 1

          Fair! In this case, I’m using the dictionary like a conditional. But generally speaking I’m not sure I see key-value lookup as always analogous to conditional logic. some_array[3] returns the element at index 3 of an array, but we mostly don’t think of it as if index==3 return {element-at-index-3}… though you could choose to look at it that way.

          Reminds me of another favorite fizzbuzz (Ruby version):

          ->(n){ [[["Fizz"][n%3],["Buzz"][n%5]].join].find(->{n}){|str| !str.empty? }
          

          which also doesn’t directly use conditionals, but they are present… :D

          1. 1

            to continue rambling; one way view it in my mind in a mathematical way is that if you have if-statements your function is only piece-wise differentiable; whereas if there aren’t any, it’s differentiable everywhere.

            clearly, we could imagine functions that are differentiable everywhere as involving if-statments, but it’s not super useful.

        1. 4

          Lots of people seemed to like this:

          https://news.ycombinator.com/item?id=22910702

          However I tried watching it last night and failed. I watched the first 10 minutes on psychoanalysis, which oddly concludes with him dismissing the whole endeavor as false. Then I skipped to the part on programming languages, and watched 10 minutes of that and heard a lot of stereotypes about languages, mixed with some of the psychoanalysis stuff, and got bored.

          I think it could be fun to view programming languages through the lens a “false” paradigm, but I expected some more insight the languages themselves, which I didn’t find.

          1. 2

            to me it also seemed to breakdown basically immediately in the programming section

            he says that in javascript, the fact that “1” + 1 is defined means there is “less rules” in javascript. that, for example, isn’t necessarily true at all. i.e. just because more things are valid doesn’t mean there are less rules.

            i think the overall the idea of this kind of talk; a new way to characterise programming languages via psycoanalsis, is interesting, but i didn’t get much out of what i watched.

          1. 2

            i like it

            i think one change i’d think about is a properties section, where people can start embedding various meta-data, such as what “shelf” the book is on (read, to-read, never-read-again, etc).

            1. 1

              neat idea, done well! :)

                1. 2

                  someone pointed me to it after I made this spreadsheet, looks awesome

                1. 2

                  in particular, one that i’m often wondering about, is what’s a funky way to manage, say, running a script to spin up a website, and the browser to interact with it. it’s crazy that it should take two screen locations for this. maybe someone has come up with a cool hack along these lines? also interested to know any cool things you’ve done!

                  Could you explain in more depth?

                  (I’ll reply to this with my xmonad when I’m on the pc that has it, or I’ll just edit this post.)

                  1. 1

                    yeah, sorry, it wasn’t a great explanation :)

                    the main scenario is this:

                    1. i’m writing some javascript app; and i need to run npm run dev, or similar. it stays open, and tells me about errors.
                    2. i click around in the app; and i make code changes. arguably, i only need two windows allocated for this task. if i happen to use an ide, and have it set up well, i can do it with just two; getting all my errors via the ide somehow. but suppose i don’t do that, then i need 3 windows.

                    one (not great) solution i often think about, is having 3 windows, but have the one with the errors be really small, most of the time, and then allow for it to be increased, as i have the will to read the errors.

                    this is such a common pattern for me across so many languages and environments, that i’m thinking there has to be a good way to solve it within the window manager. either kind of saying “this window is the child of that”, and then having that relationship determine who is bigger; and using that idea to kind of push those two independent windows into one “region” within the xmonad window manager.

                    does that make more sense?

                    it’s just the idea that in almost all my dev, i have some windows that are clearly less important, and thus should be small, and perhaps even invisible, until such time as i want them. (for example, with some of my other projects, i just move the window to a “dead” workspace, that i never look at, and then i’ll occasionally have to drop back and look at it, if the error is beyond my ability to fix by guessing why my app didn’t update.

                    1. 2

                      I have two ways of doing this:

                      1. Making my server/error/debug terminal a floating window, adjusting the size to something comfortable, then simply raising it above and lowering it below my browser/ide/both with a ‘toggle to raise/lower’ shortcut when I need it.
                      2. Not assigning my terminal window to any workspace/group, then hiding it completely, and when I need it I search for it and bring it to the foreground using window title search shortcut, then hide it again. If I have many similar terminals, I give it a label using ‘label window’ shortcut before hiding it.

                      I use cwm, but I’m sure something very similar is possible in xmonad or i3.

                      1. 2

                        interesting thoughts.

                        i kind of like your idea of perhaps a window that is nowhere, and then bringing that to the fore with a quick search. i might have a bit of a think of a cool way to do that.

                        maybe that, combined with the window coming to the foreground as floating-only, and taking up, say, just some space at the top or the bottom of the screen, temporarily. that could be really neat.

                  1. 13

                    I use Hakyll. It’s written in Haskell and is completely programmable. It’s actually more of a framework for writing static site generators. That said, there are example codebases that you can get started with. It supports all your desires.

                    1. 3

                      I use Hakyll, too, but it’s complete overkill for me. And I’m not deep enough in Haskell any more to do much development on it, so I’ve been considering moving to something else.

                      I still endorse Hakyll, fwiw, but its strength lies in either: 1- leveraging your existing Haskell knowledge, and/or 2- generating sites that are far more complex than most personal sites/blogs.

                      1. 4

                        I still endorse Hakyll, fwiw, but its strength lies in either: 1- leveraging your existing Haskell knowledge, and/or 2- generating sites that are far more complex than most personal sites/blogs

                        It’s also fun to spend more time programming your blog than writing blog posts.

                        1. 1

                          Late to the party, but you might be interested in rib.

                          Why? Because by using rib, you will automatically learn Shake which it is built on top of. Compared to Hakyll, rib is relatively simple to use.

                          Disclaimer: I’m the author. :-)

                          1. 1

                            i use hakyll and i’ve used it to also teach myself odd bits of haskell.

                            i like how extensible it is, and i’ve occasionally used it to add various bits and pieces

                            the main downside w.r.t. github is that you have to commit all the generated artefacts; which is definitely a shame.

                            i’ve not done too much funky stuff with it; but on my companies website i’ve used it to build some (very simple) features, such as lists and specialised rss views, next/previous blog post buttons, etc.

                            it’s not the most elegant code; but gets the job done.

                          2. 3

                            hakyll here as well

                            1. 2

                              Great to see you’re blogging (again), Pavlo!

                            2. 2
                              1. 1

                                Hakyll too. It’s simple if you only want to convert text into HTML, however, if you want something more advanced be prepared that you might spend more time figuring out how to implement this instead of writing.

                                I’m also using supplementary python scripts and relying on external means (e.g. jupiter/emacs) to generate HTML too, I shared my setup here

                              1. 2

                                Company: Neighbourlytics

                                Company site: https://www.neighbourlytics.com/

                                Position(s): Senior Software Engineer, CTO

                                Location: Melbourne, Australia

                                Description: Neighbourlytics is building a platform that harnesses a wide range of data to enable citymakers to better understand, compare, and analyse neighbourhoods worldwide, with the overall goal of supporting the development of more life-filled neighbourhoods and cities.

                                The Head of Analytics has been building a product to help with this, but needs the support of a senior software engineer to take responsbility for all the aspects of engineering; from the tools and technology, to deployment, monitoring, data management and pipelines, and overall technical strategy and direction.

                                They’re interested such cool things as Elm and Haskell. Most of the code is in Python presently, but they’re very open to doing things differently. There’s lots of cool engineering problems to solve here, and lots of interesting work around spatial analysis, urban planning, and the intersection thereof.

                                You can find more details (and apply) here.

                                Contact: The job form above (mention lobsters!), or alternatively feel free to PM me here; or email me at noon@neighbourlytics.com.

                                1. 7

                                  From everything that I see on the sidelines, organizing community speakers in the tech scene seems really hard. I hear about people with really big heads, as well as people who then like to use their perceived clout to take advantage of others, professionally or otherwise. Then you’ll be getting people who have had to deal with this and are then jaded about it, and then the MRA and other trolls who will react, etc. Obviously this isn’t everyone, but yeah - seems really hard. I don’t envy organizers.

                                  1. 8

                                    I’ve organized community-run software conferences (read: not paid for by any one company or consortium) with 100 to 1,700 attendees yearly or more for seven years, and other events for 150+ people yearly since 2002, save one year that I took off to focus on finishing college. I’ve had a few things go awry but nothing ever this detractive, and hopefully I never will. I (really, we) take lots of precautions and stay up to date on the news around the events community.

                                    The thing I ask the most of everyone involved – organizers, attendees, speakers, sponsors, vendors, security guards, union convention center workers, everyone – is to be kind. You can be firm. You can be loud or quiet. It’s difficult to understand all of the moving parts that make a conference happen. It’s difficult to empathize when something seems to be on fire. Assume the best intentions. Thank someone every chance you get. Criticism should be constructive or remain factual and kind when you have no suggestion to offer. Above all else, be kind.

                                    1. 8

                                      We did a mistake. We did not take enough precautions. People that worked with me knew about other issues that this people had. This year I wasn’t in the details of checking every speaker. I should have asked people if the speakers had any big issue with anybody before.

                                      1. 3

                                        don’t blame yourself; any other day and in any other situation your actions would be reasonable.

                                        1. 0

                                          This might be a stupid idea but have you considered re-engaging these (obviously hostile, childish) people and asking them what would satisfy them? Could there be some kind of compromise or would they only accept re-enstatment as a conference speaker and your sincere apology🙄🙄🙄?

                                          It might be crazy to consider “giving in” like this but I wonder if maybe they might be more reasonable with face-to-face dialogue. AFAICT it’s probably harmless to try.

                                          1. 1

                                            Sure, we did think about that and we are still trying to do it. I have no problem to “give in”. I only want this to stop and continue doing productive things. On the long run with the legal justice I think things will get better. In the meantime: https://twitter.com/unbalancedparen/status/1131214746731077632

                                        2. 2

                                          This makes sense. And I wouldn’t be surprised if most conferences don’t have this behavior, the news is only filled with news-worthy things (so I only hear about the bad cases). It sounds like you treat this thoughtfully, which is really awesome.

                                      1. 2

                                        a related website is guesstimate - https://www.getguesstimate.com/models/13218 - where you can combine estimates, by way of sampling and simple functions. it’s pretty neat.

                                        1. 2

                                          Hub, this is a really cool website. Not because it is particularly technically challenging, but because it is so simple. I won’t claim to know anything about the future, but I have a strong mental image of a world where the computational statistical advances we’ve seen in ML have triggered a complete statistical revolution. This tool is straight out of that world. The only thing I haven’t seen is some sort of Bayesian relationship. (come to think of it, it might be there only I haven’t read the fine manual.)

                                        1. 5

                                          maybe not quite right, but just to get things started, i really love these two tools by my friend:

                                          it’s especially neat because they work together really nice. the commando code is probably too long for a t-shirt; but these days it could be shortened down.

                                          1. 4

                                            The clothes look nice! Did you write somewhere how you got into it? Or how the process of creating a shirt works? I’d be interested in reading more about this topic, not sure if there is a lot of discussions about this so if you have any related links, please do share them.

                                            1. 3

                                              thanks! :)

                                              for the shirt-creating process, i don’t know for sure, but i believe it’s done with dye-sublimation - https://en.wikipedia.org/wiki/Dye-sublimation_printer - and PAOM also says they do “slow-fashion

                                              as for how i got started; the first one i made was the dance one; it came about out of an art project i did at my old job, related to dance.

                                              from there i kind of just started finding cool images, tracking them in github, and attempting to reproduce them

                                            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

                                                amazing!

                                                1. 2

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

                                                  1. 6

                                                    weird:

                                                    > 2min * 3hours
                                                    6h·min
                                                    
                                                    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.