1. 3

    At my company, people just send in a link to their project repo that is hosted somewhere like GitHub or Gitlab.

    Is it common to ask for a zip of a project?

    1. 2

      Of course, there are many more use cases for this feature than simple code interview submissions, and additional features I haven’t described.

      Don’t want something on a public repo, don’t want to deal with adding a token/key to a private repo for a third party, email.

      1. 1

        Is it common to ask for a zip of a project?

        Today at work I got several zips of a project.

        Git bundle will be useful if I still don’t have everything I need tomorrow.

      1. 2

        Not nearly as sophisticated as hand crafting software but it brought me back to my highschool days, when I loaded a rootkit onto the Novel server in the corner of the lab (on a floppy disk) to give myself admin access. The teacher in the opposite far corner, other kids busily doing their Mavis Beacon typing program.

        1. 5

          Thinking about distributed sqlite lead me to https://github.com/rqlite/rqlite which seems to have been doing it for a while, looking pretty cool.

          TL:DR Its etcd for sql.

          1. 3

            And the k3s Kubernetes distribution uses sqlite instead of etcd.

            1. 1

              Correct link.

              1. 1

                You accidentally linked to k2s instead of k3s.

                1. 1

                  How do I ask an admin to fix this? I can only delete the comment now.

              2. 3

                An interesting and somewhat unique distributed sqlite system is actordb: https://github.com/biokoda/actordb. Looks like it’s designed as a large number of small ‘actors’, where each actor is a replicated sqlite database: http://www.actordb.com/docs-howitworks.html

              1. 14

                Would be nice if this post could be more about the 2038 issues than about twitter.

                1. 2

                  Was just thinking that, every time an article twitter stream is shared more than half the comments are on the medium. While I agree its distracting I also think taking issue with the medium is not unfounded. People often take issue with the medium, be it too many ads, bloated, or some other issue. If something distracts from the content then it is an issue.

                1. 2

                  Great article, should be required reading before taking part in FOSS. Really understanding that there’s a human at the end of the chain is more valuable than any bullet point in a CoC, though I appreciate that one is shorter to read.

                  1. 1

                    I’m running Nextcloud, Plex, mpd, Transmission, Samba and some Apache pages off a Raspberry Pi 4. I have some shell scripts I run in cron to transfer Transmission downloads to my Plex and Nextcloud directories.

                    1. 2

                      Transmission as a server? Hmm, never thought about that! So, you have some config for that client that is set up and you can just remote into it (using some auth) and then you wouldn’t have to do that config for each client. Is this correct/close? If so, neat!

                      1. 1

                        Yeah, the transmission-daemon package can be configured to expose a browser-based interface to remotely add and manage your torrents, behind a simple HTTP auth dialog. When I’m sitting on my couch with friends and someone wants to watch something, I’ll search a torrent tracker, grab a magnet link, log into the Transmission interface and queue up the download from my phone. When the download completes, a script pushes the files to the directory Plex looks at, so the whole process is very quick. I’m working on a way to make this system redistributable because I think it’s a great use case for low-power toy computers like the Raspberry Pi.

                        1. 1

                          Think its always a client/server model, just depends on what client you use, gui or browser.

                          From their website - web client

                      1. 1

                        VPS(s):

                        • primary/backup mail based on caseonia
                        • contacts/calendar with baikal (can do shared calendars)
                        • couple static websites
                        • a wordpress site I am dying to kill
                        • git instance

                        Home:

                        • Syncthing (pi attached to large drives, have a second at another location)
                        • router does dns filtering like a pi-hole but with pf.
                        1. 4

                          Is this in direct response to https://lobste.rs/s/v7vzjv/smoke_testing_rust_http_clients ?

                          Edit. I see its been happening for a while, but perhaps the highly shared article was the last straw.

                          1. 8

                            Klabnik implies that the reaction on Reddit to that article was indeed the last straw…

                            1. 4

                              This is the last line in that article too. :(

                              No crate maintainers were harmed in the making of this article.

                          1. 2

                            Perhaps not applicable to meetup’s (unless the format permits) but whenever giving an internal demo/talk at work I include prerequisites beforehand that must be met to attend. Documents to have read, software to have setup etc as I don’t want to be wasting other peoples time by addressing one persons issues.

                            Tangentially related, you might enjoy this book https://www.goodreads.com/book/show/354105.In_Defense_of_Elitism

                            1. 59

                              Update: been working on a better approach to these problems that leave affected users feeling less put-out. I’ll be starting with a better email template in the future:

                              https://paste.sr.ht/~sircmpwn/3d32eb7bbc564170c3d30f041e5e8dc71aa5a1c6

                              In the future I’ll be working on better automated soft limits, so that users aren’t surprised by this.

                              @sjl: after thinking it over more, I was unprofessional and sarcastic with you. I apologise.

                              1. 41

                                I think it would be beneficial for you to take on the mindset that your users’ use cases are always valid, by definition, as a premise. Whether or not your service can handle their use cases, maybe not, but this idea that you know better what your users should be doing is not going to accomplish your goals.

                                As another example, I happen to need 2-3 more GiB RAM than the sr.ht freebsd build services offers at the moment, and have offered to up my monthly donation to account for the resource usage, and you’ve turned me down, on the grounds that I’m fundamentally abusing computer hardware in some moral way. As a result, Zig freebsd builds have many of the tests disabled, the ones where the bootstrapping compiler is a bit memory hungry. Zig’s FreeBSD users suffer because of this. And as a result, when someone else offers me a different FreeBSD CI service with more RAM, I’m ready to accept it, because my use case is valid.

                                1. 6

                                  Could linking with the boehm conservative gc work as a stop gap? I think it won’t require any code changes.

                                  1. 4

                                    Something Andrew doesn’t mention here is why he needs 2-3 GiB more RAM: because, by design, his compiler never frees memory. Nearly all of that RAM is dead memory. In order to accomodate this use-case, I’d have to provision dedicated hardware just for Zig. Sometimes, use-cases are wrong, and you need to correct the problem at the source. Just because someone is willing to throw unspecified sums of money at you to get their “use-case” dealt with doesn’t mean it’s worth dealing with. I have finite time and resources and maybe I feel like my time is better spent implementing features which are on-topic for everyone else, even at the expense of losing some user with more money than sense.

                                    1. 44

                                      even at the expense of losing some user with more money than sense.

                                      I really hope you change your tune here. Insulting users is pretty much the worst thing you could do.

                                      Another thread recently talked about the fact that compilers don’t free memory, because the goal of a compiler is to be as fast as possible, so they treat the heap as an arena that the OS frees. Compilers have done this for 50+ years—zig isn’t special here.

                                      1. 4

                                        I didn’t mean to imply that Andrew doesn’t have sense, but that the hypothetical customer-thats-always-right might not.

                                        As for compilers never freeing to be fast, utter bollocks. So the compiler should OOM if I have <8G of RAM to spare? Absolutely nuts. Freeing memory is not a performance bottleneck.

                                        1. 38

                                          Your reasoning is sound, your wording and phrasing choices are not. In what I’ve read you don’t come off as witty when you’re dealing with a paying customer and telling them they can’t do something which I also think is unreasonable, you come off as a dick. That’s how it appears. I don’t have any problems with you or your services and I think you working on this stuff is awesome… but I wouldn’t pay for insults in addition to whatever else you might provide.

                                          1. 5

                                            As long as I’ve known him Drew has pretty consistently been like this. It’s not a bad thing. It’s quite refreshing actually.

                                            1. 36

                                              It’s refreshing to have a business make fun of you?

                                              1. 9

                                                It’s quite refreshing to see someone willing to say ‘no you’re wrong’ instead of the typical corporate ‘the customer is always right’ bullshit so many people here have obviously come to expect.

                                                Sometimes the customer is wrong.

                                                1. 34

                                                  It’s OK for both people to be right, and the customer to stop paying for the service and walk away. It’s then OK for the customer to go tell people about how they were treated. Hopefully that happens more.

                                              2. 24

                                                As a former moderator in prior communities, I politely disagree. Folks that are never not toxic are a serious liability and require special effort to handle well. I recall one memorable day when Drew dared me to ban him; I should have let the emotions flow through me and removed him from the community.

                                                Also, as a former business owner, I politely disagree that this is good business practice.

                                                1. 18

                                                  I agree it’s good, now I know to avoid this business!

                                          2. 15

                                            CPU speed vs memory usage is a fundamental resource tradeoff that occurs all the time in computing. Just because you disagree with where on the spectrum someone has chosen to aim their design doesn’t mean they’re stupid. Especially when they too are a mostly-one-person project operating on limited resources.

                                            It’s PERFECTLY VALID to say “I don’t have time to accommodate this one special case, sorry”. It is NOT perfectly valid to say “you are stupid for needing this special case, go away”. Money vs. person-time is another fundamental resource tradeoff where different people have different priorities.

                                            1. 22

                                              Regardless of the use case, I’d really rather not have my SCM platform making discretionary decisions about what I’m working on. The users aren’t paying for you to audit them, they’re paying for the services provided by the software. If you want your service to come with the exemption that you get to unilaterally decide whose content is allowed and whose content isn’t allowed, you’re free to do that. Just expect the community to nearly unanimously respond with “we’ll go elsewhere”

                                              1. 7

                                                He’s not making ‘discretionary decisions about what [you’re] working on’. I don’t see Drew saying ‘you can’t use this service because I don’t like the way your compiler is designed’. He’s saying ‘provisioning dedicated hardware for specific projects is a lot of time and effort that I don’t have, so I’d need to have a really really good reason to do it, no matter how much money you’re willing to throw at me, and you haven’t given me one’.

                                                Every service out there gets to decide what is allowed and what isn’t. Look at the terms of service of any file or repository hosting service anywhere. GitHub, GitLab, Bitbucket, imgur, pastebin services… ALL of them make it clear in their terms of service that it’s entirely up to their whim whether they want to host your files or not.

                                                1. 32

                                                  Drew is literally commenting on a particular users project, and how its design is a problem, so I have no idea what you’re talking about:

                                                  Something Andrew doesn’t mention here is why he needs 2-3 GiB more RAM: because, by design, his compiler never frees memory. Nearly all of that RAM is dead memory.

                                                  As for compilers never freeing to be fast, utter bollocks.

                                                  @andrewrk can hopefully clarify, but I thought his offer to up monthly donations was to improve sr.ht’s FreeBSD offering, in general, not necessarily to only improve Zig builds (Zig builds would improve as a byproduct of improving the FreeBSD infrastructure). If the donations were only to be used to improve Zig-specific experiences, then I understand the argument that Drew doesn’t want to commit to that.

                                              2. 13

                                                It just seems weird to me that one of your criteria for whether or not to give a customer resources is based on a personal audit of their code. Are you going to do this for every customer?

                                                1. 4

                                                  I completly understand the concern here, and take it very seriously. I usually don’t dig into the repo at all and just reach out to the user to clarify its purpose. In this case, though, the repo was someone’s personal website, and named as such, and connecting the dots did not require much.

                                                  1. 2

                                                    As explained downthread, it’s “Alert fires -> look for what’s caused the alert -> contact customer whose repo tripped the alert”.

                                              3. 19

                                                You handled this very professionally and courteously, I plan to continue to use sh for many happy years to come.

                                                1. 6

                                                  You are under no obligation to explain or justify what your business model is to anyone, or on a personal level what self sustainability, your own peace of mind, well being or definition of meaningful sustainable work is.

                                                  There is a particular mode of doing business these days which people inside that paradigm often do not understand that they are inside and therefore apply force to get others to conform.

                                                  You’re breaking old paradigms and inventing new ways of running organisations and that is brave, ground breaking and commendable and politically powerful.

                                                  I hope issues like this does not deter you one bit from blazing your own trail through the fucked up world that is tech organisations in late stage capitalism and I hope you share as much as you can about how you’re doing personally and in ‘business’.

                                                  1. 2

                                                    git-lfs implementations often don’t allow to reclaim unreachable blobs: once you push a binary blob, even on a branch that you deleted, it will take some space forever.

                                                    Maybe it is worth investigating git-annex while you’re on this topic.

                                                    1. 6

                                                      Yeah, git annex is also something I intend to study. I’m only just setting up large file servers for blob storage, figuring out how to apply them is the next step.

                                                  1. 28

                                                    You need a fast internet connection

                                                    This is a common misconception; you don’t need a fast internet connection. What you need is a reliable internet connection.

                                                    1. 9

                                                      Yes and no.

                                                      Strictly as a developer - probably not.

                                                      As someone wielding docker images and vagrant boxes all day, maybe yes.

                                                      1. 2

                                                        As someone wielding docker images and vagrant boxes all day, maybe yes.

                                                        This has been a big issue of mine but it really got solved by CI, most notably gitlabci which is just brilliant! The ci workers do all of the image magic for you; not sure about vagrant boxes though, I’ve been fortunate enough to not be exposed to that yet.

                                                        1. 2

                                                          Although far from ideal, someone with reliable internet might be able to pull that off by using 3rd-party hosting w/ Gigabit Ethernet and TB data plan for the downloads, builds, and releases. Just sync up the lighter stuff, such as source files or outputs, to their machine. This way, a person in a poorly-connected area could get a high-paying job despite those bandwidth requirements with the tax being equivalent to another Internet bill. Maybe cheaper.

                                                          1. 2

                                                            Sure, if I have to choose between convenience and advocating/just paying for a beefy dedicated server that allows me to do my work, there’s usually ways around.

                                                            I’m just saying that I’d been sitting at home, twiddling my thumbs at times, even with 50Mbit down.

                                                        2. 6

                                                          You need a fast and reliable internet connection, and one doesn’t guarantee the other. Teleconfing on a slow internet connection is pretty bad, too.

                                                          1. 7

                                                            No, it’s perfectly possible to work remotely on a slow connection. I’ve worked from home for a year on ~15mbps down and ~1.5mbps up. It’s fast enough for the occasional video conferencing. Most team chat is over text, which has pretty low bandwidth requirements.

                                                            I’m not quibbling with the reliability part, and I have a backup 4G mobile access point for backup, on call, and to avoid trusting cafe WiFi.

                                                          2. 2

                                                            Not humble bragging, but I worked for ~six months on a 3/1mbps throttled 4g connection, and since upgraded to an amazing 5/1mbps directional 4g (wimax’ish) connection. I voice dialed into conference calls when on the 4g as I was also limited to 8GB of data a month and didn’t want to waste it on the call. Welcome to rural Canada.

                                                            For 95% of things this was perfectly fine, latency is generally far more important than throughput. Nick’s suggestion of a hosted VM would totally cover most of the remaining 5%, though I managed without by spinning up a pod in our Kubernetes cluster when I needed to do anything heavy against the cluster, which is faster than even the best connection.

                                                            As to the greater question of remote working, it’s more than simply asking dumb questions. You need to ask them and be comfortable with not knowing if people thought they were actually dumb, as you don’t get to gauge peoples reaction as well. The isolation can also lead to rather acute imposter syndrome.

                                                            Also I totally agree as to the work/life split that others have voiced, I get changed after work, and I don’t use my work laptop after work.

                                                          1. 3

                                                            Ironic that they want to use an anti GNU OS for their replacement for Linux as its not GNU enough.

                                                            1. 6

                                                              Beautiful Visualisations here. I wonder if using non-smart phones can help in anyway.

                                                              1. 3

                                                                According to the article the data comes from a company collecting precise movements using software slipped onto mobile phone apps. So maybe installing/using less apps helps somewhat…

                                                                1. 4

                                                                  After reading this, I deleted half the apps from my phone and disabled location services for most of the ones that were left.

                                                                  1. 2

                                                                    I would assume that disabling location permission for apps would also be sufficient. I can understand why maps needs my location, but not much else.

                                                                    That said, the article does say the weather channel was also at this, and I guess a lot of people would give this more trust as its a default app on ios.

                                                                    1. 5

                                                                      Yes and no.

                                                                      The wifi MAC address method is also becoming quite prevalent. If your phone has wifi just enabled it can be pinged. [1]

                                                                      Then over the cell network your signal can be triangulated.

                                                                      1. https://techcrunch.com/2019/05/22/mind-the-privacy-gap/
                                                                      1. 2

                                                                        True, thats what skyhook does as well. Interestingly (and this might show a conflict of interest within Google) Android has started using random mac’s for wifi. https://source.android.com/devices/tech/connect/wifi-mac-randomization

                                                                      2. 2

                                                                        the weather channel was also at this, and I guess a lot of people would give this more trust as its a default app on ios.

                                                                        Is it? I know there’s a weather app by default, but I thought the Weather Channel app was a separate download (not a regular iOS user here). I uninstalled The Weather Channel on my Android device after they were outed as scraping contacts and selling that off. No reason to install anything of theirs after that and now this as well.

                                                                  1. 7

                                                                    In addition to the base script (which was recently updated) I’ve added the following to block anything related to facebook.

                                                                    # Block FB
                                                                    for ip in `whois -h whois.radb.net '!gAS32934' | grep /`
                                                                    do
                                                                      echo $ip >> $tmpdir/fb
                                                                    done
                                                                    
                                                                    1. 3

                                                                      No need for the loop:

                                                                      whois -h whois.radb.net '!gAS32934' | grep / | tr ' ' '\n' >> $tmpdir/fb
                                                                      
                                                                      1. 2

                                                                        Thanks. Unfortunately I had to tone this down a touch as in addition to blocking facebook and instagram, it blocks whatsapp and this was seen as a step too far by members of my household.

                                                                    1. 2

                                                                      Article typo: “wireguard_tools” should be wireguard-tools.

                                                                      wireguard-go runs well on OpenBSD. Haven’t tried wireguard-rs. Anyone know if any devs are working on in-kernel support?

                                                                      1. 2

                                                                        Ta. https://git.zx2c4.com/wireguard-openbsd/ looks like its happening.

                                                                      1. 9

                                                                        Beautifully simple, and still more powerful than Slack.

                                                                        1. 3

                                                                          For what it’s worth you could do the same with a “Slackcat”. Or a simple curl to one of the many Slack webhooks. I don’t see how it is more powerful than Slack.

                                                                          If anything, this trick still involve running a network service written for the JVM. Not so simple when you think about it, just moves the complexity somewhere else than your scripts.

                                                                          1. 4

                                                                            With Slack webhooks, you have to manage credentials, make sure the tool runner has public internet access, encode arguments, all that stuff.

                                                                            Running a JVM network service is actually very simple, you tell your OS’s service manager how to start it and health check it (Solaris SMF could absolutely do this in 2009), just like any other network service at your company that exists only to run network services.

                                                                            1. 3

                                                                              My real gripe is, why is Slack better than this, why all the brouhaha about how slack was changing the way we work and saving the world when people have been doing this for years. Reading the comments on his blog/Reddit go further with several people with similar solutions that have been in use for years.

                                                                              1. 3

                                                                                the claim that Slack changes work was never targeted towards tech professionals – it’s about the average person, for whom chat apps were either difficult to use or had terrible UX. whether or not Slack has actually done that is a different question of course (on the whole I think yes)

                                                                            2. 1

                                                                              Still not as robust as MS Teams /s

                                                                            1. 2

                                                                              Going back to basics, mastering C. Some how I ended up programming full time in Go without having learned C first. Its not “sexy” but I think it’s worth knowing. End goal is to write a driver for my laptop’s touchpad. C first, then learning about hardware.

                                                                              1. 1

                                                                                I have two pi’s with hdd’s attached, one in my house runs a few extra services like nextcloud, minidlna and some odd and ends. Then I have syncthing syncing files from local computers to my local pi, and the local one to remote which is in another city.

                                                                                I used to run additional machines at home, when I had a stable connection and a static IP but am now rural so websites/git and some bits (like the reverse ssh so I can login to the remote pi) run on an OpenBSD vps with Vultr.

                                                                                I’ve been meaning to migrate email to the OpenBSD vps for ages. Seeing so many people doing just that means it is now my weekend project. Does anyone run a seconday mx?

                                                                                1. 4

                                                                                  It may go against the very idea of a smart phone (everything in one device) but my solution is two devices.

                                                                                  1. A Nokia 8810 with GerdaOS on it. Its an “OK” phone, has 4G, tether to it to work remotely and has bluetooth to pair headphones to listen to music (put a 32gb sim in with music) and make calls.

                                                                                  2. An ipod touch (happens to be latest model but older would be fine), its relatively cheap, you can use signal on it and all your other favourite apps.

                                                                                  This ways I get many of the benefits of a modern smart phone (and software updates) for a fraction of the price of a new phone, and I get a simple spyware free telephone. Normally I don’t want to be using smart apps on the go, if I am desperate there’s wifi or tethering.

                                                                                  edit. Also both devices are small and do fit in one pocket that a monster smart phone hardly fits in.

                                                                                  1. 2

                                                                                    So you do have a 8810 with GerdaOS.

                                                                                    You listed a couple of good features. I would be curious about your criticisms about it.

                                                                                    Also, the two-devices solution is something I like. As in Unix, each device can do one thing and do it well.

                                                                                    1. 3

                                                                                      Gerda is basically just stock KaiOS with the “extras” stripped out, and a couple fixes, like it allows you to tether if your carrier tries to block this, though my carrier does allow it so can’t vouch for this.

                                                                                      Pros:

                                                                                      • Expandable storage
                                                                                      • 4G
                                                                                      • Long removable battery (about a week)
                                                                                      • Decent bluetooth
                                                                                      • Inexpensive
                                                                                      • GerdaOS is bloat free
                                                                                      • You hang up by sliding closed. Actually Gerda tries to use the slider to add some additional functionality, there is basic app switching and ability to take screen shots based on slider position and other button presses.
                                                                                      • It has a flash light
                                                                                      • Has both wifi and usb tethering, usb tethering is nice as it charges at the same time, have worked all day like this.

                                                                                      Cons:

                                                                                      • Phone is not fast, I end up pressing a bunch of buttons and waiting for it to catch up, though this doesn’t affect answering calls so not a big deal.
                                                                                      • Keys are a bit hard to press but you get used to it
                                                                                      • Couldn’t figure out how to turn predictive text on at first, it works pretty well but texting is still a bit painful, for those I don’t have on signal, I usually just call them if its more than a few words.
                                                                                      • Camera is pants, you’ll be able to take a picture of the snake that bit you, but not if its too far away or dark out.

                                                                                      In line with the unix philosophy, Ipod touch camera isn’t great either, I have a real camera for taking photos.

                                                                                      1. 1

                                                                                        Does the 8810 support group texts / MMS?

                                                                                        Do you get repeated letters when texting as /u/johan described?

                                                                                        1. 1

                                                                                          It does do MMS, and group texts although the latter isn’t obvious. As for double typing, yes it can happen, you get better at typing over time. I used it to dial into a conference every day for ~7 months, and would sometimes miss type the code.

                                                                                          That said, I wouldn’t really recommende this phone if you are a serious texter, the keyboard is crap. I do most of my texting via signal on the other device (Its taken a while but I have slowly convinced most people I want to communicate with to use signal).

                                                                                          1. 1

                                                                                            What do you mean group texting isn’t obvious?

                                                                                            1. 1

                                                                                              IIRC you don’t see who else its sent to, perhaps that means its not fully implemented. Not something I use (have signal) so didn’t give it much thought

                                                                                              1. 1

                                                                                                And can you send group texts?

                                                                                  1. 9

                                                                                    Not to be that guy, but they didn’t list FastMail under GMail alternatives. I’ve used FastMail for a while, and it’s pretty cool. It’s also been around for a pretty long time, which makes me feel better.

                                                                                    1. 1

                                                                                      I have to say that it is not necessarily Email that I am after when it comes to Google alternatives. Email, after all, is one of the most insecure communications types in use (emails are stored on a server operated by people who are often unknown and untrusted to the user, they are often passed around between servers without encryption).

                                                                                      Upgrades to email are either not on point in terms of security, or inconvienient e.g. PGP has several key shortcomings 1) ugly 2) malicious “man in the middle” option, and confusing key exchange rituals and 3) people don’t really bother about [their] human rights.

                                                                                      Perhaps a new communications standard e.g. Bitmessage or something else will come up that can prove that it can improve the situation and kill email.

                                                                                      1. 1

                                                                                        I’m using mailbox.org.

                                                                                        Unfortunately, a while ago they killed their email support for non-business customers.

                                                                                        1. 1

                                                                                          mailbox.org is listed as a Google Calendar alternative but not e-mail, interesting. Are you satisfied with mailbox.org? I’m tempted to switch from fastmail.

                                                                                          1. 1

                                                                                            From the top of my head:

                                                                                            • SMTP works as expected
                                                                                            • don’t know how other services (CalDAV, XMPP etc.) work, because I don’t use them
                                                                                            • the web interface is unusable without JavaScript enabled
                                                                                            • all mails sent to @secure.mailbox.org will need to be delivered via TLS
                                                                                            • API is not available for non-business customers
                                                                                            1. 1

                                                                                              Been on mailbox.org for about a year, so far very happy. Particularly nice that I can have a shared calendar with my wife.

                                                                                          2. 1

                                                                                            +1 - their web interface is excellent and doesn’t hate partially blind people, and they’re super interested in standards compliance. Big fan.