Posts

Showing posts with the label software_improvements

should I be worried about chromium's "stack smashing detected" error messages, or is it normal burbling?

 [82523:82523:0528/154623.871428:ERROR:chrome_browser_cloud_management_controller.cc(162)] Cloud management controller initialization aborted as CBCM is not enabled. *** stack smashing detected ***: terminated *** stack smashing detected ***: terminated *** stack smashing detected ***: terminated *** stack smashing detected ***: terminated *** stack smashing detected ***: terminated *** stack smashing detected ***: terminated Is this something to worry about?  Please can we have applications that don't spew debugging messages to standard error, and reserve standard error for important stuff directed at the user?

a web page broke my firefox broke my OS, in 2023

I noticed my PC's fans whirring loudly. Running top(1), I saw that firefox was pegging the CPU.  In most cases, this is caused by a web page pegging firefox, and, more decisively, by firefox allowing itself to be pegged.   It was not possible to select different tabs in firefox windows to get an idea what was going on (per-app MDI like tabs is in any case reflection of failure to handle groups of windows at the OS / window-manager level.  Multiple app instances / documents / tabs in one big process ala firefox is itself terrible design.  Web pages / documents should not live in the same memory space and process together just because they being handled by the same app, let each tab (window / doc / web page / app instance) be its own process) Firefox was completely unresponsive.  Moving the mouse started to get glitchy.  I had to move the mouse, and then wait a few seconds.  I tried killing the window with my window manager commands "Close", "Delete...

basic ikiwiki on ubuntu 22.10

Image
It's a sad fact of computing in 2022 that you can't just "sit down and write", given requirements something like the following: documents in sensible, specified format amenable to external version control, backups, and other manipulation easily searchable works on standalone computer -- if it's in the cloud, then it's a service, not an item of computing you can do yourself (must) presentable, or even looks good, both on screen and in print editor works by default in prose (paragraphs) mode, and never makes the user worry about line-wrapping documents by default, including in editor (which may be same as viewer), are presented at sensible of abstraction, such as titles, sections and paragraphs, not as pretend sheets of paper outline view (optional) visual peace (no flashing cursor or other distractions) by default beautiful by default, with custom styling possible  decent hyperlinking Off the top of my head, the closest an application comes to an acceptable exp...

is lunix really limited to 32000 processes?

  I've just bought a server with 1.5TB of RAM.  At 1-2MB per process, that would be running a million processes.  That might not make sense with only a few dozen cores, but running more than 2^15, or ~30k, processes, which, as far as I can tell is the current limit in Linux, must be useful sometimes. According to a part of something calling itself " The Open Group Base Specifications Issue 7" [0] (I'm not sure, but this may be stuff common to both the C and POSIX standards)   : blksize_t , pid_t , and ssize_t shall be signed integer types. The relevant one is pid_t.  It doesn't place a constraint on the size.  What would break if we had a system with 32 or 64 bit signed pid_t ?  (Is it common for client code to make wrong assumptions about this?) [0] https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_types.h.html What error do we currently get if the system runs out of pids? My basic idea is that the multi-user nature of the existing U...

device direct communication over bluetooth, wifi, usb, ethernet, etc

There should be a direct-link protocol.  Pairing (or equivalent) a pair of devices once should result in an authenticated link over any mutually-supported underlying link such as bluetooth, usb or wifi.  The same services should be available over any of these links (where physically possible) whether accessing files, transferring photos, sharing internet, and so on. Instead, there is currently no unity across the links.  Bluetooth pairing is one thing, wifi might be used to share via a hotspot with its own WPA password, USB asks you on the screen if you trust your laptop (each time) and then presents files over MTP, which is okay for photos but horrible for general filesystem hierarchies.  There doesn't even seem to be a sockety fs protocol over USB: it's either block device, which is the wrong level, or MTP, which is unsuitable.  It should look like nfs or 9p, adapted somewhat for the purpose, stuck in its own USB profile.  Usually the best way to transfer...

MDI, including tabs, should be done at window manager level

This is obvious, right? Multiple Document Interfaces, including tabbing like in browsers, should be a window manager function, not a per-application function.  So, why isn't it?  Anywhere, at all? Meanwhile, the world moves even further away from the correct layering.  Craplications like chromium now do their own window decorations and controls.  Some GNOME things don't even seem to be X windows any more.  WTF is going on?

fitting image to page when printing in gimp

My name's Tom and I work full-time in compliance.  Not as an employment.  But banks and the like just keep giving me never-ending admin tasks, in order to have access to my own property.  I don't see how economic growth could be possible under such a regime, and suspect that it's not, but here we are. One of the tasks of this kind of compliance officer is to print out screenshots, as banks love things on paper and in PDF format, which stands for "print digital format".  On Debian, not knowing better, I use GIMP for this. A reasonable default when printing an image to an A4 sheet might be to set a margin around the sheet, and then fit the image to fit the sheet within this margin, whatever comes first, height or width, subject to orientation of the sheet and aspect ratio of the image.  Without going below some minimum resolution, maybe 100 dpi. GIMP does not do that.  My screenshots, of xterms, were coming out tiny.  I looked up how to change it.  ...

killing trees of Unix processes

Unix semantics around processes and signals are a bit gnarly. One issue I have with signals is that they conflate doing some simple IPC with a process, and doing something to a process.  In other words, the catchable signals and the uncatchable signals (and perhaps uncaught catchable signals -- it would depend on the design) are such categorically different items, that they should not be lumped together under "signals".  You want to kill a process, you kill it.  It doesn't have a say.  You want to let a process know about something, request it do something, whatever, great, you talk to it, that's a different thing. An issue I have with processes is that they are apparently hierarchically organised, via each process's parent process id, which is established at fork time, but this hierarchy is hard to make use of, and easily falls apart.   Trees of processes naturally represent useful things.  The OS as a whole is the tree rooted at (conventionally) init...

output redirection at different levels (and a standard error developer debug crap rant)

 What's the difference the way output redirection is handled in this: $ foo > bar and this: $ xfoo -geometry +100+200 There are various differences, but the one I am trying to illustrate is as follows. In the first example, foo's standard output, which is a one-way text stream, and a Unix / POSIX concept, is redirected to the file called bar.  Whether or not it is redirected does not depend on anything from foo.  The shell, which is an execution environment that runs foo and opens bar and redirects the standard output (and prints that $ prompt at the beginning of the lines), takes care of it.  If foo writes to its standard output, this output ends up in bar.  If foo really wants to care, it can look at its standard output file descriptor, and find out whether it's on a filesystem, or is it pipe, or a terminal, and find out all about about it.  But by default, it doesn't have to care.  This is nice. In the second example, convention indicates this is...

the state of clock synchronization and setting in debian

 In the PC "architecture", there are two main clocks in the sense of what's the time.  The hardware clock lives on the motherboard, and can be spotted by its button-shaped CR2032 battery, which maintains the time even when no power supply is connected.  The OS clock exists in volatile state, somehow between the memory and the CPU, meaning it is lost when the OS is shut down.  From the perspective of a POSIX user, the OS time is accessed thru functions like time(2), or the date(1) utility. On boot, the OS clock gets its time initialised from the hardware clock.  Shortly after, depending on the system's ntp configuration, and the right network access, this may get replaced straight away with an ntp server's notion of the time.  Therefore, the sysadmin may not notice if the hardware clock is wrong, if the system gets its time from ntp shortly after each boot.  This creates a situation where, if the system has to be brought up without network (or internet,...