1. 27

    I use https://protonmail.com. I wanted a Gmail alternative that was private and fully encrypted. I pay for the plus model so I can use my domain, I did not want the hassle or expense of a self-hosted model. I have been completely happy with Protonmail. I have used them since they were in beta.

    1. 7

      Yes, +1 for ProtonMail. From the small research I’ve done, they’re the most secure email provider. I also use my own domain.

      1. 5

        ProtonMail is great. The search function is a little bit slow, but since its encrypted at rest it kind of has to be.

        There are a couple of features that are great. The one I get the most use out of is having multiple address connect to the same email account. I have several email addresses, one for personal use, one used for signing up accounts, one for newsletters (or other noisy notifications), one scoped to projects, etc.

        There is also ProtonMail’s Bridge that gets around some of the security issues with IMAP/POP creating a connection over TLS, which then locally runs a IMAP/POP server on your machine.

        They have also had their OpenPGPjs (A opensource PGP impl in JS) library audited.(1)

        2 major caveats for anyone who is considering an encrypted email service is that

        1. Email is inherently insecure. It is hitting protonmails server in plain text possibly without StartTLS.
        2. You are probably going to forfeit some functionality for the this feature.

        1: It wasn’t directly them, more the community around OpenPGPjs, which they are part of. I’m also unsure of the original ownership of this project, but that can get muddied with opensource sometimes.

        1. 3

          I also use protonmail, no particular complaints about it.

          1. 3

            I have the Visionary plan and seamlessly migrated my email to them - including my whole archive which goes back about 13 years or so, once the bridge was out.

            It’s a very nice and simple web client, and the apps are good enough that they just work for my parents.

            Overall, I like it very much.

          1. 3

            Finishing up a small parser for map files to try and figure out if there’s a correlation between function addresses and apparent performance issues due to caching in an embedded device.

            1. 1

              If you’re doing java or c#, I’ve used Quartz(.NET) with success. It’s XML configured but it’s bearable once you learn it, and it has a bunch of different failure handling modes which comes in handy when doing real things :-)

              1. 1

                A bit of a mess, although I’ve still to try to work with something as good as WPF, it has some magic but MVVM seems to be the less worst of the UI patterns.

                1. 3

                  Enjoying the final weekend of my holidays for this time. Going to go to Guggenheimer and MoMA tomorrow and doing a bit of build your own adventure on Sunday before I jump on the plane home to Denmark.

                  Any cool tech museums in NYC that isn’t Intrepid? :-)

                  1. 2

                    I’m just about to fly out to Calgary to visit a friend.

                    So continuing my Canada adventures, which so far has been a few days in Toronto and then on the Canadian to Vancouver… I’ll have to get back at some point :-)

                    1. 3

                      I’m traveling Canada this weekend. On vacation, and going to jump on the train to Vancouver late Saturday evening. I’m checking out Toronto until then.

                      1. 2

                        This is one of my go-to sites: https://www.interaction-design.org/literature/book/the-encyclopedia-of-human-computer-interaction-2nd-ed and they also have courses.

                        Obviously, UI/UX/HCI is a huge area, so if there’s a particular focus (what kind of UI? for what purpose? etc.) that you have, I can make more specific suggestions.

                        1. 1

                          For now I’m just trying to get a general idea and to get to know what to ask about. Thank you for the link.

                        1. 5

                          For all command line needs, go with Gow, Gnu On Windows.

                          For the very limited exposure I’ve had with Ubuntu on Windows, it was pretty good.

                          Is it a requirement that the IRC client is open source? If not, have a look at mIRC.

                          I think that Windows 10 comes with OpenSSH by default now, see this https://www.bleepingcomputer.com/news/microsoft/heres-how-to-enable-the-built-in-windows-10-openssh-client/

                          1. 3

                            Thanks very much I hadn’t heard of GOW. I’ll check out mIRC.

                          1. 1

                            I’m being a good son and took my mum to London with me, as I was going over to attend the friday nights Taylor Swift concert.

                            So no programming this weekend.

                            1. 2

                              Do I like to code, I suppose that I like to code. If I wasn’t getting paid, I probably wouldn’t code much, if any at all.

                              I have transitioned from viewing code as a goal, to viewing code as a tool.

                              To me this means that I’ve started to think a lot more about the design and how to improve code just by design, and to make it hard/impossible to do things wrong by design, where as I would’ve skipped ahead and started to code previously and figure out a design based on the prototype.

                              I guess it goes back to the fact, that I’m much more of an engineer than most of the people I know in real life, and I just happen to do ICT instead of Mech or Civil, and that I’ve done a lot of different things to make money - and that’s really the end goal to me.

                              I work to live and not live to work, and as such I tend to optimize towards least amount of time spent, earning as much as possible.

                              This of course means I need to have a certain level of work provided, so I do keep myself up to date and try out new techniques, but I do that strictly in paid time.

                              To end this, I like to think I have a professional approach to this, I take pride in my work but I don’t let work define me.

                              1. 1

                                I am somewhat successfully using them at my current work.

                                We are a small team though, we’re 5 in my team, and ideally we like to finish it in >10 minutes - two minutes per person, one minute for what you did yesterday and one minute for what you’re going to do today and if you can see any challenges.

                                The one minute for yesterday is a small retrospective, to try to reflect on whether what was said yesterday was somewhat correct, in the sense, was the prediction of what was going to be hard correct or not?

                                I think there’s some value in it, but it’s nothing that wasn’t already available by a short daily status meeting prior to SCRUMification.

                                1. 3

                                  More Scala finding its way into Java. Now they just need some more immutability, deprecate the null keyword and removed checked exceptions. :-P

                                  1. 2

                                    Deprecating null… Well, C# is attempting it, so Java will probably get it in 5 years time ;)

                                  1. 3

                                    I’m playing around with porting the RxSwing library (https://github.com/ReactiveX/RxSwing) to work on RxJava 2.

                                    Work wise I’m making a custom sort routing which is locale aware for C strings… The wonders of working on an embedded device without a full C standard library.

                                    At least I’ve gotten to brush up my C++ for the test code - and props to CppUTest for being by far the best c++ unit testing framework I’ve tried so far.

                                    1. 1

                                      Still working on rewriting a Swing Java App from old school button handlers does it all into a MVVM approach.

                                      For fun, I saw an article here about building your own kernel for the Raspberry Pi - as I have a few lying around, I figure I’ll try that out.

                                      1. 4

                                        Is there someone who can elaborate on why it’s seemingly a need to be able to block headless browsers from accessing sites?

                                        1. 4

                                          I’m speculating, but I suspect it’s to do with verifying that the client is driven by a “real human” for advertising and tracking purposes.

                                          Edit I followed some links and found this article:


                                          Quoting from the second section:

                                          Why detect headless browser?

                                          Beyond the two harmless use cases given previously [doing tests or taking screenshots of webpages], a headless browser can also be used to automate malicious tasks. The most common cases are web scraping, increase advertisement impressions or look for vulnerabilities on a website.

                                          1. 2

                                            Thank you for the elaboration gerikson.

                                            So it’s basically a few attempts at making it slightly harder to use a headless Chrome to do bad stuff. It just seems like it’s on the wrong level the attempt is being made.

                                        1. 2

                                          Looking into JavaFX, to see if it’s usable for a refresh of a UI in a Java program. Is there other frameworks out there for Java that’s more MVVM centered? (… possibly something like WPF but for Java?)

                                          Also working on more automatic testing for the handsets - it’s growing into a nice little system by now which can simulate a user.

                                          1. 2

                                            I’m reading a book about PostgreSQL - “Mastering PostgreSQL in Application Development” by Dimitri Fontaine - it’s to get a refresher for my SQL as I haven’t been using it for a while, and I hope to learn some of the newer features of SQL, I’ve been quite inspired by reading Markus Winands Modern-SQL.com site.

                                            In the fiction department, I’m about to read Dan Browns latest Robert Langdon book - Origin

                                            1. 21

                                              The fundamental problem with USB-C is also seemingly its selling point: USB-C is a connector shape, not a bus. It’s impossible to communicate that intelligibly to the average consumer, so now people are expecting external GPUs (which run on Intel’s Thunderbolt bus) for their Nintendo Switch (which supports only USB 3 and DisplayPort external busses) because hey, the Switch has USB-C and the eGPU connects with USB-C, so it must work, right? And hey why can I charge with this port but not that port, they’re “exactly the same”?

                                              This “one connector to rule them all, with opaque and hard to explain incompatibilities hidden behind them” movement seems like a very foolish consistency.

                                              1. 7

                                                It’s not even a particularly good connector. This is anecdotal, of course, but I have been using USB Type-A connectors since around the year 2000. In that time not a single connector has physically failed for me. In the year that I’ve had a device with Type-C ports (current Macbook Pro), both ports have become loose enough that simply bumping the cable will cause the charging state to flap. The Type-A connector may only connect in one orientation but damn if it isn’t resilient.

                                                1. 9

                                                  Might be crappy hardware. My phone and Thinkpad have been holding up just fine. The USB C seems a lot more robust than the micro b.

                                                  1. 3

                                                    It is much better, but it’s still quite delicate with the “tongue” in the device port and all. It’s also very easy to bend the metal sheeting around the USB-C plug by stepping on it etc.

                                                  2. 6

                                                    The perfect connector has already been invented, and it’s the 3.5mm audio jack. It is:

                                                    • Orientation-free
                                                    • Positively-locking (not just friction-fit)
                                                    • Sturdy
                                                    • Durable

                                                    Every time someone announces a new connector and it’s not a cylindrical plug, I give up a little more on ever seeing a new connector introduced that’s not a fragile and/or obnoxious piece of crap.

                                                    1. 6

                                                      Audio jacks are horrible from a durability perspective. I have had many plugs become bent and jacks damaged over the years, resulting in crossover or nothing playing at all. I have never had USB cable fail on me because I stood up with it plugged in.

                                                      1. 1

                                                        Not been my experience. I’ve never had either USB-A or 3.5mm audio fail. (Even if they are in practice fragile, it’s totally possible to reinforce the connection basically as much as you want, which is not true of micro USB or USB-C.) Micro USB, on the other hand, is quite fragile, and USB-C perpetuates its most fragile feature (the contact-loaded “tongue”—also, both of them unforgivably put the fragile feature on the device—i.e., expensive—side of the connection).

                                                      2. 4

                                                        You can’t feasibly fit enough pins for high-bandwidth data into a TR(RRRR…)S plug.

                                                        1. 1

                                                          You could potentially go optical with a cylindrical plug, I suppose.

                                                          1. 3

                                                            Until the cable breaks because it gets squished in your bag.

                                                        2. 3

                                                          3.mm connectors are not durable and are absolutely unfit for any sort of high-speed data.

                                                          They easily get bent and any sort of imperfection translates to small interruptions in the connection when the connector turns. If I – after my hearing’s been demolished by recurring ear infections, loud eurobeat, and gunshots – can notice those tiny interruptions while listening to music, a multigigabit SerDes PHY absolutely will too.

                                                        3. 3

                                                          This. USB-A is the only type of usb connector that never failed for me. All B types (Normal, Mini, Micro) and now C failed for me in some situation (breaking off, getting wobbly, loose connections, etc.)

                                                          That said, Apple displays their iPhones in Apple Stores solely resting on their plug. That alone speaks for some sort of good reliability design on their ports. Plus the holes in devices don’t need some sort of “tongue” that might break off at some point - the Lightning plug itself doesn’t have any intricate holes or similar and is made (mostly) of a solid piece of metal.

                                                          As much as I despise Apple, I really love the feeling and robustness of the Lightning plug.

                                                          1. 1

                                                            I’m having the same problem, the slightest bump will just get it off of charging mode. I’ve been listening to music a lot recently and it gets really annoying.

                                                            1. 2

                                                              Have you tried to clean the port you are using for charging?

                                                              I have noticed that Type C seems to suffer a lot more from lint in the ports than type A

                                                          2. 6

                                                            It’s impossible to communicate that intelligibly to the average consumer,

                                                            That’s an optimistic view of things. It’s not just “average consumer[s]” who’ll be affected by this; there will almost certainly be security issues originating from the Alternate Mode thing – because different protocols (like thunderbolt / displayport / PCIe / USB 3) have extremely different semantics and attack surfaces.

                                                            It’s an understandable thing to do, given how “every data link standard converges to serial point-to-point links connected in a tiered-star topology and transporting packets”, and there’s indeed lots in common between all these standards and their PHYs and cable preferences; but melding them all into one connector is a bit dangerous.

                                                            I don’t want a USB device of unknown provenance to be able to talk with my GPU and I certainly don’t want it to even think of speaking PCIe to me! It speaking USB is frankly, scary enough. What if it lies about its PCIe Requester ID and my PCIe switch is fooled? How scary and uncouth!

                                                            1. 3

                                                              Another complication is making every port do everything is expensive, so you end up with fewer ports total. Thunderbolt in particular. Laptops with 4 USB A, hdmi, DisplayPort, Ethernet, and power are easy to find. I doubt you’ll ever see a laptop with 8 full featured usb c ports.

                                                            1. 2

                                                              I just finished reading What If?: Serious Scientific Answers to Absurd Hypothetical Questions by Randall Munroe, which is a delightfully absurd book.

                                                              I also just placed a book order and I’ll get the following books to read soon:

                                                              Michael Sikorski “Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software” Abelson, Harold “Structure and Interpretation of Computer Programs, 2nd Edition (MIT Electrical Engineering and Computer Science)” Zalewski, Michal “The Tangled Web: A Guide to Securing Modern Web Applications” Seitz, Justin “Gray Hat Python: Python Programming for Hackers and Reverse Engineers” Perry, Brandon “Gray Hat C#”

                                                              So a pile of different technical books to play along with and a single fiction book:

                                                              Brown, Dan “Origin: (Robert Langdon Book 5)”

                                                              I’ve loved the previous 4 installments in the series, so I had to pick up the newest one as well :)