1. 1

    TIL SCSI was used for things like scanners!

    1. 2

      There are plenty of older higher-end scanners who require a correspondingly old computer with SCSI and an older OS to run the software.

    1. 1

      And now I want to play contrived Super Mario levels with Boolean logic puzzles…

      1. 2

        I believe there is a video game where you can make and publish Super Mario levels, granted you can finish the level yourself.

        1. 3
        1. 2

          […] the payment card numbers were encrypted using Advanced Encryption Standard encryption (AES-128). There are two components needed to decrypt the payment card numbers, and at this point, Marriott has not been able to rule out the possibility that both were taken.

          Ouch.

        1. 3
          ena0: device is going UP
          ena0: for IO queue 0 interrupting at irq 8195 (MSI-X vec 1)
          

          So NetBSD turns out to have a driver for Amazon’s Elastic Network Adapter.

          I was lamenting the lack of such a thing for OpenBSD just the other day, only knowing of the Amazon-supplied FreeBSD driver as the next closest thing, but perhaps this would be even easier to port.

          1. 7

            I would consider, in order, pull requests, feature requests, bug reports, fetches, clones and downloads as metrics of engagement. Stars and forks are largely hype driven reactions.

            1. 1

              Thanks for the feedback.

              I agree with the metrics you would use, however, I don’t think that the fork-stars ratio would be easy to fake (via marketing). That’s the main thing I was trying to accomplish with this: easily weed out those repositories that have seen a lot of traffic but not a lot of engagement. While forks are hype-driven too, stars are much more so.

              Furthermore, I would be willing to bet that forks and pull-requests are linearly dependent on one another most of the time.

              1. 1

                All of these would be easy to fake, right? Github accounts are free, and so if there were some benefit to accumulating stars and forks you would expect to see people with bot farms selling stars (the same way people sell twitter or instagram followers).

                1. 2

                  We crack down on this kind of thing pretty hard; our anti-spam team is very proactive.

                  1. 1

                    Oh that’s interesting! I wouldn’t have guessed that there were enough incentives to bot farming on Github for that to really be a thing. If I might ask: what are people trying to do with their bot herds?

                    But either way, I think my point still stands: if Github is good at spam/bot detection, then stars and forks shouldn’t be any more or less forgeable than any of the things that kghose mentioned, right?

                    1. 2

                      what are people trying to do with their bot herds?

                      Honestly, I don’t even know; I do systems engineering over on one side of the org, whereas our spam team very much feels like “over there somewhere”. But I see their posts on the internal blog about what they do/trends in spammy activity and it’s like, woah, that’s some sophisticated stuff/some very neat tools they’ve put together to help in combatting it.

                      stars and forks shouldn’t be any more or less forgeable than any of the things that kghose mentioned, right?

                      Right. The only difference would be that spammy PRs/issues are very noticeable and often reported by third parties who see something weird going on, whereas I imagine it’d be less likely for stars/forks.

                2. 1

                  I would argue that actually forks are not often related to pull-requests.

                  I sometimes fork a repo just to “collect” it in a list and then, when I have time for it, look into it and maybe contribute.

              1. 2

                Some weird reverse-OCR bug turning “tt” and “fi” into “!” …?

                1. 2

                  pdf to text? They render as ligatures, but copy paste as !.

                  1. 1

                    I don’t know. I’ve seen two letters get turned into one symbol on at least two papers recently. On the other, it was multiple pairs of letters that did that. I fixed them before submit that time.

                    I didn’t think they were OCR’d but I don’t know what that looks like now. I know there’s a lot of use of non-PDF formats or applications in academic circles that get exported to PDF. The exporter (translator) could be the source of the errors.

                  1. 1
                    memset(ptr, sizeof(*ptr), 0);
                    

                    Shouldn’t this (the first snippet) be this instead?

                    memset(ptr, 0, sizeof(*ptr));
                    
                    1. 6

                      (that’s the point)

                      1. 4

                        I believe that is indeed the basis of the motivating example.

                        1. 1

                          One of the *sans, maybe asan with replace_intrin ? will catch this error.

                        1. 11

                          I like what this article is getting at, but find the emoji distracting. If the author sees this, please consider dropping the random emoji. They mess with the tone and delivery.

                          1. 1

                            I’m normally on Team Emoji, but they do really seem very out of place in this article, like a copy-editor went back and just threw some in after all the writing was done.

                          1. 10

                            When I first started working remote I also got really lonely. It’s a real thing that I think is overlooked too often. People fail to take into account how effectively being alone impacts your mental health. I found that chatting online and video calls just aren’t the same as actually being in the same room/space as people.

                            1. 4

                              I had the exact same experience and switching from home to co-working space changed everything. I felt that I had “colleagues” even if not working at all for the same company. I rediscovered that the “coffee time” wasn’t about coffee but about socializing.

                              I cannot stress enough that having a clear distinction from working space and personal space is really important.

                              1. 8

                                I have the opposite experience. I work remotely from my kitchen, and I can spend days without talking to or seeing anyone. No “cabin fever,” whatever that means. I kinda miss coffee table socializing, but only a little bit. In fact such socializing can be quite painful & awkward for me, and I’m glad I no longer feel the obligation to join up at a coffee table..

                                I checked out some coworking spaces and my employer said they’d cover the bills but at this point I don’t really see many benefits to it (they don’t even offer free coffee.. I’d reconsider if there was a good coffee maker that goes straight from beans to brew). There are definite downsides, such as the commute. And having to lug hardware back and forth if you don’t plan to always work from the coworking space.

                                Now, being lonely can be a problem but my experience is that obligatory lunch/coffee table time with coworkers doesn’t fix it. Time with family or good friends would fix it.

                                1. 3

                                  Very interesting to read someone having the opposite feeling and experience!

                                  I found that having to commute also helped to put rythm in my day and have justification for being in town and see friends before going back home. Isn’t it something that you miss?

                                  What your routine like? Do you wake up, have breakfast and stay in the kitchen the whole day for work? Or do you have a more fragmented day?

                                  1. 5

                                    What your routine like? Do you wake up, have breakfast and stay in the kitchen the whole day for work? Or do you have a more fragmented day?

                                    There are plenty of interviews posted on https://remotehabits.com/ with questions similar to these. I’m not affiliated with them. I just find the site useful enough to post a link.

                                    1. 1

                                      Thanks that’s a great resource to get new ideas and improve remote days!

                                    2. 2

                                      I have it somewhat similar to DuClare. I visit the place about once per week, taking with me an Intel Skull Canyon NUC, and that’s about the right frequency for me. Traffic jams, parking and people get on my nerves, even if I get over the awkwardness of meeting a subset of coworkers. No real life friends to speak of, too.

                                      I do not have any routine, other than a mild morning coffee. When I feel like it, I do 200 hours a month, when I don’t, I do way less and focus on personal projects. Life is short, don’t do what you hate.

                                      1. 2

                                        I found that having to commute also helped to put rythm in my day and have justification for being in town and see friends before going back home. Isn’t it something that you miss?

                                        No friends. Spending time in town was never really a thing for me. My onsite jobs have always been on the outskirts of town or in the middle of nowhere (e.g. in a monastery). When I had to commute to town (for school), I’d always head straight home anyway.

                                        What your routine like? Do you wake up, have breakfast and stay in the kitchen the whole day for work? Or do you have a more fragmented day?

                                        I get up at around 8:55 am, get dressed, brush teeth, sign in on work laptop at 9:05 or so and start working, with a cup of coffee. I might go out and buy something on the lunch break, or I might quickly grab something from the fridge and maybe take a little nap afterwards. Lunch breaks end up taking 45 to 60 minutes. I log out sometime around 17:30, give or take 15 minutes. It’s been a very regular routine so far.

                                        It works pretty well, though I’d like to get in the habit of starting a little earlier (8:00-8:30), keep the lunch break under 45 mins and get more of that evening for myself.

                                      2. 3

                                        For the cost of a months membership you can get a pretty amazing coffee setup at home.

                                        I order green beans online (dirt cheap and they keep for years), then roast (40 minutes every few weeks), and grind (this is the most expensive part; spend $300 or more on the grinder).

                                        After that an aeropress or stovetop espresso maker is fine (comparable automatic machines cost many hundreds).

                                        1. 1

                                          Man, the difference between what they call coffee at work and my basic coffee machine with decent beans… I can’t drink that disgusting shit at work without sugar. And they’ve already changed both the machine and the coffee beans supplier. I just don’t understand.

                                    3. 3

                                      Agreed. I’ve been working full-time remote for almost four years now. The first year was great. But since then, I’ve noticed a distinct loneliness about it, and I miss interacting with my co-workers more directly. It certainly isn’t for everyone. That said, it has allowed me a great deal of freedom to live exactly where I wanted to live, and I wouldn’t trade that for the world.

                                      In the meantime, I’ve recently started co-working at a local co-working facility, and I enjoy getting out of the house a few days a week. It makes a big difference.

                                      1. 2

                                        This is my experience too. I’ve been remote for a little more than 2.5 years now, and I’m feeling emotionally drained because working from home alone all day just sucks. The freedom is great, but I don’t know that it’s worth it.

                                        1. 1

                                          How much does your space charge per month and does your company cover any of that cost?

                                          1. 1

                                            This so much. I’m going thru a 4 year “can i do this forever” period. sigh.

                                        1. 4

                                          This acquisition brings together the best-in-class hybrid cloud providers and will enable companies to securely move all business applications to the cloud. Companies today are already using multiple clouds. However, research shows that 80 percent of business workloads have yet to move to the cloud, held back by the proprietary nature of today’s cloud market. This prevents portability of data and applications across multiple clouds, data security in a multi-cloud environment and consistent cloud management.

                                          Having read this paragraph the word “cloud” no longer sounds like a real word, and I suspect it really isn’t one.

                                          1. 4

                                            It’s a rebranding of time-sharing with a few changes.

                                            1. 4

                                              Well, more like VM/370 combining properties of timesharing with virtualization.

                                            2. 3

                                              It’s great with a good old cloud-to-butt extension :D

                                            1. 7

                                              The author has come up with a fancy name for systems allowing communication (well, but they actually just focus on shared nemory). The author uses the power of this abstraction to whine about WebExtensions and webpages that require JavaScript. I regret reading this because there is no payoff.

                                              1. 2

                                                I regret reading this because there is no payoff.

                                                Delightfully savage.

                                                1. 1

                                                  He whines about requiring JavaScript in exactly one parenthetical.

                                                1. 4

                                                  Hey, primary maintainer of cmark-gfm here! I like what you’ve done here a bunch. I think safe-by-default is almost always the correct decision. I might consider changing cmark-gfm to be likewise, though I’m concerned about diverging from upstream in this subtle way.

                                                  1. 4

                                                    Hi, that would be absolutely amazing.

                                                    If the result of my little project is that you change the standard cmark-gfm implementation to be safe-by-default then I would consider it a greater success then I could ever imagine. Please keep posted on this.

                                                    The goal of the project is to provide a markdown renderer which is safe to use with user-provided input out of the box and where the risk of error is minimized.

                                                    1. 3

                                                      Done! Thanks for the push to do this – it’ll cause a period of migration for downstream consumers, but I think it’s worth it.

                                                      1. 2

                                                        That’s very cool of you, I really appreciate the swift course of action and as you say I really think it will be worth it long term.

                                                        This is basically like when YAML decided to change the standard implementations to be safe by default a little while back instead of unsafe defaults, basically making the internet a little bit safer.

                                                    1. 6

                                                      This is great news, I miss distributed VCS competition days (darcs, bazaar, monotone), all have their distinct use cases/features, I’ll definitely will move some projects and try it once implemented.

                                                      1. 2

                                                        darcs! Those were the days.

                                                      1. 4

                                                        It opens talking about XML parsers, and yet XMPP isn’t even proper XML. It’s incredibly ugly.

                                                        1. 1

                                                          Being a subset of xml doesn’t say you can’t use xml parsers

                                                          1. 1

                                                            Well, actually:

                                                            On top of that XMPP requires you to parse these partial “XML” documents. But a partial XML document is not well-formed, heck, it’s not even a XML document! And a parser should bail out with an error. But XMPP doesn’t care, it just relies on implementation dependend behaviour of chunked parsing modes for SAX parsing. This functionality isn’t even specified by the XML recommendation in any way. The recommendation even says that it’s undefined what happens if you process not-well-formed XML documents.

                                                            also, keep in mind that if you use a non-XMPP specific XML reader, and certain kinds of data the XMPP spec terms as “restricted” are sent to you, you’ll incorrectly not ignore those parts. So of course, use an XML parser and then post-process it, but can you really still say it’s a subset of XML if you need to transform data at the representation level before it hits any application code? You might say that no XMPP-compliant remote would send you XMPP XML (we’re using an XML reader, right?) with those bits in it, but that’d only be the case if they were using an XML writer wired specifically to not do anything XMPP tells you not to, at which case it ceases to be an XML writer.

                                                            What’s with the writer? I’m basically just iterating what the link says here, but: you can’t arbitrarily assign namespaces prefixes that resolve to the correct namespaces — they needed to be assigned to specific prefixes until XEP-0044. You can’t write out unescaped > even though it’s valid XML. You must use UTF-8. So sure, maybe use an XML parser to read in XMPP-except-with-extra-bits, but good luck using a stock XML writer. Is it really still XML?

                                                            god, I never thought I’d spend so much time defending XML before. Then XMPP came along. ¯\_(ツ)_/¯

                                                            edit to add: I think the concepts behind XMPP are good and needed — a federated, extensible messaging middleware. But the XMPP implementation itself, based on XML? Yikes.

                                                        1. 5

                                                          Some of those were quite nice, but many overuse emoji.

                                                          The current trend of flooding documentation with emoji is infuriating. Some people seem to think this creates a warmer community, or it’s more inclusive, or some nonsense.

                                                          If a graphic doesn’t provide information better than text would, it’s just noise.

                                                          1. 4

                                                            Some people seem to think this creates a warmer community, or it’s more inclusive, or some nonsense.

                                                            It does; it conveys humanity and approachability, which can be lacking in certain corners.

                                                            1. 5

                                                              It makes more sense to me to create a welcoming feeling in ways that don’t require specialized fonts & don’t have questionable screenreader support. Emoji can’t be relied upon to be viewable (and even if viewed, they can’t be relied upon to be understandable, since there’s no consensus on meaning for most of them), so things that must be said cannot be said with emoji – making them redundant by definition. Of course, if you do rely upon them, then people running older browsers or text-based interfaces (or screen readers or braille displays) are missing semantically meaningful information (or have reason to suspect they are). More people are going to be made to feel unwelcome by heavy emoji use than are going to be made feel welcome.

                                                              1. 1

                                                                I remain unconvinced. I’ve been working with members of the #empathy crowd for years, and it’s so easy to feign endorsement for this weird part of our industry’s culture. Anecdotally, I feel I have always been held to a lower standard if I sprinkle unicorn emoji or make [not very] humorous references to Disney princesses through any of my communication.

                                                                Of course any time someone criticises the juvenile overuse of emoji (or any part of the PC brigade — and I do believe there is significant overlap between these two groups), the retort is always something along the lines of “it’s just about common decency! You don’t need to be an asshole!”

                                                                I’m sure there’s a happy medium between being rude and turning your software documentation into a kindergarten textbook.

                                                                If we recognise that most programmers spend an awful amount of time quickly scanning information every day, I believe the most empathic thing to do is to quickly get to the point in your README documents.

                                                            1. 5

                                                              Put this in your .emacs and then replace Item 5 with “Use C-x n to get a new scratch buffer at any time. Careful, scratch buffers aren’t auto-saved or backed up, nor recovered in any after power loss (cf. regular file buffers).”

                                                              (defun create-new-scratch-buffer ()
                                                                "create a new scratch buffer to work in. (could be *scratch* - *scratchX*)"
                                                                (interactive)
                                                                (let ((n 0)
                                                                      bufname)
                                                                  (while (progn
                                                                           (setq bufname (concat "*scratch"
                                                                                                 (if (= n 0) "" (int-to-string n))
                                                                                                 "*"))
                                                                           (setq n (1+ n))
                                                                           (get-buffer bufname)))
                                                                (switch-to-buffer (get-buffer-create bufname))
                                                                (if (= n 1) initial-major-mode))) ; 1, because n was incremented
                                                              
                                                              (global-set-key (kbd "C-x n") 'create-new-scratch-buffer)
                                                              
                                                              1. 7

                                                                Careful, C-x n will shadow the narrow functions. If you use those, you may want to pick a different shortcut.

                                                                1. 2

                                                                  This is a good point that is often ignored when people share or recommend customizations. I use a lot of the functionality of the standard keybindings and got frustrated with trying to shift things around. I eventually gave up and went with a custom keymap reachable via the mode-specific-map, which is always there.

                                                                  (defvar woz-map (make-sparse-keymap))
                                                                  (define-key mode-specific-map (kbd "a") woz-map)
                                                                  (define-key woz-map (kbd "n") 'create-new-scratch-buffer)
                                                                  

                                                                  Now all the extra functions I want on keys are reachable via C-c a, which is pretty easy to type.

                                                                  1. 2

                                                                    One thing I do to avoid shadowing is to map my custom stuff to Hyper combos, and remap Caps Lock to Hyper.

                                                                    1. 1

                                                                      Aha! Here is a method to avoid this in the future:

                                                                      C-x n F1
                                                                      

                                                                      In fact, any prefix followed by F1 will show the members of the prefix family. Thanks, #emacs!

                                                                      1. 1

                                                                        Hm, C-x n isn’t bound in my emacs -Q… I’m using GNU Emacs 26.0.50 (build 4, x86_64-w64-mingw32) of 2017-08-07.

                                                                        OH WHAT? C-x n n is bound! TIL: https://www.emacswiki.org/emacs/Narrowing

                                                                        1. 2

                                                                          Yeah, C-x n is the prefix for a number of keybindings:

                                                                          Global Bindings Starting With C-x n:
                                                                          key             binding
                                                                          ---             -------
                                                                          
                                                                          C-x n d         narrow-to-defun
                                                                          C-x n n         narrow-to-region
                                                                          C-x n p         narrow-to-page
                                                                          C-x n w         widen
                                                                          

                                                                          I use narrow-to-defun and widen daily.

                                                                      2. 3

                                                                        This is pretty selfexplanatory and I was shocked how little time it took to make use of this hot key habitual. I actually use this key when I can’t remember some other custom keybinding, because, well.. you’ll see:

                                                                        ;;open init file (.emacs) with F7
                                                                        (defun edit-init-file ()
                                                                          (interactive)
                                                                          (find-file user-init-file))
                                                                        (global-set-key (kbd "<f7>") 'edit-init-file)
                                                                        
                                                                        1. 2

                                                                          Thanks, I love it! 👍👍

                                                                          1. 1

                                                                            I have this snippet from around 2009 but I’m going to try yours.

                                                                            ;
                                                                            ; Drew Adams's suggestion for fast scratch buffer
                                                                            ;
                                                                            (defun create-scratch-buffer nil
                                                                              "create a scratch buffer"
                                                                              (interactive)
                                                                              (switch-to-buffer (get-buffer-create "*scratch*"))
                                                                              (lisp-interaction-mode))
                                                                            
                                                                          1. 1

                                                                            I like how the solution was to bump the culprit from 32bit to 64bit and avoid checking for overflow in the first place since it’s currently unimaginable that it would happen.

                                                                            1. 3

                                                                              In a kernel with CONFIG_DEBUG_VM_VMACACHE=y, the bug can be observed after “around 40 minutes” according to the report in project zero’s bug tracker.

                                                                              After the change you need to increment the sequence number 2^32 times more often than before. This should raise the time to complete that demonstration to 2^32 * 40 / (60 * 24 * 365.25) or ~326,638 years.

                                                                              1. 1

                                                                                I came here to quote “thereby making an overflow infeasible” with the same thought in mind; that said, 640K ought to be enough for anybody.

                                                                                1. 1

                                                                                  @kivikakk @johnLate and the best thing is is that it doesn’t even grow the data structures since the the adjacent fields were 64bits already[1]

                                                                                1. 8

                                                                                  As a result of this post I got hledger. Downloaded a CSV file from my bank, imported it into hledger, and I was good to go. The wiki is also super detailed and user friendly, and everything is actively maintained (active commits in repository, updated wiki pages, etc). Looks like a good choice to me; I’ll be using this in the future.

                                                                                  1. 3

                                                                                    I did too! No import, just starting with all my balances and working things out as I go. So far so good.

                                                                                    (I’ve used YNAB in the past, but I’m not a fan of needing to use either closed-source software (back when it was an app you ran locally) or storing all my financial data in the cloud.)