1. 1

    I find the misconcepted notion of “You always know why you feel the way you feel.” really strange because most of the time I simply do not, and I have to actively make guesses. Is it really a common belief among people?

    1. 0

      Have you tried nootropic drugs like caffeine or modafinil? I hear conflicting things about whether or not they actually work, and I suspect it’s different for different people, but it might be worth a shot if you feel like there’s a biological limitation of your brain preventing you from achieving your goals. You might try looking at: https://www.gwern.net/Nootropics for instance to learn more about them.

      1. 4

        I guess that would be a solution but I’m not entirely comfortable relying on drugs to get work done. I run into a tolerance issue with caffeine and operate better without it. I have not taken modafinil but I’ll look into gwern. Thanks.

        1. 2

          Just so you know this isn’t the kind of advice a parent would approve of, and depending on your brains could ruin them.

          1. 1

            Came here to say this. I decided long ago that while I might be able to do more with certain chemicals, I was not willing to go any more extreme than caffeine and alcohol, and even those in careful moderation.

            1. 1

              Yes I have personally found that it’s easy to go to far even with caffeine and have mostly eliminated it from my diet. I’m more reliably productive and in my humble opinion reliable productivity provides greater yields in the long term than unreliable spikes of productivity.

          2. 1

            Other nootropics of note include: eating well, exercising, and meditating! Gwern’s site is very interesting though if you’ve got time for some reading.

          3. 2

            This is one of those bits of advice that might solve the stated problem but doesn’t address the underlying problem of a herculean effort invested in a bad strategy. Putting more effort in does nothing to address the bad strategy :P.

            1. 1

              Modafinil is not very useful. It mostly makes you not want to sleep, and I use it while driving very tired as a safety measure. Short-term though, it might not be a bad idea to try out.

              Caffeine is similar in this regard, although in general it doesn’t have any strong effects on me, which seems to be a YMMV thing–others report differently.

              I have no idea what to chalk up my periods of improved mood and/or efficiency to, but they don’t have a clear relation to chemicals like these.

            1. 2

              On https://www.arubacloud.com/ the cheapest VPS is actually ~1 EUR per month if you let them migrate your VPS around datacenters. I’m using that for routing and OpenVPN.

              1. 4

                These releases are the last ones that contain Xft support, which will be removed in the releases to follow. The Xft mess has to be retired in favour for plain old Xfonts.

                Curious. There’s a little bit of info available on some other pages:

                https://suckless.org/project_ideas/

                Suckless font rendering library

                There is libdrw in suckless now, which still uses xft and fontconfig. Fontconfig and xft are ugly and require too much internal knowledge to be useful. The next logical layer evolved as pango and cairo. Both of course added HTML formatting and vector drawing. This is not needed to simply draw some text somewhere. And this is what a suckless font rendering library should do: Give it a font string and render at some position the given font without having to care about font specifics.

                Also http://wiki.bitbinary.com/index.php/Dmenu_Xft

                I’m not sure if X11 can handle ttf fonts on its own, or if it’s limited to things like ppf. Either way it probably won’t cause me issues with how I use dmenu, I’m not too caring about the font in it as long as it’s not blurry.

                1. 6

                  I’ve written a bit on that topic if it interests you:

                  And yeah, I agree, this stuff requires too much internal knowledge.

                  1. 4

                    These releases are the last ones that contain Xft support, which will be removed in the releases to follow. The Xft mess has to be retired in favour for plain old Xfonts.

                    This is a mistake. Not because XFT is good, but because X11 fonts are terrible. It’s possible to write a better font rendering library than XFT: The XRender font rendering bits are agnostic to what library you use to draw, so it’s not particularly hard to slot in a different way of rendering your fonts.

                    1. 3

                      Xorg learned to use TTF fonts many years ago, but the core X11 font APIs only support 1-bit-per-pixel images. That’s probably fine if you’re using properly-hinted early-90s TTFs designed for System 7 or Windows 3.1, but most fonts these days assume some level of anti-aliasing. I’m not sure, but I’m guessing core fonts probably also don’t support kerning or Arabic/Thai/Devanagari/etc. either.

                      1. 1

                        X.org has no direct TTF handling. The Xrender X11 extension can draw ARGB glyphs, and that’s it.

                        1. 1

                          It certainly does:

                          $ mkfontscale ~/.local/share/fonts
                          $ mkfontdir ~/.local/share/fonts
                          $ xset fp+ ~/.local/share/fonts
                          $ xlsfonts | grep "microsoft-segoe ui.*iso10646" | head -5
                          -microsoft-segoe ui light-light-r-normal--0-0-0-0-p-0-iso10646-1
                          -microsoft-segoe ui semibold-semibold-r-normal--0-0-0-0-p-0-iso10646-1
                          -microsoft-segoe ui symbol-medium-r-normal--0-0-0-0-p-0-iso10646-1
                          -microsoft-segoe ui-bold-i-normal--0-0-0-0-p-0-iso10646-1
                          -microsoft-segoe ui-bold-r-normal--0-0-0-0-p-0-iso10646-1
                          

                          …but like I said, it only handles 1-bit-per-pixel glyphs, so you don’t get anti-aliasing.

                          1. 1

                            Interesting, since it’s Microsoft Segoe I’ll assume those are not simply embedded bitmaps. What is it for? The older Microsoft fonts? I’d expect many more problems than just antialiasing, TTF is more complex than the core protocol’s model, although not as much as OTF.

                            Edit: I understood your original comment as claiming that it has some kind of more sophisticated support, although the bitmap rendering is new to me.

                            1. 1

                              I don’t know that it’s for anything in particular. It’s the usual story: lots of people wanted to use TrueType fonts on X11, one group of people decided the only practical solution was to build TTF support into the existing model, so it would work with all existing software, while a different group invented a whole new graphics model (XRender) and font API (Xft) and demand that everyone in the world update their applications to use it.

                              Surprisingly enough, the boil-the-ocean approach actually worked out.

                    1. 8

                      Interesting, I’d also like to be less reliant on Google, but apparently my use case is near 100% different.

                      • Google App Engine - nope
                      • Google Analytics - nope
                      • Google Fonts - nope
                      • YouTube - nope
                      • GMail as main account - nope (I have one, but only check it every few weeks)

                      But here’s the kicker, I am an Android user and I don’t see myself switching to Apple in the near future - I usually pay ~300 EUR for a decent new mobile phone, and I refuse to pay 600-1000.

                      So while I’d usually say I’m kind of not relying on Google, not using the services on mobile is too much to ask for me. But apart from the photos part (which get backuped to Google Photos) and location history (which I really, really love) my online life is decoupled from Google quite a bit.

                      I’ve also tried using DuckDuckGo at times, but the search results always make me cry. Maybe I’m holding it wrong.

                      TLDR: Depending on how exactly you use a service and how good the alternatives are, it’s either easy or hard to change. Bah :)

                      1. 13

                        I’ve also tried using DuckDuckGo at times, but the search results always make me cry. Maybe I’m holding it wrong.

                        My experience is that Google search got a lot worse, so DDG doesn’t seem so bad anymore nowadays. Until very recently I used !g a lot with DDG, but no longer.

                        1. 11

                          Unasked-for pro tip: g! is the same thing as !g, which is super nice for us using DDG on mobile while also having the “insert space after punctuation marks” setting turned on (i.e. trying to write !g becomes “! g”, try to find that space, and then backspace…)

                          1. 2

                            Also note, you can put the g! or !g anywhere in the search, doesn’t need to be at the front, its nice to just go g! to have a quick look at what google finds if you’re not finding anything of note.

                            And to the tree parent’s post, I find google search less and less useful every year for finding technical things personally. I rarely have to use the bang operator for google in ddg lately.

                          2. 2

                            Agree.

                            It’s almost as if Google has been actively lowering the bar for competitors the last few years.

                          3. 10

                            I’ve gone from all-in Google fanboi to using almost none of their services, including on Android. I’m running LineageOS without Play Services. Things are surprisingly good, except:

                            • OSM is OK but has nothing on Google Maps, and other location-based apps (eg Uber) seem to not work
                            • Push notifications don’t work for a lot of apps
                            • I still use GCal, and setting it up (with DavDroid) is possible but frustrating, especially when you have a lot of calendars (I have about 8)

                            Despite that I’m happy with the move. It’s a bit like the early Android days - not exactly polished but usable and a bit of a challenge.

                            1. 5

                              Have you installed MicroG? That ought to solve your problems with other location-based apps by letting them use another location provider (like Mozilla’s). I think it also includes a push notification shim of some kind.

                              Davdroid works really, really well with NextCloud calendars, and while setup is not super-easy, it doesn’t get any harder with lots of calendars than with one.

                              1. 3

                                I’ve been meaning to try MicroG, but haven’t yet. Thanks for the reminder.

                                I’m somewhat tied to GCal until I migrate my wife off it (and G Suite in general).

                            2. 7

                              and I refuse to pay 600-1000

                              Used to be in the same boat, but I see it differently now. You either buy a $300 phone from a Chinese company with pretty flagship-like specs, but it mines all your data or you pay $600 - $1000 and you buy a phone with flagship-like specs and it doesn’t mine your data. That’s what Apple’s biggest selling point is to me. You get privacy, but it doesn’t make everything unpolished or near unusable.

                              You’re paying the 600-1000 price tag, just not upfront.

                              1. 1

                                I love LG from S.Korea… (have both LG5 and LG v20) . I changed battery recently ($9 bucks for a new from e-bay) added an SD card. Getting updates. Love video/sound/photo capabilities (may be not as ‘flashy’ as Samsung, but core quality is very good).

                                Having a very thin phone, that slides into a pocket of my tight-fitting jeans –> is not something I value (not that age group, or body type :-) )

                                1. 1

                                  I might be misunderstanding your hint about the Chinese company. I use a Nexus 5X now (sure, it might be manufactured in China.) but in this case I see Google as the only company, no other one. Also not sure about my two HTC ones before that. They were all under 300 EUR.

                                  1. 1

                                    It was just the worst-case scenario. A Nexus 5X is a bit better, but using Google services on an Android phone is still pretty bad from privacy perspective. Maybe you should still reconsider and ask yourself if the extra money isn’t worth the privacy. Like I said, you’re just paying with you data right now instead of with your money. That’s Google’s MO.

                                    1. 4

                                      The extra cost for the Apple route is not just monetary; you’re also paying by giving up the ability to run the software of your choice on it.

                                      1. 1

                                        I got an Android to develop software on.

                                        Have not done so a single time.

                                2. 5

                                  Duck Duck Go finds what I’m looking for most of the time, but I agree that Google is far better. If you care about privacy, consider installing the Tor browser. Google searches via Tor are more private, and this also lets you do Google searches outside of your personal Google filter bubble. Sometimes Google’s filter bubble prevents me from getting the results I need. The differences in search results can sometimes be astonishing and revelatory, so I recommend trying it.

                                  1. 3

                                    Just use StartPage if you want Google’s quality but (more) private queries.

                                    1. 2

                                      Yeah I absolutely agree, but Google has learned my interests (programming and games) good enough that it gives me good results. DDG is usually clicking 3 pages, then going to Google - every time I try it :(

                                    2. 7

                                      Google App Engine - nope

                                      https://en.wikipedia.org/wiki/AppScale

                                      Google Analytics - nope

                                      Piwik

                                      Google Fonts - nope

                                      Just, uh, host the fonts?

                                      YouTube - nope

                                      For consuming video yep, for uploading you might try Vimeo

                                      GMail as main account - nope (I have one, but only check it every few weeks)

                                      I have just been slowly moving each and each service off gmail to my own domain.

                                      1. 11

                                        Not sure wink was asking for alternatives to the five services they don’t use…

                                      2. 4

                                        I’ve found DDG frustrating at times, too. I’m slowly learning how to better leverage it, though. i.e. I’ve automatically started changing my search queries in ways that help it figure out what I mean more easily: quoting certain words or including additional words that I wouldn’t normally include when doing a Google search.

                                        1. 2

                                          The quotes, added words, and using - to remove results improves any search engine. Including Google.

                                          1. 6

                                            I realize that. My point was that although the results from Google were better w/o those additions, you can work around DDG’s inadequacies by doing the things I listed.

                                            1. 2

                                              With Google you can’t be sure anymore. Sometimes it works, sometimes not it seems.

                                          2. 3

                                            I’ve also tried using DuckDuckGo at times, but the search results always make me cry. Maybe I’m holding it wrong.

                                            DDG results range from better than Google to absolute garbage, but on average I find them workable.

                                            However, I realized to started to depend on all kinds of Google search features that are not available in DDG. For example, when I type the name of an establishment in Google, I automatically get the hours and a real time graph with waiting time.

                                            I wouldn’t have thought that trivial things like that would be important for me, but apparently they are, and I switched back to Google search.

                                            1. 3

                                              I’ve found mainly that DDG is ok in general but really terrible at certain specific kinds of searches. If you’re searching for an error message, specific line of code, bug report for a program, that sort of thing… Google is far better. For most other things DDG does just fine, and the ! shortcuts are real handy.

                                              1. 2

                                                It’s interesting that you love Location History so much; what do you like about it?

                                                1. 3

                                                  Well, for example looking up trip routes from a vacation. “When did I do home office 2 weeks ago? Monday or Tuesday?” “How long was this bike ride?”

                                                  Nothing critical, just stuff I like to know and look up.

                                                  1. 3

                                                    Interesting, I also love the idea of having that data, but I hate the idea of other people also having my data, especially of a theoretically sensitive nature.

                                                2. 1

                                                  You can get a used, but perfect condition, iPhone 8 for less than 400 GBP, so maybe ~300 EUR is possible. The resale value is much higher, so I think the long term cost is comparable.

                                                  1. 3

                                                    But you’re still locked into Apple’s walled garden that way.

                                                    1. 2

                                                      I wish people would not parrot out thought terminating cliches like this. Locked into what exactly?

                                                      1. 6

                                                        I’m not the GP but I wouldn’t buy an iPhone because the only way to install apps on the phone is from the App Store, which makes something like F-Droid impossible. AFAIK the only way to install ‘non-official’ apps is to buy a Mac, sign up for a developer account, and then compile and self-sign apps.

                                                        1. 2

                                                          So you can install whatever you want; it just costs $300 (mac) + $99/yr (in true Apple fashion).

                                                          Alternatively you could write a script that refreshes your certificates every night and do it for free!! (+the cost of a used Mac)

                                                          Alternatively alternatively you could buy one of those sketchy “signing services” that force you to install a VPN so that they don’t get caught and use that.

                                                          (Observation: Closed source software on non apple platforms is often worse than their open source counterparts. Practically no open source software exists for apple platforms, but the software quality is generally higher with some notable exceptions. I don’t know where I’m going with this, so it’s just an observation.)

                                                        2. 4

                                                          Locked into what exactly?

                                                          Locked into not being able to run your own OS, and not being able to run your own programs without paying more (I understand you can install your own apps for 30 or 90 days, but you still have to pay for a developer license, IIRC).

                                                        3. 1

                                                          I use Dropbox for file storage, Gmail and Office365 for mail, OmniFocus for TODO, OneNote and Keep for notes, WhatsApp, Slack and Teams for chats, CrashPlan for backup, Google, Amazon and Apple for books, feed.ly for news, 1Password for secure info. where am I locked in?

                                                          1. 4

                                                            Yes, you are quite free to choose from any of the flowers Apple permits in the garden — but you are not free to choose something Apple does not permit.

                                                      2. 1

                                                        You don’t need to use Google services with Android. I’ve flashed LineageOS on my touch phone with FDroid software and I’m pretty happy with it. Edit: haven’t noticed this already got mentioned.

                                                      1. 1

                                                        The uploader hasn’t made this video available in your country.

                                                        So it’s available where?

                                                        1. 1

                                                          In the US, at least.

                                                        1. 9

                                                          I use Thunderbird and I haven’t been able to find anything better.

                                                          GNOME’s Evolution was kind of okay, though.

                                                          1. 1

                                                            So does that mean that it will stop supporting TRIM? That’d be unfortunate.

                                                            1. 3

                                                              No, I expect that we will still support TRIM.

                                                              1. 1

                                                                Do you know if the packaged version of zfs outlined in the linked thread is just transitory, or if the plan is for zfs to live in ports in the future as well (much like how pkg itself does)?

                                                                1. 4

                                                                  There’s no reasonable way for it to live in ports because we need it in our kernel and in base.

                                                            1. 6

                                                              That we spend a ridiculous amount of time setting up builds, releases and general tooling.

                                                              That’s my pet peeve right now. What’s worse, every time I tried to fix it using my experience as a programmer and knowing how to abstract and DRY, I met a very hard push back from people insisting that everything should be left as is and there’s nothing wrong in writing tons of configs for every project.

                                                              /vent

                                                              1. 2

                                                                This is probably the main reason I love coding with C. I can write a simple mkfile (plan9’s mk(1) is FAR superior to GNU Make, honestly) that’s about 20 lines and it compiles the whole project. While you can do this with other languages (rustc, as the rustaceans keep on mentioning to me), the dependencies usually are not so clean and it’s… generally more difficult.

                                                                1. 2

                                                                  Dependencies are the reason I despise building C/C++ with Makefiles. If you want it to work reliably, you need to extract references to header files, find where the libraries you link to are located, and store all these paths as dependencies for future runs. And then you’re in CMake land and it’s no longer pretty.

                                                                  The Go build tool has this resolved. Go + mk would be love-worthy. They have the same people behind them, too.

                                                                2. 2

                                                                  I’m merely a dabbler in Rust for now, but rustup + cargo are so much nicer than the competition, IMO

                                                                1. 10

                                                                  Over the course of using only Go at work for the last year-ish, my opinion went from:

                                                                  Go has some weird opinions and safety rails, but the advantages are still nice

                                                                  to:

                                                                  I love Go’s restrictiveness and can’t imagine any other way

                                                                  Not sure if it’s stockholm syndrome by now but it’s definitely grown on me.

                                                                  For example, I tried adapting some C++ code to Go last week, and the person was doing mystring[len(mystring)] and it worked with no out of bounds errors :(

                                                                  1. 4

                                                                    From the onset I’ve been viewing Go as the better C I needed. It did take me time to get used to the fascist gofmt, though. Today I mostly have gripes with the standard library, debugging and trying to get away from thinking in the event loop model (that took me so much time to internalize). Still enjoying the language and the tools.

                                                                    1. 4

                                                                      The best thing about gofmt is that there is nothing you CAN configure. It’s the gofmt way or the highway.

                                                                      1. 2

                                                                        I think the fascism of gofmt is great. After using go for a while, I miss a similar tool for other languages. I get by with clang-format for C, but it requires quite a bit of configuration, and still doesn’t get some things right.

                                                                    1. 1

                                                                      This was a fun watch. Rob Pike is sometimes criticized for having strong opinions (he’s anti- syntax highlighting!), but it’s nice to hear the experiences that helped developed them and the thought processes behind them.

                                                                      1. 1

                                                                        I’ve learnt to edit Go without syntax highlighting and honestly I don’t miss it at all.

                                                                        1. 1

                                                                          Syntax highlighting is definitely one of those areas where we should just let people do whatever makes them happy. If you’ve decided to give it up, that’s fine. I enjoy it, so I won’t.

                                                                          Rob has said some pretty grating things about both syntax highlighting as well as the people who use syntax highlighting – I think the criticism is usually more of the inflicting of the opinion than the strength with which it is held.

                                                                      1. 5
                                                                        • Build system: Meson
                                                                        • Editor: neovim with ncm2 + LanguageClient-neovim
                                                                        • LSP server: clangd (yeah yeah I should try cquery or its fork ccls I guess)
                                                                        • Debugging: lldb, Sanitizers, DTrace, truss/strace
                                                                        • Profiling: DTrace with flame graphs
                                                                        • Static analysis: clang-tidy (includes clang static analyzer), cppcheck
                                                                        • Formatting: clang-format
                                                                        1. 3

                                                                          And this is the kind of pure Lobste.rs gold I asked this question for. Thank you! I’m a big Neovim fan and use the LSP stuff for Python with Deoplete quite a lot. I love it. Kind of fun watching coworkers jaws drop when I get full IDE-like tab completion in Python without Pycharm :)

                                                                          1. 3

                                                                            Oh, nice, LanguageClient-neovim works even with VIM and cquery/ccls are way better than clangd. I didn’t stumble upon the latter while I was looking for something better than YCM. I should try these out, too.

                                                                            1. 1

                                                                              I’m trying ccls right now. Not seeing how it’s way better so far, only seeing higher RAM usage :D

                                                                            2. 2

                                                                              This is almost identical to my setup, though I use ccls instead of clangd, use ALE for running linters, and include flawfinder in my linter set. I also integrate clang-format into Neovim through Neoformat (note that both this and ALE work with Vim also).

                                                                              I’m curious - how lightweight do you find clangd? Since I started using ccls (as opposed to no language server), I’ve had a hard time editing C++ on my laptop due to the resource use (in particular, long-duration CPU spikes for reindexing on most file openings).

                                                                              1. 3

                                                                                I’ve been working on small-ish projects mostly (though with some dependencies), and clangd has been okay on my not-so-powerful laptop (i3-4010U).

                                                                                If CPU spikes interfere with actual editing, try running the language server with nice?

                                                                                1. 1

                                                                                  True, that could be a good idea. For now I’ve been able to mosh into my more powerful workstation and edit there, but nice-ing would probably help for my laptop. Thanks!

                                                                            1. 3

                                                                              Qt Creator 4.8 beta w/ clang code model, VIM with YCM–these I spend most of my time with.

                                                                              For various debugging purposes, I launch gdbserver, strace, valgrind. Sanitizers are also nice as my colleague has shown me.

                                                                              I’ve been using CMake for almost a decade now, I’ve even converted $work to use it.

                                                                              There’s not much else other than that. The only thing I’m missing must be https://github.com/beacoder/call-graph for the IDE. Or some better tool than my crude script to (also recursively, following dependencies) compute the size of compiled symbols in a binary. Otherwise I’m pretty content, I must say.

                                                                              Anything in particular you’re interested in? Something you find annoying in your own setup?

                                                                              1. 1

                                                                                I’m just learning the language. I’ve spent the last ~15 years of my career living exclusively in languages like Perl, Ruby and Python.

                                                                                I use Vim (Neovim mostly) for most of my work, and am using CodeBlocks for the C++ stuff mostly because it was a ready made environment that stays out of my way to learn on. I’m sure when I start doing work in earnest I’ll figure out a good Vim setup and start using that.

                                                                                I asked the question mostly to see if there were any stand-out tools that the vast majority of C++ used that I should invest time in learning as I ramp up with the language.

                                                                                1. 4

                                                                                  Ah, okay. My advice would be to trash Code::Blocks immediately. I highly recommend trying out Qt Creator, even more so since you’re a VIM user, too, as it has a pretty nice FakeVIM mode and doesn’t cost anything, unlike e.g. CLion. It’s not perfect but it’s one of the best environments I’ve found, and it’s another thing I’ve been using for about 8 years already.

                                                                                  One big problem for C++ IDEs is the code model. Even though clang has made it much easier to get it in all kinds of projects, I don’t think you can get very good results there with any current VIM plugin, or even with LSP servers. And I very much enjoy things like instantaneous and always-up-to-date “find usages”, or global symbol renaming (“refactoring”).

                                                                                  All that being said, people differ, some of the best programmers I’ve met in person used nearly plain VIM or Emacs, with ctags at most, which would make me very unhappy. Expect extremely varying responses.

                                                                                  1. 1

                                                                                    That’s interesting I thought the Clang language server stuff was very well thought of.

                                                                                    Thanks for the recommendation, I’ll give Qt creator a shot!

                                                                              1. 5

                                                                                I use Perl 5 anytime I need to process text. Perl 6 is something I don’t have a use case for, too much hassle installing it and then the language just seems a lot more complex.

                                                                                1. 14

                                                                                  My problem with make is not that there is a bad design. It is not THAT bad when you look at things like CMake (oops, I did not put a troll disclaimer, sorry :P).

                                                                                  But it has only very large implementations that has a lot of extensions that all are not POSIX. So if you want a simple tool to build a simple project, you have to have a complex tool, with even more complexity than the project itself in many cases…

                                                                                  So a simple tool (redo), available with 2 implementations in shell script and 1 implementation in python does a lot of good!

                                                                                  There is also plan 9 mk(1) which support evaluating the output of a script as mk input (with the <| command syntax), which removes the need for a configure script (build ./linux.c on Linux, ./bsd.c on BSD…).

                                                                                  But then again, while we are at re-designing things, let’s simply not limit outself to the shortcomings of existing software.

                                                                                  The interesting part is that you can entirely build redo as a tiny tiny shell script (less than 4kb), that you can then ship along with the project !

                                                                                  There could then be a Makefile with only

                                                                                  all:
                                                                                      ./redo
                                                                                  

                                                                                  So you would (1) have the simple build-system you want, (2) have it portable as it would be a simple shell portable shell script, (3) still have make build all the project.

                                                                                  You may make me switch to this… ;)

                                                                                    1. 1

                                                                                      Nice! So 2 shell, 1 python and 1 C implementation.

                                                                                      1. 5

                                                                                        There is also an implementation in C++. That site also has a nice Introduction to redo.

                                                                                        I haven’t used any redo implementation myself, but I’ve been wondering how they would perform on large code bases. They all seem to spawn several process for each file just to check whether it should be remade. The performance cost of that not a particularly fast operation might be prohibitive on larger projects. Does anyone happen to have experience with that?

                                                                                        1. 1

                                                                                          The performance cost of that not a particularly fast operation might be prohibitive on larger projects. Does anyone happen to have experience with that?

                                                                                          No experience, but from the article:

                                                                                          Dependencies are tracked in a persistent .redo database so that redo can check them later. If a file needs to be rebuilt, it re-executes the whatever.do script and regenerates the dependencies. If a file doesn’t need to be rebuilt, redo can calculate that just using its persistent .redo database, without re-running the script. And it can do that check just once right at the start of your project build.

                                                                                          Since building the dependencies is usually done as part of building a target, I think this probably isn’t even a significant problem on initial build (where the time is going to be dominated by actual building). OTOH I seem to recall that traditional make variants do some optimisation where they run commands directly, rather than passing them via a shell, if they can determine that they do not actually use shell built-ins (not 100% sure this is correct, memory is fallible etc) - the cost of just launching the shell might be significant if you have to do it a lot, I guess.

                                                                                      2. 3

                                                                                        The biggest problem with Make (imo) is that it is almost impossible to write a large correct Makefile. It is too easy for a dependency to exist, but not be tracked by the Make rules, thus making stale artefacts a problem.

                                                                                        1. 1

                                                                                          I had given serious thought to using LD_PRELOAD hooks to detect all dependencies dynamically (and identify e.g. dependencies which hit the network), but never got around to trying it.

                                                                                          Anyone heard of anything trying that approach?

                                                                                        2. 2

                                                                                          Why this obsession with “simple tools for simple projects” though? Why not have one scalable tool that works great for any project?

                                                                                          (Yeah, CMake is not that tool. But Meson definitely is!)

                                                                                          1. 3

                                                                                            Because I wish all my projects to be kept simple. Then there is no need for very powerful tool to build them.

                                                                                            On the other hand, if you already need a complex tool to do some job, having another simple tool sum up the complexity of both as you will now have to understand and maintain both !

                                                                                            If we aim for the most simple tool that can cover all situations we face, this will end up with different tools according to what we expect.

                                                                                            1. 3

                                                                                              Meson isn’t a simple tool, it requires the whole Python runtime in order to even run --help.

                                                                                              CMake is a lot more lightweight.

                                                                                              1. 4

                                                                                                Have you appreciated how huge CMake actually is? I know I had problems compiling it on an old machine since it required something like a gigabyte of memory to build. A two-stage build that took its precious time.

                                                                                                CMake is not lightweight, and that’s not its strong suit. To the contrary, it’s good in having everything but the kitchen sink and being considerably flexible (unlike Meson, which has simplicity/rigidity as a goal).

                                                                                                1. 2

                                                                                                  CMake is incredibly heavyweight.

                                                                                                2. 1

                                                                                                  I would like to see how it would work out with different implementations and how “stable” meson as a language is.

                                                                                                  1. 1

                                                                                                    Meson is nice, but sadly not suitable for every project. It has limitations that prevent some from using it, limitations neither redo nor autotools have. Such as putting generated files in a subdirectory (sounds simple, right?).

                                                                                                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. 5

                                                                                                                Progress report: got my MPD client where I wanted to, currently teaching my bash/zsh directory navigator to save and restore runtime configuration. It’ll be useful soon. By the way, C++ STL streams really suck with how you can’t get at the fileno.

                                                                                                                I think I’ll be either toying around with Borland Turbo Vision (yes) for work or writing a basic terminal vi-like text editor in Go. Just to test a few things—I haven’t written a text editor from scratch before, and I’ll need a text editing component for a GUI framework later. Qt Creator 4.8 will be great enough for me to not care about true IDEs for a while. The LSP integration is a big thing: hello Go, hello Vala!

                                                                                                                No life for me yet. Life has been postponed until about next year.

                                                                                                                1. 1

                                                                                                                  Interestingly, sdn exposes a bug in LLVM’s libc++ std::basic_string that I’ve reported:

                                                                                                                  #include <string>
                                                                                                                  
                                                                                                                  struct big { int bloat[4]; };
                                                                                                                  using big_string = std::basic_string<big>;
                                                                                                                  
                                                                                                                  int main () {
                                                                                                                    big_string a;
                                                                                                                    for (int i = 0; i < 100; i++)
                                                                                                                      a += big {};
                                                                                                                    return 0;
                                                                                                                  }
                                                                                                                  
                                                                                                                  $ clang++ -stdlib=libc++ reproducer.cpp
                                                                                                                  $ valgrind ./a.out
                                                                                                                  
                                                                                                                1. 4

                                                                                                                  In my crusade to eliminate half-finished projects I’ve (essentially) completed a PulseAudio sink/port switcher which also moves all playing applications over, which are completely separate actions for sinks. I’ve also learnt that when I disable Auto-Mute in alsamixer, I can switch between headphones and speakers in software.

                                                                                                                  Otherwise, in the realm of personal projects, at the top of my laundry list is fixing some misbehaviour in my MPD client so that I can do a point nine release, and further pursuing the vision of a custom directory navigator for bash/zsh.

                                                                                                                  At work… who knows. I should negotiate for some nice things to do tomorrow.

                                                                                                                  1. 6

                                                                                                                    I’ve just made my MPD client a lot more useful, but I’m still missing a few minor features and most importantly documentation before I can do a proper release with some peace of mind and leave it to rot, though I’ve been using it exclusively since around the end of 2016.

                                                                                                                    I’ve found it really useful to just describe subproblems and write ideas down as they come, and not just keep them in my head. And if I don’t want to do something, to just look at the code and note where things probably need to change. It has a tendency to become too irresistible not to pursue, even though I might not be in the mood. Rather a rediscovery.

                                                                                                                    Now I’m either going to be tidying one project up for inclusion in the master branch at work, or further improve my directory navigator, be it design or implementation.

                                                                                                                    I guess I should be working on Go/X11 things but bringing past projects to some sort of closure is also nice. I’ve got a long, long backlog. Some of it I can now finish more efficiently due to experience, or scrap stupid ideas like learning Rust on things where it doesn’t belong at all and multiplies work and complexity by an order of magnitude. Or C, if you found that inflammatory.

                                                                                                                    1. 1

                                                                                                                      You’re the author of ncmpcpp? That’s amazing, I used it as my primary music player for almost 5 years!

                                                                                                                      1. 5

                                                                                                                        No, not ncmpcpp, that one has a long history, but nncmpp. At least I have confirmation that it’s unparseable.