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

help-circle




  • That’s that speed the ports are capable of. 10/100/1000 megabits per second. Most things with an Ethernet port nowadays are 10/100/1000 capable, and 2.5Gb is becoming reasonably common.

    Weirdly, Roku and other smart TVs are often only 100Mb capable since 4k streaming only requires about 60Mb and if you are squeezing pennies a 1Gb port is a bit more expensive.

    10Gb is just starting to get available for high end consumer devices.


  • My router only has four downstream ports, and due to the layout of my house I only want to run one cable from the router to my home office anyway. If it had enough ports and the house was laid out differently I wouldn’t have bothered with the switch.

    Unmanaged switches are usually quite a bit cheaper and just work. You plug everything in and that’s it. Managed switches need configuring and cost more. I paid $25 for my 8 port 10/100/1000 switch, while the managed version is about $120. With a managed switch you can do things like turn individual ports on and off, traffic limit and monitor per port, and other fancy networking things that I’ve never bothered with.









  • I wired my house with cat6 when I moved in. The overall setup looks like 10G fiber to the house -> 2.5G capable router -> 2.5G capable NAS running *arr stack. Also off the router is a single cat6 run downstairs -> 8 port 1G unmanaged switch, which is connected to my desktop, work dock, parters dock, TV, and backhaul run to the back of house wifi extender. The desktop, both docks and wifi extender are 2.5G capable. The TV is 100M. This has been extremely reliable. I plan on upgrading the switch to a 10g capable one at some point, and then the router. Since the switch is unmanaged, is there a good way to know when it is the limiting factor and I should update it?






  • BartyDeCanter@lemmy.sdf.orgtolinuxmemes@lemmy.worldGUIs
    link
    fedilink
    arrow-up
    7
    ·
    edit-2
    13 days 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.