1. 2

    It’s the increasing amount of readily accepted thinly veiled faux-editorial advertising that is starting to get to me, personally. I’d love to see those submissions tagged for easy filtering.

    1. 5

      The modern mindset I see adopted increasingly in the past few companies I’ve worked for is to focus more on output and less on an arbitrary number_of_hours variable.

      One tactic I’ve adopted is to ask myself at the end of every day a simple question:

      “Am I happy with the work I’ve done today, and does that feel like a good day’s work?”

      If the answer is no, then I reflect on how to correct that so I don’t get a negative the next day, and so on.

      1. 2

        I do. I would do this if I wasn’t being paid, and I know that’s not idle sentiment because I used to do that before my first job, and continue to code for free outside of my day job.

        If I ever get to retire from paid work, I’ll continue doing this.

        I’m not one-dimensional; I have wide ranging interests. I’m just very fortunate that I can make a living doing something I’ve done since I was four years old.

        1. 16

          Well, there goes the neighbourhood.

          Bitbucket are good. - Free private repos make these people super compelling.

          GitLab are good too. - Explorer interface makes this more of a public destination too, like GitHub.

          We do not forget the Halloween documents, nor the phrase embrace, extend, extinguish.

          1. 7

            Bitbucket being closed source and super expensive to self-host I’d prefer gitlab tbh…

            1. 2

              There are a lot of options actually, if you’re after paid, private repos.

              I’m sure I’ve missed a lot too - those are the ones I remember working with or reviewing for clients in the last couple of years.

              1. 1

                I used Assembla for a number of years until 2017. The UI was somewhat clunky but I had no other issues so it’s a workable option. It also offered free private Git repos, although I’m not sure it still does.

            1. 10

              From the readme:

              You probably noticed the peculiar default line length. Black defaults to 88 characters per line, which happens to be 10% over 80. This number was found to produce significantly shorter files than sticking with 80 (the most popular), or even 79 (used by the standard library). In general, 90-ish seems like the wise choice.

              This is a table stakes deal breaker for me. I know, I know, I’m likely old fashioned. I prefer old school. :-)

              1. 5

                It is a default though, you can pass --line-length to it.

                1. [Comment removed by author]

                  1. 4

                    Honestly though, is your terminal window really 80 columns wide? And should outdated defaults matter?

                    1. 3

                      Yes, my terminal window is really 80 columns wide.

                      I also have a source file where a single line of code is 250 characters (and no, it really can’t be broken up due to semantic constraints).

                      So, what should be the minimum width of a terminal window?

                      1. 1

                        I actually prefer to code with a 80-wide terminal most of the time, because it tends to remind me to simplify my code more than I would otherwise :o

                      2. 1

                        I think 79 is better than 80, because 79 allows for a single-column ruler on the side of the window and stuff

                        1. 1

                          This is about the size of your code “viewport”, not of your terminal.

                          3 columns are already used by my line length indicator in vim, but that number is really arbitrary too.

                        2. 1

                          departing from established standards because you feel like it is a pretty bad sign in general. as are --long-gnu-style-options, but that’s a different issue.

                        3. 2

                          I just counted the length of lines over 266 Lua files [1], calculating the 95th percentile [2] of line length. Only 4% had a 95 percentile of 89 or higher; 11% had a 95th percentile of 80 or higher. And just because, 4% had 95th percentiles of 80 and 81. For maximum line lengths:

                          • 42% with longest line of 79 characters or less
                          • 46% with longest line of 80 characters or less
                          • 56% with longest line of 88 characters or less

                          Longest line found: 204 characters

                          [1] I don’t use Python, so I’m using what I have. And what I have are multiple Lua modules I’ve downloaded.

                          [2] That is, out of all the lines of code, 95% of line lengths are less than this length.

                          1. 1

                            https://en.wikipedia.org/wiki/88_(number)

                            I can’t help it but read it as a fascist code, or at least I start thinking about whether it could be on every occasion I see this number (not totally unfounded, because where I live it is used this way every now and then). I don’t think they meant to use it this way, so I think it’s fine (more than that, good, because it devalues the code by not treating the numebr as taboo).

                            1. 1

                              Personally I don’t like line break at 80 or 90 with python, as the 4-spaces indent quickly uses up a lot of horizontal space. For example, if you write unittest-style unit tests, before you write any assignment or call, you have already lost 8 spaces.

                              class TestMyFunctionality(unittest.TestCase):
                                  def setUp(self):
                                      # ....
                                  def test_foo(self):
                                      x = SomeModule.SomeClass(self.initial_x, get_dummy_data(), self.database_handle)
                              

                              Of course you could start introducing line breaks, but that quickly leads to debates on “hanging indent”, lisp-style-indent, etc. or you end up with a lot of vanity variables for local variables.

                              With lisp-style indent I mean the following snippet, that (if it was the way the autoformatter would do it would convince me to accept a 80 character line length limit)

                              class TestMyFunctionality(unittest.TestCase):
                                  def setUp(self):
                                      # ....
                                  def test_foo(self):
                                      x = SomeModule.SomeClass(self.initial_x,
                                                               get_dummy_data(),
                                                               self.database_handle)
                              

                              Whereas I find the “hanging indent” style makes understanding the structure of the syntax tree so much more difficult.

                              class TestMyFunctionality(unittest.TestCase):
                                  def setUp(self):
                                      # ....
                                  def test_foo(self):
                                      x = SomeModule.SomeClass(
                                              self.initial_x,
                                              get_dummy_data(),
                                              self.database_handle)
                              
                            1. 3

                              Terminal within vim now?

                              From the article:

                              The main new feature of Vim 8.1 is support for running a terminal in a Vim window. This builds on top of the asynchronous features added in Vim 8.0.

                              Pretty cool addition. :-)

                              1. 17

                                Neovim has had this for over a year now. Neovim has been pretty great for pushing vim forward.

                                1. 5

                                  I wonder if the new Vim terminal used any code from the NeoVim terminal. I know NeoVim was created in part because Bram rejected their patches for adding async and other features.

                                  1. 7

                                    I have to say, I really don’t care to see this in a text editor. If anything it’d be nice to see vim modernize by trimming features rather than trying to compete with some everything-to-everybody upstart. We already had emacs for that role! I just hope 8.2 doesn’t come with a client library and a hard dependency on msgpack.

                                    Edit: seems this was interpreted as being somewhat aggressive. To counterbalance that, I think it’s great NeoVim breathed new life into Vim, just saying that life shouldn’t be wasted trying to clone what’s already been nailed by another project.

                                    1. 6

                                      Neovim isn’t an upstart.

                                      You can claim that Vim doesn’t need asynchronous features, but the droves of people running like hell to more modern editors that have things like syntax aware completion would disagree.

                                      Things either evolve or they die. IMO Vim has taken steps to ensure that people like you can continue to have your pristine unsullied classic Vim experience (timers are an optional feature) but that the rest of us who appreciate these changes can have them.

                                      Just my $.02.

                                      1. 2

                                        Things either evolve or they die.

                                        Yeah, but adding features is only one way to evolving/improving. And a poor one imho, which results in an incoherent design. What dw is getting is that one can improve by removing things, by finding ‘different foundations’ that enable more with less. One example of such path to improvement is the vis editor.

                                        1. 1

                                          Thanks, I can definitely appreciate that perspective. However speaking for myself I have always loved Vim. The thing that caused me to have a 5 year or so dalliance with emacs and then visual studio code is the fact that before timers, you really COULDN’T easily augment Vim to do syntax aware completion and the like, because of its lack of asynchronous features.

                                          I know I am not alone in this - One of the big stated reasons for the Neovim fork to exist has been the simplification and streamlining of the platform, in part to enable the addition of asynchronous behavior to the platform.

                                          So I very much agree with the idea that adding new features willy nilly is a questionable choice, THIS feature in particular was very sorely needed by a huge swath of the Vim user base.

                                          1. 6

                                            It appears we were talking about two different things. I agree that async jobs are a useful feature. I thought the thread was about the Terminal feature, which is certainly ‘feature creep’ that violates VIM’s non-goals.

                                            From VIM’s 7.4 :help design-not

                                            VIM IS… NOT design-not

                                            • Vim is not a shell or an Operating System. You will not be able to run a shell inside Vim or use it to control a debugger. This should work the other way around: Use Vim as a component from a shell or in an IDE.
                                            1. 1

                                              I think you’re right, and honestly I don’t see much point in the terminal myself, other than perhaps being able to apply things like macros to your terminal buffer without having to cut&paste into your editor…

                                      2. -1

                                        Emacs is not as fast and streamlined as Neovim-QT, while, to my knowledge, not providing any features or plugins that hasn’t got an equivalent in the world of vim/nvim.

                                        1. 7

                                          Be careful about saying things like this. The emacs ecosystem is V-A-S-T.

                                          Has anyone written a bug tracking system in Vim yet? How about a MUD client? IRC client? Jabber client? Wordpress client, LiveJournal client? All of these things exist in elisp.

                                          1. 3

                                            Org mode and magit come to mind. Working without magit would be a major bummer for me now.

                                    1. 2

                                      I’m curious what other lobsters think Facebook should be doing?

                                      Let’s assume that it’s not profitable for them to offer their service to the EU if they can’t track their users, since that’s the basis of their business. Should they offer “opt in to tracking or pay a yearly fee”? Should they just leave the EU completely?

                                      1. 14

                                        The “what should Facebook do if this isn’t profitable” question reminds me of the response to Taxi company’s being upset at Uber/Lyft cannibalizing their business: you don’t have a moral right to your business model, if it’s not profitable, do something else. We shouldn’t reduce quality of medical care because it victimizes undertakes.

                                        If it’s not profitable, either don’t operate that service, or find some alternate business model that is profitable.

                                        (FTR, I’m pretty dubious of the benefits of GDPR, but I think the “what about their business models” is one of the worst arguments against it)

                                        1. 3

                                          The “what should Facebook do if this isn’t profitable” question reminds me of the response to Taxi company’s being upset at Uber/Lyft cannibalizing their business: you don’t have a moral right to your business model, if it’s not profitable, do something else. We shouldn’t reduce quality of medical care because it victimizes undertakes.

                                          I think the Uber comparison isn’t half bad.

                                          For example, in Europe, a frequent problem was that Uber tried to undercut reasonable regulations (like having proper insurance for passenger transport and adhering to service standards like having to take any passengers). Here, Ubers approach was morally problematic (“moral” being local and all), and they tried to spin it as a moral issue and users choice.

                                          1. 2

                                            I’m not in the EU and don’t know enough about GDPR to make a comment on it specifically. I just asked what others thought Facebook should do if we assume that the restrictions placed on the by GDPR make their fundamental business model nonviable.

                                            1. 2

                                              Well, they should do as any other large company that suddenly found their business model regulated :). It’s not the first time this happens and not the last.

                                              It’s their job to figure out, as much as it had been in their hands to avoid the discontent that lead to the GDPR from growing.

                                              I’m not precisely enjoying GDPR either (I think it has vast flaws and actually plays into Facebooks hands), but Facebook is a billion-dollar company. “What shall we do now that winds are changing?” is really their question to answer.

                                          2. 3

                                            I’m curious what other lobsters think Facebook should be doing?

                                            I can think of a few things, but monkeys will fly out of my butt before any of them happen. They could, for example…

                                            • Mail everybody a copy of their data on solid-state storage.
                                            • Destroy their databases.
                                            • Shut down their data centers.
                                            • Release all of their code into the public domain.
                                            • Fire everybody with severance pay.
                                            • Dissolve the corporation.
                                            • Send Mark Zuckerberg back to his home planet.

                                            Facebook is one of the cancers killing the internet, and should be treated like the disease that it is.

                                            1. 2

                                              Second option would be great, but enough of daydreaming :)

                                              1. 1

                                                You’re asking the wrong question.

                                                1. 3

                                                  What ls the right question?

                                                  1. 3

                                                    @alex_gaynor has the right idea above: https://lobste.rs/s/krca7n/facebook_now_denying_access_unless_eu#c_si5pn0

                                                    The question “well what do you suggest then?” posed to people arguing against Facebook’s business practises implies some kind of self-evident virtuous right Facebook has to exist at the expense of all humanity’s effort.

                                                    I do not agree with this position. The world was fine before Facebook came along, for many people is fine without it, and will be fine if Facebook disappears. Facebook is a leech on people’s private lives, minds, and mental health.

                                                    It is not up to the common person to provide Facebook with a position. It is up to Facebook to provide a position for itself by virtue of being wholesome and useful to society. If they cannot, then that’s the end of it. I owe them nothing, no-one does.

                                                    1. 2

                                                      It is not up to the common person to provide Facebook with a position. It is up to Facebook to provide a position for itself by virtue of being wholesome and useful to society. If they cannot, then that’s the end of it. I owe them nothing, no-one does.

                                                      I agree, but if people continue to choose to use Facebook in the wake of the numerous controversies, then perhaps people just don’t value their privacy more than the services that sites like FB provide. FB is only as big as it is today because people use it.

                                                      1. 1

                                                        I implied no such thing, and haven’t made a value judgement on Facebook or GDPR anywhere here. I simply asked what others here think that Facebook should do given the changed situation; I’m just curious as to what Facebook’s next moves could be.

                                                        I find that question much more interesting than your condescending replies and tired opinions about Facebook, a service that I don’t particularly like and am not trying to defend.

                                                1. 9

                                                  pass. I don’t understand the syncing issues. If you write code and use git, then syncing passwords works exactly the same as syncing code. I even have it working on my phone.

                                                  1. 3

                                                    how do you add or update passwords in your phone or ipad? i travel and i don’t always have access to a computer.

                                                    1. 3

                                                      That isn’t actually in my normal usage pattern, but I just tried it and it works. The app lets me add entries to my pass database, and then I can push to my git remote through the GUI. What happens if a merge conflict arises isn’t clear though. :-)

                                                    2. 2

                                                      I also use pass, but only have it locally on one machine. Until now I’ve been relying on Chrome’s password sync feature if I wanted a password on my phone too.

                                                      My setup isn’t ideal, so if you don’t mind elaborating on yours, please would you give more details?

                                                      1. 4

                                                        Oh sure! I have an Android phone. All I did was install OpenKeychain and the unofficial Android Password Store app. I then imported my key into OpenKeychain and setup Password Store on my phone to use it. All Password Store needs is to pull from your git repo containing passwords. It only does this when you tell it to, so it keeps a local copy on your phone and you can sync whenever.

                                                        1. 3

                                                          Fantastic info; thank you very much. :-)

                                                    1. 5

                                                      Is this legal in Europe? In Australia if not being tracked was considered legally to be a “common law right” it’s not possible to opt out of it.

                                                      1. 7

                                                        I think we need to wait and see, as GDPR will go into effect on May 25 and probably a number of practices like this one will be challenged legally. I personally feel this give-your-consent-or-so-long approach is not in the spirit of the law.

                                                        1. 2

                                                          If it’s not legal, they’ll make it legal and sugar-coat it with GDPR in a way that’s impractical or infeasible to the users.

                                                          I hope Facebook users can combat this with addons, but as most users are mobile users, they surely lack the addons or the technical know-how to set it up.

                                                          Just opt out of Facebook already.

                                                          1. 10

                                                            I hope Facebook users can combat this with addons

                                                            At some point, the person being abused has to acknowledge that they are being abused, and choose to walk away.

                                                            1. 3

                                                              Yeah, just opt out. But sadly there are people who, say, expatriated and have no better way to stay in touch with old friends.

                                                              Until a viable replacement comes along, which may never happen, I think it’s a nice hope that they can find a way to concentrate on their use case without all the extra baggage.

                                                              1. 14

                                                                I am an expat.

                                                                I manage to keep in contact with the friends that matter, the same as I did when I didn’t use Facebook in a different state in my home country.

                                                                If they’re actually friends, you find a way, without having some privacy raping mega-corp using every conversation against you.

                                                                1. 3

                                                                  Agreed, I don’t buy the argument that Facebook is the only way to keep in touch from afar.

                                                                  I’m an expat, and I have regular healthy contact with my friends and loved ones from another continent, sharing photos and videos and prose. I have no Facebook account.

                                                            2. 2

                                                              I hope Facebook users can combat this with addons

                                                              Then this will happen: https://penguindreams.org/blog/discoverying-friend-list-changes-on-facebook-with-python/

                                                              Unfriend Finder was sent a cease and desist order and chose not to fight it. I made my own python script that did the same thing, and ironically, Facebooks changes the fixed the Cambridge Analytica issue broke my plugin. It stopped 3rd parties yes, but it also kept developers from having real API access to our own data.

                                                              I also wrote another post about what I really think is going on with the current Facebook media attention:

                                                              https://fightthefuture.org/article/facebook-politics-and-orwells-24-7-hate/

                                                            3. 1

                                                              You’re not forced to use Facebook. It looks like they’re following GDPR and capturing consent. It seems the biggest issue is the bundling of multiple things into one consent and not letting folks opt in or out individually.

                                                            1. 6

                                                              I can’t agree with this article.

                                                              When writing new code, I can accept that making tasks smaller and discrete doesn’t require as much mental scaffolding, therefore it might be possible in some contexts to handle being interrupted without it being disastrous, but most of the time we’re working on existing code. We are compiling code in our brains and making all kinds of mental leaps stashing temporary memories as we debug and process what’s going on.

                                                              I’m not saying programmers are special snowflakes; I’m sure there are other fields of brain work that are as taxing, but yes, interruptions are catastrophic for programmers.

                                                              1. 2

                                                                I definitely agree, interrupting a debugging session is effectively resetting all progress. Not to mention the fact that the more you have to restart a specific debugging session, the harder it gets, because a sort of learned helplessness sets in.

                                                              1. 3

                                                                What’s that quote about asking ten engineers for advice and getting ten different answers? :-)

                                                                I’ve been full-time remote for quite a few years now. The languages I use daily are Python, and for automation related work, Ansible. I don’t code in Java at all, but sheer weight of worldwide use would indicate that might be a solid bet for you too.

                                                                For personal projects I’m a big fan of Go, and hope to make use of that more on the professional side of my life eventually. I see it on the rise.

                                                                1. 1

                                                                  I have written a fair bit of Python but usually as glue code. I managed to convince my manager to let me use Go for a recent project and loved it. I am a Plan 9 fan and it all felt very familiar and well designed. However, in my current field - robotics - pretty much everything is C++.

                                                                1. 1

                                                                  Finally! Been following the issue for ages. So happy to see it implemented, and finally migrating my whole workflow to GitHub Pages. Seems like we may be burning the servers a bit because my certificate has been being issued for an hour, but that was somewhat expected.

                                                                  1. 1

                                                                    I too am (patiently) waiting for the cert to be issued, having updated IPs in my A records.

                                                                    Hats off to GitHub for dealing with this. For the past few years I’ve been watching the browsers take steps in the direction of HTTPS-only, and wondering how I’m going to deal with my otherwise flawless GitHub Pages hosted vanity domain / blog. Since the site is only a vanity domain and blog, I’ve been procrastinating on putting thought to this other than idly resigning myself to hosting my own server somewhere, and this is a rare example of procrastination paying off. Thank you GitHub! ;-)

                                                                  1. 3

                                                                    Zircon is a graphical IRC client I used a long, long time ago.

                                                                    https://catless.ncl.ac.uk/Programs/Zircon/

                                                                    1. 2

                                                                      Thanks for sharing this. :-)

                                                                      1. 1

                                                                        Random observation, but he passed a day before Einstein’s birthday (which happens to be Pi Day).

                                                                        1. 2

                                                                          He died on March 14th.

                                                                          1. 1

                                                                            Ah, I assumed it was the 13th due to the publication date, but I didn’t account for timezones. Looks like it happened the day of Einstein’s birth date.

                                                                            1. 2

                                                                              Aye - early morning Cambridge, England time. :-)

                                                                              1. 1

                                                                                Which fortuitously right now is the same as UTC, so there’s absolutely no doubt it was Mar 14.

                                                                        1. 2

                                                                          The graphs are especially interesting if one uses the Random Article feature Wikipedia offers, for example:

                                                                          but it’s not always that fascinating, since sometimes there just aren’t enough links:

                                                                          The only thing I’m afraid of it that this isn’t spamming the Wiki servers too much. But from what I’m reading out of the network trace, they’re only downloading the pictures, and have the article links cached somewhere. It’s certainly better than on of the first Perl scripts I wrote to check the “Clicks to Hitler” Game, which will probably be unplayable from now on.

                                                                          Edit: I missed the GitHub link, and it says there that they use a database dump wikipedia updates each month.

                                                                          Edit 2: Also interesting, if one take the last link from the first list, and reverses the two, one get’s a much more boring graph: 4 degrees of separation from Antichloris eriphia to COMIT.

                                                                          1. 6

                                                                            I find relations with many links boring, if you have enough links it’s obvious you can relate anything to to anything else, what I find very funny though are short links:

                                                                            Anime to obesity in two steps.

                                                                            Philosophy to unemployment in two steps.

                                                                            Mathematics to virginity in two steps.

                                                                              1. 1

                                                                                Beautiful.

                                                                              2. 3

                                                                                The GitHub repository itself has a section with interesting combinations.

                                                                              1. 1

                                                                                The sooner people donate the sooner it goes away.

                                                                                1. 9

                                                                                  Don’t we call that line of logic protection racketeering? ;-)

                                                                                1. 10

                                                                                  I don’t think it’s fair to judge a 30 year old graphics system against today’s applications. X’s network transparency worked well for the low resolution displays and simpler applications that existed in 1987.

                                                                                  Just because it’s not useful any more doesn’t mean it was never useful and an overall failure.

                                                                                  1. 3

                                                                                    I agree entirely. I relied on remote X sessions with all kind of graphical stuff from web browsers to TCL/TK programs exported back to my client right up to 2000.

                                                                                    This article is ill-considered.

                                                                                    1. 2

                                                                                      I don’t think it’s fair to judge a 30 year old graphics system against today’s applications.

                                                                                      Why not? We fairly judge 90s crypto by modern standards.

                                                                                      I think that while X may have been well-designed by the standard of its day, it was indeed a failure because it ended up optimising for the wrong things.

                                                                                      That doesn’t mean that X is unusable or not the best alternative — just that as a protocol it has failed to live up to its fundamental goals.

                                                                                      1. 2

                                                                                        I think it’s fair to ask whether X meets today’s requirements or not, but it shouldn’t be called a success or failure judging solely by today’s standards.

                                                                                        X is outdated, but it was still a successful project.

                                                                                    1. 4

                                                                                      Linked in the article, but I feel it’s worth pasting here.

                                                                                      1. 2

                                                                                        Hey @pushcx et al!

                                                                                        Firstly, thank you for continuing to work on the code base to improve the site! Bravo! :-)

                                                                                        I’m concerned about removing the Your Threads feature; I rely on it all the time to get me to threads I’m following; I would really prefer that to stay if possible please.

                                                                                        Just my 2¢.

                                                                                        :-)