• 0 Posts
  • 154 Comments
Joined 3 years ago
cake
Cake day: June 15th, 2023

help-circle


  • BartyDeCanter@lemmy.sdf.orgtolinuxmemes@lemmy.worldGUIs
    link
    fedilink
    arrow-up
    7
    ·
    edit-2
    8 hours ago

    So true. I mostly live in the embedded world but have had to write GUIs from time to time, mostly to connect and send commands to some sort of embedded device.

    I always start with a cli version for testing and then write the GUI. A quick wrapper around the comms library and I’m done.

    But there are so many annoying fiddly little details in the GUI to deal with that it usually takes as long just to write the GUI as it does the entire rest of the code. Layout, menus, tooltips, icon choices, dealing with screen sizes, DPI, resizing windows, responsive data, etc.

    Edit: A simple example that I’ve dealt with many times is reading and writing config data. For the CLI version it’s typically two commands:

    ‘tool read_cfg’ reads from the device and prints the config to stout

    ‘tool write_cfg’ reads a config from stdin and sends to the device.

    Add a ‘-f’ option to use a file instead of stout for people that don’t remember how to use redirects. Add a couple of documentation sentences to the help command. If there are any issues, print them to stderr and bail. If the user wants to edit the config they can use whatever $EDITOR they prefer.

    The same functionality in a GUI means that you have to first implement an editor for values. In my case that was generally a bunch of nested key/value pairs so I could probably find a widget that would work. And then understand how it handles being resized, gets styled, uses tooltips, etc. Of course there would need to be some code to get the data into and out of that widget which would probably need massaging. Then I need to let the user know if there are local edits. And then there is the fact that the data is now in three places, on a local disc, on the device, and in the editor and I need to communicate with the user that there is a difference between loading and saving from disc vs the device. Do I give a warning that loading from once place will overwrite anything they’ve changed in the editor? How do I make the four load/save buttons have obvious icons? And how to handle errors? An annoying pop up? Partially load the data? Something else? So many little things that have to be designed, implemented, and tested.




  • Are fine, but not 100% compatible with all Office files and very heavyweight for viewing a document.

    The problem is that Office file formats are an “open” standard but not a real open standard. PDF is.

    Edit: Hell, not even all Office files are openable in all modern versions of Office. I have an Excel file I have to use once a quarter that will only open in locally installed versions of Office, not Office365. I keep a VM with Windows on it just for this one file.




  • The state of office desks has been continuously getting worse my entire career.

    The very first place I interviewed had small private offices with a door for everyone. They weren’t any bigger than a decent sized cubicle but were real separate rooms and most of them had exterior windows. I didn’t get that job though.

    My first desk at my first engineering job was in a cubicle with real six foot tall walls, a window with a nice view, big L desk, shelves, filing cabinets, etc.

    Then I got the same setup, but in a fabric cube. Honestly, not really a downgrade. I had that setup three times, and the only difference was how good the view was.

    Then the same but no windows.

    Then a smaller cube with a simple 6 foot desk and a single cabinet.

    Then a line of 6 foot wide desks with privacy screens on three sides.

    Then privacy screen on left and right only.

    Then no screens.

    Then four foot desks.

    My current office is four foot desks that are hotdesked for most people. But we are also completely remote if you want, so I use my nice desk that I built at home 90% of the time.


  • If you take the tree of life showing the evolutionary branch, you won’t be able to pick off a branch that includes all of the things you would think of as “fish” but excludes all of the things you think of as “not fish”.

    The reason for that is that all land animals with a four limb body plan, including reptiles, mammals, and birds dinosaurs evolved from a family of fish called tetrapods. But there are still tetrapods in the ocean that you would think of as “fish”, and I don’t mean whales.

    Hank Green has a much more entertaining and complete discussion at https://youtu.be/-C3lR3pczjo




  • In my case, I use several different types of machines: Personal Linux desktop, personal low end Linux laptop, remote servers where I have sudo, work Mac, shared remote work servers where I don’t have sudo. I want my setup to be basically the same everywhere so that my muscle memory works, but there are some things that also need to be a bit different for each. Hence, a dot files manager that lets me run one command to keep my environment consistent in all those different targets. I use chezmoi + git for it nowadays.