1. 0

    Suggest rust tag.

    1. 2

      Why? It talks about multiple languages.

      1. 1

        Only because it seems to be causing the most outrage.

    1. 10

      This is especially true when the entire team is sitting next to each other and where conversations between teammates can occur with everyone sitting at their desk.

      We recently acquired 4 new developers but there was no space for them to sit close to us, and so even though they are part of our team those 4 actually sit on the other side of the open office space. This means a greater reliance on Slack when communicating with that team which has the side effect of making our specific team more remote friendly.

      1. 16

        Well, for one thing, I/O was extremely slow before SSDs.

        I agree that latency for CPU-bound tasks has increased, but let’s not forget about saving a document and waiting for 10 seconds of blocking disk drive write access.

        1. 3

          I don’t remember it being that slow unless your IDE controller on Linux didn’t support Ultra-DMA/66/100/133 and you were forced to use slow PIO.

          1. 6

            1983 ≠ Ultra-DMA. I’m talking about floppies – in response to the slightly angry title

            But even in the HDD era (late 90s/early 00s) we spent a lot of time looking at spinning hourglasses while hearing disk scratching noises.

            Sure, nostalgic and comforting, but slow nonetheless :)

        1. 0

          I highly recommend Privacy Browser (on Android): https://www.stoutner.com/privacy-browser/

            1. 2

              I use the free version and have never seen an ad, as to whether that is due to my use of Adaway or because it just doesn’t show ads I do not know. I have never seen an ad on this phone so it might be the former but in that case the solution is clear: use Adaway or a similar system-wide block list.

              1. 1

                I also haven’t noticed ads. I like this browser because by default it defaults to JavaScript off. Obviously that doesn’t work for a lot of sites but it does work for surprisingly a lot. Maybe because JavaScript is off I haven’t seen the ads?

                Edit: I just realized why I don’t see ads, it’s because I installed it via F-Droid which apparently installs the standard version (no ads) and not the free version (ads)

                1. 1

                  Ah, same here (F-Droid-version), that will be part of the explanation for the ‘lack’ of ads.

          1. 2

            Is this running on top of X?

            1. 4

              SerenityOS has its own compositing window server.

              https://github.com/SerenityOS/serenity/tree/master/Servers/WindowServer

              1. 3

                The replies mention running efifb, so I guess not (?)

                1. 4

                  Yeah confirmed. He is making direct calls to the frambuffer:

                  https://github.com/jcs/serenity/blob/hosted/Libraries/LibSerenity/fb.cpp

              1. 4

                OpenBSD does offer “some” backwards compatibility if you do an upgrade (until there is ABI breakage like the time_t change). You simply just keep around the old binaries and libraries:

                /usr/lib/libc.so.53.0
                /usr/lib/libc.so.56.0
                /usr/lib/libc.so.60.0
                

                Also there was a port/package (devel/jad) that installed a binary for several (3.x-4.x) releases before binary compatibility finally died.

                1. 3

                  I am one of those rare C++ superfans (I even like pre-C++11) and the language is definitely growing up and growing up in a way where you need grown up tooling as well.

                  For the last two decades I’ve mostly been a vim and Makefile kinda guy but that is too “old fashioned” for new people trying to learn C++ now. Building and packaging are a problem that the C++ community seems to be solving using CMake and header-only libraries. Even using auto really requires a good IDE with some “intellisense-like” intuition so you can see what type you really have and what operations you can perform.

                  My personal pain point in C++ at this time are long compile times. The most recent project I was working on required use of a regex library. I looked at C++ regex and pcre and eventually went with C++ regex but may switch back to pcre for both improved performance and compile times.

                  1. 3

                    For the last two decades I’ve mostly been a vim and Makefile kinda guy

                    Sometimes I wish I could break out of this mold. My problem with IDE’s is that eventually, no matter how good they are, you have to drop into the shell…so I just keep it to the editor-shell-compiler triple. Maybe that’s the source of my reluctance to do more C++, I dunno…

                    1. 2

                      It’s not that weird to switch between a shell window and IDE window. I actually prefer the hybrid approach. An IDE trying to do everything has way too many buttons, menus, submenus, and options. 98% of the time I only use search, jump to definition, run test under cursor, or merge tool. Anything else and I’d rather get exactly what I want on the shell anyway.

                      1. 2

                        Only needing four things means you’ll learn an IDE faster than anyone. Then, you have everything else available on an as-needed basis. Some IDE’s also have lots of third-party plugins, too.

                    2. 3

                      Even using auto really requires a good IDE with some “intellisense-like” intuition so you can see what type you really have and what operations you can perform.

                      CLion seems to do a good job of you’re running GNU or Mac. Throwing it out there since it took me some time to find.

                      1. 1

                        Weird that you’re seeing long compile times. I’m seeing the exact opposite. 8000 LOC project, so not exactly large, but it pulls in Boost and CLIPP (a 6000 LOC header-only arg parsing lib) and it takes under 20 seconds to build on a single core xeon VM and under 11 seconds to build on my workstation.

                        1. 5

                          It might be relative. Some languages compile thousands to tens of thousands of lines a second. Anyone experiencing C++ after one of them would be saying “WTF…?!”

                          Then, there’s the more ideal situation like with Common Lisp where you have a REPL for instant results, quick compiles on per-function basis, and fully-optimized compiles. Whatever you need. Most ideal I advocate for is where program analysis and optimization happens in the background as programmer continues to work on whatever is still in their head.

                          1. 1

                            It’ll depend on the project, what you’re changing, and how it’s structured. If you change important low level headers in a large project (6-10 million LOC), you might see a 30-45+ minute build time.

                        1. 4

                          So maybe one should learn C to learn how a “C abstract machine” works then (especially if you want portability)? A computer can execute the instructions of this “C abstract machine” well enough that 95% (just a reasonable guess) of code written eventually executes on top of this “C abstract machine” without real problems. For places where that’s considered inefficient you can always drop out to something where you can don’t use the “C abstract machine” like Fortran or the CPU’s assembly language.

                          1. 3

                            For places where that’s considered inefficient you can always drop out to something where you can don’t use the “C abstract machine” like Fortran or the CPU’s assembly language.

                            I think this problem happens in every language, including the CPU’s assembly language. If it’s not the “C abstract machine” its the “FORTRAN abstract machine” or the “x86_64 abstract machine” (yes, even assembly language. The user level assembly language has no idea of cache lines and levels, out of order execution or anything of the sort going on in the current CPUs, it is essentially executing in an abstract machine too, one that is really close to the original 8086). I don’t think there is any way of avoiding the abstract machine “problem”.

                            1. 3

                              For places where that’s considered inefficient

                              That’s not the point. The point is the model in which you program in C is a different model from what your machine executes, and you must consider both when programming C, leading to code which may seem awkward or extraneous for no self-evident reason if you want full cache saturation. Considering this does not require dropping out of an escape hatch.

                              1. 4

                                That’s not the point. The point is the model in which you program in C is a different model from what your machine executes, and you must consider both when programming C, leading to code which may seem awkward or extraneous for no self-evident reason if you want full cache saturation. Considering this does not require dropping out of an escape hatch.

                                And the model in which you program in Assembly is also a different model from what your machine actually executes, too. It feels like we went through a short period where programmers had a good idea of what their machine actually did, and it worked in general for most machines with the same feature-set, and now we’ve come full-circle to optimization depending on the specific machine.

                                1. 1

                                  And the model in which you program in Assembly is also a different model from what your machine actually executes, too

                                  And that’s fine most of the time. But it’s important to be aware of ofc

                                  and now we’ve come full-circle to optimization depending on the specific machine

                                  Definitely. Depends on the shop you ask though, I guess.

                                2. 2

                                  Also, concurrency, SIMD, side channels…

                                  1. 3

                                    SIMD feels like a bottomless hole sometimes. You feel you’ve gotten pretty deep in vectorization and you find out there’s an entirely different alien way you can do things all over again

                                    1. 2

                                      That’s why I pushed for DSL’s or parallel languages that handle it for us with optional hints. DOD went that route for Exascale funding languages such as Chapel, X10, and Fortress. That was for NUMA and clusters. Futhark is a newer one for GPU’s. I’m sure more like that could be done for SIMD.

                                      1. 2

                                        Many application domains aren’t DOD though 😃

                                        In video game land, Enoki is quite cool as something that goes beyond local vectorization

                                        1. 2

                                          Many application domains aren’t DOD though 😃

                                          Thank goodness. The video games would probably suck. Except the mil sims.

                                          “ Enoki is quite cool”

                                          It is! Thanks for the tip. Might get some use out of that in the future.

                                3. 1

                                  There was a great blog post from a while back that really hammers home the idea of a “C abstract machine.” C Portability Lessons from Weird Machines outlines the radically varied hardware that C “grew up” with.

                                1. 5

                                  I think I could benefit from essentially the inverse premise

                                  1. 3

                                    You’re in luck because someone did exactly that:

                                    https://ds9a.nl/articles/posts/c++-1/

                                    It’s a multi-part tutorial but it’s pretty good. Keep in mind that C++ is a huge language and this only touches up on a small subset of C++.

                                    1. 1

                                      I went through that about a year ago (I had experience with C89 and pre-standard C++ but have been all Java since the late 90’s). My biggest difficulty was all the different standards that are available. Stroustrop 4th edition for C++11 (C++0x) along with a C++ Primer 5th edition got me started on the right path, and now CUDA is forcing me to learn C99.

                                    1. 5

                                      I’m on Slackware Linux, though I have so heavily customized it you will probably only recognize a handful of the programs:

                                      • Firefox
                                      • vim
                                      • mpv (with a custom playlist manager)
                                      • mutt (with custom html email translator)
                                      • a customized version of the Blackbox window manager with custom taskbar
                                      • custom terminal emulator
                                      • custom terminal multiplexer / session grouper (like gnu screen)
                                      • custom slack client, irc client, code search command, and various other little things

                                      I was a KDE user until about 2007 when I tried sloppy focus and actually really liked it… then just went to a more minimal window manager and switched from konqueror to firefox and from there just went nuts writing new stuff for myself.

                                      I also have some qemu VMs and a Windows laptop for some purposes, but for the most part I use my custom terminal emulator on Windows too :)

                                      1. 1

                                        What does your custom slack client do differently than the standard web interface or standard electron client?

                                        1. 3

                                          I use wee-slack for slack.

                                          The biggest thing is that it uses somewhere between 10% and 1% of the RAM that Slack’s own garbage desktop client does, while also having massively reduced interface latency.

                                          Side benefits include a UI I find far preferable and which is easily customizable; logging; and generally having the ability to mitigate Slack’s detriments.

                                          1. 1

                                            Teach me Master, how did you manage to get there, ’cause I tried hard and failed. Slack abandoned the IRC way and they claimed about weechat. I failed many times, and I got to think their claims were void…

                                            1. 2

                                              https://github.com/wee-slack/wee-slack

                                              I found it quite plug-and-play. Note your slack org does need to allow apps (or whitelist wee-slack in particular).

                                              1. 1

                                                I’ve used matterircd a while ago. It’s not a 100% slack replacement, but it was better than running the slack client for a slack with 2 messages a day.

                                                1. 1

                                                  Which is what I did exactly, then I’m asked to an authorization to install this application on our organization in slack, but even the leverage of an admin didn’t allow me to get rid of the damn GUI client.

                                                  I’ll try again (and ask admin again)

                                            2. 1

                                              It has fully custom filters and notification methods, also combining multiple workspaces into one place. Also uses < 2 MB of RAM at startup and virtually zero cpu, which is nice, but the main impetus I had writing it was to tame the notifications. (I don’t like the “desktop notifications” system at all, but also I want all messages in some channels, except bots, and nothing in others unless it mentions a couple keywords or if I replied recently and that just meant my own code.) Another nice benefit is I flattened the stupid threaded conversations nonsense to make them usable.

                                              It basically more resembles an IRC interface.

                                          1. 4

                                            Interesting. I needed a dynamic array library for a project of mine but I wanted it to be type-safe and generic. So I went with a giant macro that allows you to declare a vector for a type, giving you static methods for working with the vector of that type. Debugging when it’s broken can be difficult but you can find problems by bisect-deleting code. Additionally you cannot put comments within the macro which is… not great. But overall it’s still super useful and basically the only additional data structure I need in small projects. We’ll see how long it lasts.

                                            1. 7

                                              When I wrote C I used kvec (https://github.com/attractivechaos/klib/blob/master/kvec.h) which is quite small and easy to understand. Just wanted to point out another option.

                                              1. 2

                                                Thanks! I also wanted not to be worrying about capacity while using the library. Here’s an example (didn’t try to compile it):

                                                #include <stdio.h>
                                                
                                                #include "slowjs/vector.h"
                                                
                                                int main() {
                                                  const char hello_world_s[] = "hello world!", hey_s[] = "hey";
                                                  vector_char hey = {0}, hello_world = {0};
                                                  vector_error err = E_VECTOR_OK;
                                                  int i = 0;
                                                
                                                  // Copy from array example
                                                  err = vector_char_copy(&hello_world, hello_world_s, sizeof(hello_world_s));
                                                  if (err != E_VECTOR_OK) {
                                                    goto cleanup;
                                                  }
                                                  printf("%s\n", hello_world.elements);
                                                
                                                  // Append to vector example
                                                  for (i = 0; i < sizeof(hey_s); i++) {
                                                    err = vector_char_push(&hey, hey_s[i]);
                                                    if (err != E_VECTOR_OK) {
                                                      goto cleanup;
                                                    }
                                                  }
                                                  printf("%s\n", hey.elements);
                                                
                                                  return 0;
                                                
                                                 cleanup:
                                                  vector_char_free(&hello_world);
                                                  vector_char_free(&hey);
                                                  return (int)err;
                                                }
                                                
                                                1. 1

                                                  I like it.

                                                2. 1

                                                  For such cases I would write a code generator that outputs the necessary .c/.h file(s) instead of macros

                                                  1. 1

                                                    Yeah. I’ve been thinking about it and probably should do it.

                                                1. 1

                                                  Since Adélie and Void both support big-endian PowerPC, I am hopeful that both distros will work to support MIPS as well.

                                                  As far as I know Voidlinux does not support PowerPC.

                                                  1. 2

                                                    There have been parts of the port merged upstream; it lives at void-ppc for now.

                                                  1. 4

                                                    Is there a reason you can’t use Cygwin? I use it for developing on Windows. The terminal is fine, and you can even build standalone windows applications without any Cygwin dependency.

                                                    Edit: Referring to the mintty terminal and the mingw64-i686-gcc-core package.

                                                    1. 3

                                                      It’s slow though, especially for CPU intensive tasks

                                                      1. 2

                                                        Came here to ask basically this. I do some Windows development occasionally and just use MSYS2 or whatever with mingw64. Yes it is not fast, but it is usable. I also occasionally just use good old cmd.exe with a Makefile since that is how I started and it’s not like you can’t do that anymore… How does the poster think we wrote software in Windows 95/98 days??

                                                        1. 1

                                                          Mainly I am concerned about input lag–which was quite high when running gnome-terminal from wsl through vcxsrv–although, it may be better with cygwin since that’s running as a native app–except, maybe not: siblings suggest it’s slow.

                                                        1. 1

                                                          I wonder how Gtk+1.2 would stack up to Motif (or as they called it, at the time, “Bloatif”). Kind of disappointed that Qt is so high.

                                                          1. 2

                                                            Along the same lines, I’d love to see the different Qt versions. I assume here Qt==Qt5, but it’s worth noting that Qt has been a useful and widely deployed toolkit since 1.x, which was a lot leaner. (I used to statically link it back in the day.)

                                                            1. 2

                                                              Just check the list, it shows Motif and something called ‘GDK’. Since GDK is not a GUI toolkit I can only assume that this is GTK1.x. Motif uses 1.50MB and as such lies between GDK (which is lower at 1.20MB) and GTK+2 (higher at 2.80MB).

                                                              1. 1

                                                                GDK is the drawing engine of GTK. I assume that’s using GDK to draw, without using GTK widgets.

                                                                1. 5

                                                                  This is mostly the case - GDK is used as an abstraction layer between GTK and the underlying system (Xlib on X11). It was more Glib I was thinking about here than GDK. Still, GTK1 was a relatively lightweight abstraction on top of GDK (and gdk-pixbuf) which did not need (nor support) things like Pango, Cairo, ATK etc. It was lighter than Motif but heavier than Xaw (Athena).

                                                                  Another interesting option for this list would be Xview (Sun’s OpenLook widget library) and the related OLIT (OpenLook Intrinsics Toolkit) which I suspect will end up being more lightweight even than GTK1 while still being perfectly usable. The somewhat sparse OpenLook style fits right in with the current flat UI toolkit trend.

                                                              2. 2

                                                                I remember working with Motif on…some system, I can’t remember which now…some Unix….that didn’t support shared objects, so Motif was statically linked into every Motif application. Moreover, they didn’t do a good job with the archives, so every application had a minimum size of like 2-3MB. This was back when that was an enormous amount of space.

                                                              1. 1

                                                                Another alternative is grepWin.

                                                                1. 2

                                                                  Its vastly inferior.

                                                                1. 3

                                                                  Nice article!

                                                                  I still use my G4 Mac Mini today, on a daily basis. I mostly use it as an sshd, web, and git hosting server. I do software development on it as well.

                                                                  Like the article, the DVD drive went out or doesn’t boot home-burned CD-R discs on my machine. I used to run OpenBSD/macppc but the system compiler (gcc 4.2.1?) did not support C++11. NetBSD had a newer compiler but did not support booting from a USB flash drive and NFS booting seems pretty complicated. I finally gave up and just installed Debian Jessie (which does offer USB bootable media for their powerpc port) and got a C++11 compiler. Debian Jessie is the last stable version to support powerpc and has approximately 1 year of life. Since end of life only goes until June 2020 I have been looking for alternatives.

                                                                  A couple of weeks ago I made the jump to Debian Sid using the notes here: http://powerpcliberation.blogspot.com/2018/07/debian-ppc-status-update.html

                                                                  1. 1

                                                                    The OpenBSD system compiler is now clang where it’s supported, and where it isn’t, GCc will never advance beyond 4.2.1 due to licensing. It’s standard procedure to install GCC via ports, which is made available as egcc.

                                                                    On platforms without Clang, installing new ports on OpenBSD with GCC is like a three-stage rocket. The base system builds a compiler based on the last non-GPLv3 gcc compiler, which builds egcc (which is 4.9.x, but might have recently moved to 8.x), which is then used to compile modern software.

                                                                    In short, OpenBSD (and BSD in general) is working to remove GCC completely where possible, as they consider it unusable, and will never include any GCC compiler code newer than 4.2.1 due to the license change.

                                                                    1. 1

                                                                      I have a diskless fw800 g4 powerbook which I boot from a usb flashdrive, NetBSD is happy to boot from it. Only thing is that it doesn’t automatically enumerate the root disk being on usb so you get asked what the root disk is (sd0 if you haven’t got any other usb disks connected).

                                                                    1. 8

                                                                      Based on the article, it seems like it is not in the distribution of Windows 10 OS. It’s in the Windows Store.

                                                                      1. 1

                                                                        This point is being made over and over again across multiple sites. I don’t understand how it really matters. It’s implemented in the most pragmatic way and is what most users with actually need. Advanced users will either proactively install Python in their preferred method, or when they see they have to get it from the Windows Store then they’ll instead get it in their preferred way. None of this is particularly bad. I guess if you aren’t on the latest Windows 10 it won’t be available, but then it’ll not be available on Windows 7 since there isn’t a store.

                                                                        1. 2

                                                                          It is not installed by default, so other applications will continue to bring their own Python. Is there a possibility to install a Windows Store item as a dependency?

                                                                          I only use Windows at work. My laptop has at least three Python installations. Maybe more I have not discovered yet. Build chains and applications often bring their own.

                                                                      1. 2

                                                                        Archive.org has a better link now: https://archive.org/details/DNALOUNGE-2019-05-28a

                                                                        Which is a bit more mobile friendly.

                                                                        1. 7

                                                                          one huge pro for gtk (that i guess doesn’t feature here because it’s for c++ libraries specifically) is that it’s based on C rather than C++. which makes other language bindings a lot more feasible..

                                                                          1. 3

                                                                            The biggest problem with GTK to me is that it is very large and you have to ship 20+ megabytes of dlls for even a basic C++ “Hello World” application.

                                                                            05/27/2018  11:13 PM           135,553 libatk-1.0-0.dll
                                                                            01/15/2017  06:37 AM            74,400 libbz2-1.dll
                                                                            05/02/2018  01:46 PM         1,019,236 libcairo-2.dll
                                                                            05/02/2018  01:46 PM            37,749 libcairo-gobject-2.dll
                                                                            05/21/2018  01:06 AM         1,672,299 libepoxy-0.dll
                                                                            11/20/2017  02:00 AM           219,464 libexpat-1.dll
                                                                            07/21/2016  12:42 AM            34,176 libffi-6.dll
                                                                            03/11/2018  09:55 PM           289,868 libfontconfig-1.dll
                                                                            05/02/2018  10:27 PM           687,323 libfreetype-6.dll
                                                                            06/19/2018  09:40 PM           141,883 libfribidi-0.dll
                                                                            04/25/2018  01:32 AM            83,088 libgcc_s_seh-1.dll
                                                                            04/25/2018  07:00 AM         1,231,469 libgdk-3-0.dll
                                                                            04/09/2018  12:22 AM           172,637 libgdk_pixbuf-2.0-0.dll
                                                                            05/27/2018  11:44 PM         1,447,420 libgio-2.0-0.dll
                                                                            05/27/2018  11:44 PM         1,143,569 libglib-2.0-0.dll
                                                                            05/27/2018  11:44 PM            26,808 libgmodule-2.0-0.dll
                                                                            05/27/2018  11:44 PM           313,088 libgobject-2.0-0.dll
                                                                            03/11/2018  10:12 PM           235,198 libgraphite2.dll
                                                                            04/25/2018  07:00 AM         6,745,942 libgtk-3-0.dll
                                                                            06/14/2018  12:52 AM           711,178 libharfbuzz-0.dll
                                                                            05/31/2018  05:34 AM         1,055,010 libiconv-2.dll
                                                                            06/04/2018  12:30 AM           132,146 libintl-8.dll
                                                                            04/08/2018  10:08 PM           260,088 libpango-1.0-0.dll
                                                                            04/08/2018  10:08 PM            71,411 libpangocairo-1.0-0.dll
                                                                            04/08/2018  10:08 PM            95,066 libpangoft2-1.0-0.dll
                                                                            04/08/2018  10:08 PM           102,449 libpangowin32-1.0-0.dll
                                                                            03/21/2018  02:30 AM           286,369 libpcre-1.dll
                                                                            09/06/2016  04:07 AM           682,872 libpixman-1-0.dll
                                                                            10/02/2017  04:32 AM           231,566 libpng16-16.dll
                                                                            04/25/2018  01:32 AM         1,435,729 libstdc++-6.dll
                                                                            05/18/2018  04:48 AM            57,317 libwinpthread-1.dll
                                                                            01/16/2017  11:09 PM            93,830 zlib1.dll
                                                                                      32 File(s)     20,926,201 bytes
                                                                            

                                                                            WxWidgets and Qt are similarly large.

                                                                            My preference is smaller and lighter toolkits that have a minimal set of dependencies or can be statically linked into a small (less than 2 megabyte) executable. On Windows my preference then is usually FLTK, FOX Toolkit, IUP (it’s basically like WxWidgets but somehow way smaller), or just using Win32 directly. Since the vast majority of Linux/Unix users probably have GTK installed I have no problems linking to gtk there but it certainly feels messy on Windows.

                                                                          1. 3

                                                                            Although it certainly wasn’t anywhere near the specs of that computer, this post brings back good memories of using my Eee PC netbook (is that really the correct capitalization, Wikipedia?) to run DF while waiting to tutor people in high school. I didn’t have to kill off any extraneous processes to even run it, thankfully, but I did have to live with low framerates. Also, with not being good at the game.

                                                                            One of my favorite tricks with that netbook was that I installed a utility that gave me an expanded desktop, so I could have larger windows open and by pushing my mouse along the edges of the screen, I could move to different areas of the screen. Looking it up just now, I think I found the exact tool I used: “Infinite Screen.” This way I could keep my DF window larger than my screen size and still be able to see everything (though not all at once).

                                                                            1. 1

                                                                              One of my favorite tricks with that netbook was that I installed a utility that gave me an expanded desktop, so I could have larger windows open and by pushing my mouse along the edges of the screen

                                                                              When I first installed Linux in the late 1990s it came with FVWM (or maybe this was a feature of XFree86?) with a “virtual desktop” exactly like you described. Of course being used to Windows 95/98 at the time it was the first thing I disabled.

                                                                              1. 1

                                                                                I’ll have to look that utility up. I think I accidentally triggered similar behaviour in Xorg many years back, but I’ve never been able to recreate it.

                                                                                My laptop screen is 1366x768, which can sometimes be annoying if I want to screenshot things taller than this. My favourite workaround:

                                                                                xrandr --output yourscreenname --scale 2x2
                                                                                

                                                                                2732x1536 is where it’s at, take that 1920x1080.

                                                                                1. 2

                                                                                  Oh, to be clear, that’s a Windows-only utility. I should have said that originally.

                                                                                  The only place I’ve seen that resolution is a Thinkpad T420 with the larger screen mod. Any chance that’s the same for you? I’m lucky in that, when I had that laptop and needed to take large screenshots, I either had a big external monitor or a friend with a retina display.

                                                                                  That xrandr trick is neat! I just tried it out and visually it works well, but my mouse didn’t want to move into the bottom right corner of the screen, interestingly enough.

                                                                                  1. 1

                                                                                    Ooh, I might have to try this on Windows.

                                                                                    My favourite Windows change is to install bb4win, so I get proper virtual desktops. I have not tried it on Win10, but presumably it’s a reliable way of keeping cortana away as well. I used to use Asuite for a program-launching menu, because the one built into BB is pretty crappy.

                                                                                    The only place I’ve seen that resolution is a Thinkpad T420 with the larger screen mod.

                                                                                    1366x768? It’s the standard for almost all cheap laptops these days. Mine is an 11.6” (small) so it not’s a bad option here, but sadly it’s also used for bigger screened laptops.

                                                                                    my mouse didn’t want to move into the bottom right corner of the screen

                                                                                    Eep, that’s a bug.

                                                                                    Are you on Nvidia by any chance? If so: you probably have to stick to using Nvidia’s utilitiy for screen management, not xrandr. I remember having this problem in my days of ATI Catalyst.

                                                                                  2. 1

                                                                                    I may be wrong, but wasn’t this the default behaviour on X11 (maybe XFree86 before Xorg took it’s place) at some point?

                                                                                    I recall often accidentally running into this problem many times when my graphics card drivers weren’t properly installed yet, and my card only reported basic 640x480 or 800x600 support through the BIOS.