Updating the 2007 version by Vidar Madsen
Command Line UI for managing Azure DevOps Pull Requests
Ground Up Implementation of DES
Database Project
Paper critiquing and plans to modify the system.
An Adaptive Range Filter Implementation In Elixir
OpenGL projects
just my configs
Port of valgrind to the Dragonfly BSD operating system.
Parallel Computing One Project @ RIT
startedOmnifarious/posixpp
started time in 38 minutes
PR opened SerenityOS/serenity
WindowServer seems to only notify clients of theme changes when they have a Window. As SystemMenu spends most of its time connected to WindowServer without displaying a window, it misses most theme changes. This PR adds a new asynchronous IPC call to WindowServer (RefreshSystemTheme
,) which causes WindowServer to reply with an UpdateSystemTheme
message. A relevant helper method is added to LibGUI::Window, and called in SystemMenu::ShutdownDialog's constructor so that it immediately receives and processes an UpdateSystemTheme
message containing the current system theme shbuf ID.
pr created time in an hour
pull request commentSerenityOS/serenity
Kernel+LibC+UserspaceEmulator: Handle MAX_PATH more gracefully
This is great! 😀
I was trying to do something similar with Core::File::read_link()
— please take (another) look at that. So you think it makes sense to do this at the LibC level? Perhaps it does! What are the implications for Core::File::read_link()
then?
But please don't allocate 4KB for the initial buffer, that's way too much for normal paths.
comment created time in an hour
pull request commentSerenityOS/serenity
LibGUI: Don't bubble key events up to parent windows
@awesomekling Not sure if this is the right solution. Should maybe all Window
events be accepted? Or are there legitimate cases where a parent window would want an event that was technically sent to another window? Seems like EventLoop::pump
will always bubble them up unless they're accepted.
comment created time in 2 hours
PR opened SerenityOS/serenity
Always accept the key events so that they don't bubble up to the parent object.
Fixes #4967
pr created time in 2 hours
pull request commentSerenityOS/serenity
DisplaySettings: Add UI for switching the scale factor
Right, that's what it'd do. As the commit message says, I tried the other behavior first but it gets a bit messy because the lower few resolutions at 2x are below Serenity's minimum resolution.
Exposing logical coordinates everywhere is self consistent with the code too. I think I'd like to try this for a bit and see how it feels. We can definitely iterate on the ui though.
comment created time in 3 hours
issue commentSerenityOS/serenity
LibGUI: Modal dialogs flow uncaught key events to parent window
This behaviour is also present in Terminal with the Settings and About dialogs.
comment created time in 3 hours
pull request commentSerenityOS/serenity
DisplaySettings: Add UI for switching the scale factor
Oh, and I didn't click "Apply" yet in screenshot two. When you click "Apply" after switching from 100% to 200% without touching the resolution dropdown, the qemu window sizes doubles in each dimenson.
So then it would use a display resolution of 2048x1536 in this particular example? That sounds confusing when it only shows 1024x768.
comment created time in 4 hours
pull request commentSerenityOS/serenity
DisplaySettings: Add UI for switching the scale factor
Hm, I can't see a button for this in Ubuntu.
Maybe it requires certain hardware support to show up? Not sure, Here's how it looks like on 20.10:
Windows only has a ui scale slider and no pixels at all as far as I can tell – I guess it always uses the display's native resolution? (But a qemu window has no such thing as a native resolution.)
Well in Windows 10 it's the madness of settings all over the place. I believe the resolution setting is in one place and then you have to click on advanced settings or something and then they have it there. Too lazy to boot into it to take a screenshot, but it's effectively the same as in Ubuntu: You pick the resolution as-is (in most cases you'd pick the native resolution of the display) and then a scale factor where 1x/100% is normal, 2x/200% everything is twice the size.
comment created time in 4 hours
issue openedSerenityOS/serenity
LibGUI: Modal dialogs flow uncaught key events to parent window
Discovered this whilst trying to use TextEditor via keyboard navigation only. I attempted to close TextEditor having unsaved changes via Alt+F4. This opened the 'Unsaved Changes' modal. I struck the 'y' key, more or less expecting this to save changes, however it seems these keys haven't been bound yet in these dialogs (this is another issue.) To my surprise, my keypresses were still flowing to the text editor, even though the modal dialog was in the foreground. Enter/space still action the highlighted button in the dialog, so it seems that only the uncaught keypresses are flowing to the parent window.
Screenshot
created time in 4 hours
pull request commentSerenityOS/serenity
Applications: Basic implementation of Run
fwiw,
TextEditor
has a suggestions API you can use (on that note, maybe the suggestion trigger should be configurable?), and I thinkTextBox
(which is aTextEditor
) has a history thing.
That does look interesting, my original plan was to replace the TextBox with an editable ComboBox and populate it with the Run history, however using the TextEditor autocompletion may be another possible route. I feel the combo option would be the simplest to implement, and keeps us most true to a Windows-style Run, however I'd be open to the idea of possibly doing cool things with TextEditor suggestions.
By the way, I've just rebased the PR onto master and pledged sendfd
so we should be working with the anonymous file changes :)
comment created time in 5 hours
pull request commentSerenityOS/serenity
DisplaySettings: Add UI for switching the scale factor
Oh, and I didn't click "Apply" yet in screenshot two. When you click "Apply" after switching from 100% to 200% without touching the resolution dropdown, the qemu window sizes doubles in each dimenson.
comment created time in 5 hours
pull request commentSerenityOS/serenity
DisplaySettings: Add UI for switching the scale factor
Hm, I can't see a button for this in Ubuntu. (I'm using https://en.wikipedia.org/wiki/Cinnamon_(desktop_environment) ). Windows only has a ui scale slider and no pixels at all as far as I can tell – I guess it always uses the display's native resolution? (But a qemu window has no such thing as a native resolution.)
comment created time in 5 hours
pull request commentSerenityOS/serenity
DisplaySettings: Add UI for switching the scale factor
Hm that seems rather confusing. I would have expected things to be twice as big when I select that option. At least that's what Windows and Ubuntu do. It would never cross my mind that I'd have to select a resolution other than the monitor's native resolution, half the resolution. Or am I misunderstanding this?
comment created time in 5 hours
issue commentaxboe/liburing
liburing/io_uring not working in kernel version 5.9+ on Ubuntu
Yes, I'm using read, not recv. Turns out with recv this behaves as I expected! Thanks so much, I'd never have figured this out, I've always assumed recv was the same as read except that you can pass flags.
well, it's a io_uring specific behaviour, read(2) and et al. don't do that.
Does this depend on the kind of file descriptor I'm reading from? I think when I was reading from stdin instead of a socket I did see the short reads.
It should not. There was some specific bits that can indirectly slightly shift the observable behaviour, but that's not for sure
comment created time in 6 hours
pull request commentSerenityOS/serenity
DisplaySettings: Add UI for switching the scale factor
(fuzzer build is "/home/runner/work/serenity/serenity/Userland/Libraries/LibGfx/Bitmap.cpp:502: undefined reference to `Gfx::Bitmap::to_bitmap_backed_by_anon_fd() const'", not caused by this change, already broken at head.)
comment created time in 6 hours
pull request commentSerenityOS/serenity
DisplaySettings: Add UI for switching the scale factor
comment created time in 6 hours
issue commentmicrosoft/mssql-docker
SQL-Server 2019 docker container fails to start with -v option
I have this issue in k8s. :((
# k logs mssql-57f6f78dbb-4jwwk SQL Server 2019 will run as non-root by default. This container is running as user mssql. To learn more visit https://go.microsoft.com/fwlink/?linkid=2099216. /opt/mssql/bin/sqlservr: Error: The system directory [/.system] could not be created. Errno [13]
And, when I change the mapping to /var/opt/mssql/data
I get this :
This container is running as user mssql.
To learn more visit https://go.microsoft.com/fwlink/?linkid=2099216.
2021-01-15 23:50:05.95 Server Setup step is copying system data file 'C:\templatedata\master.mdf' to '/var/opt/mssql/data/master.mdf'.
2021-01-15 23:50:06.05 Server ERROR: Setup FAILED copying system data file 'C:\templatedata\master.mdf' to '/var/opt/mssql/data/master.mdf': 2(The system cannot find the file specified.)
ERROR: BootstrapSystemDataDirectories() failure (HRESULT 0x80070002)
Why is an Ubuntu
image looking in C:
drive for template data?
comment created time in 6 hours
Pull request review commentSerenityOS/serenity
Kernel+LibC+UserspaceEmulator: Handle MAX_PATH more gracefully
char* realpath(const char* pathname, char* buffer) return nullptr; } size_t size = PATH_MAX;- if (buffer == nullptr)+ bool self_allocated = false;+ if (buffer == nullptr) { buffer = (char*)malloc(size);+ self_allocated = true;+ } Syscall::SC_realpath_params params { { pathname, strlen(pathname) }, { buffer, size } }; int rc = syscall(SC_realpath, ¶ms); if (rc < 0) {+ free(buffer);
Adding bool self_allocated = false;
and self_allocated = true;
in 7f66663 would make more sense in my opinion though.
comment created time in 7 hours
Pull request review commentSerenityOS/serenity
Kernel+LibC+UserspaceEmulator: Handle MAX_PATH more gracefully
char* realpath(const char* pathname, char* buffer) return nullptr; } size_t size = PATH_MAX;- if (buffer == nullptr)+ bool self_allocated = false;+ if (buffer == nullptr) { buffer = (char*)malloc(size);+ self_allocated = true;+ } Syscall::SC_realpath_params params { { pathname, strlen(pathname) }, { buffer, size } }; int rc = syscall(SC_realpath, ¶ms); if (rc < 0) {+ free(buffer);
Oh, nevermind. you added it in ed3410f but only used it from 7f666635. I didn't notice.
comment created time in 7 hours
Pull request review commentSerenityOS/serenity
Kernel+LibC+UserspaceEmulator: Handle MAX_PATH more gracefully
char* realpath(const char* pathname, char* buffer) return nullptr; } size_t size = PATH_MAX;- if (buffer == nullptr)+ bool self_allocated = false;+ if (buffer == nullptr) { buffer = (char*)malloc(size);+ self_allocated = true;+ } Syscall::SC_realpath_params params { { pathname, strlen(pathname) }, { buffer, size } }; int rc = syscall(SC_realpath, ¶ms); if (rc < 0) {+ free(buffer);
You forgot did not use self_allocated
.
comment created time in 7 hours
PR opened SerenityOS/serenity
This is the surprisingly short result of a surprisingly long discussion about long paths. Now
This covers all cases of that use MutableBufferArgument
(readlink
and realpath
). If this gets general approval, we should implement a similar "retry dance" for other syscalls that can return arbitrarily long paths, at least getcwd
.
CC @bugaevc, what do you think? :)
pr created time in 7 hours
push eventSerenityOS/serenity
commit sha e83799dc02dfd092cf8970e7df587cd24eadc25c
AK: Add JsonArray(const Vector<T>) constructor This simplifies creating a JsonArray from a Vector<T> (when there's a JsonValue(T) constructor overload for T, that is).
commit sha 7ad9b116f7aef7bce5f8b7abe6095aa7a71804ee
AK: Add String::join() helper function This is a simple wrapper around StringBuilder::join().
commit sha 568cde5e233633da1cc199406374bb996236b3cf
Kernel+LibELF+LibCoreDump+CrashReporter: Use JSON for ProcessInfo This is in preparation of adding (much) more process information to coredumps. As we can only have one null-terminated char[] of arbitrary length in each struct it's now a single JSON blob, which is a great fit: easily extensible in the future and allows for key/value pairs and even nested objects, which will be used e.g. for the process environment, for example.
commit sha 3718a16f5903ebacaa5043c9dd477251a17f35b6
CrashReporter: Put backtrace TextEditor in a TabWidget Since CrashReporter will be showing more info from coredumps soon, we need tabs to put those things somewhere! :^)
commit sha 057ae36e32da6d0d6b4ba5afdf90a31dd6e950fc
Kernel: Prevent threads from being destructed between die() and finalize() Killing remaining threads already happens in Process::die(), but coredumps are only written in Process::finalize(). We need to keep a reference to each of those threads to prevent them from being destructed between those two functions, otherwise coredumps will only ever contain information about the last remaining thread. Fixes the underlying problem of #4778, though the UI will need refinements to not show every thread's backtrace mashed together.
commit sha 7668e968afff92d90f08c5467e93e89366d39750
LibCoreDump+Crash{Daemon,Reporter}: Make backtraces thread-specific We want to show an individual backtrace for each thread, not one containing backtrace entries from all threads. Fixes #4778.
commit sha 1ccc2e6482aa9567039c8bc8b9df35f9275c4947
Kernel: Store process arguments and environment in coredumps Currently they're only pushed onto the stack but not easily accessible from the Process class, so this adds a Vector<String> for both.
commit sha 0187fd4fdd7c9272265d24abe9a37debfb864dee
LibCoreDump: Expose arguments and environment We can pull those from the coredump's ProcessInfo JSON, do some basic sanity checks and expose them as ready-to-use Vector<String>s.
commit sha 33c31e2198d6cc4cfde5ced24188d5894b5b060c
CrashReporter: Show arguments and environment Arguments as a simple label, environment in a new tab. :^) Closes #4779.
commit sha 6f666c20f5ae95a4aaef4da61eb301887c07eb20
CrashReporter: Show CPU register state for all threads Closes #4777 .
push time in 8 hours
issue closedSerenityOS/serenity
CrashReporter: Show CPU register state for all threads
It would be very nice if we could see what was in the CPU registers when the crash happened.
closed time in 8 hours
awesomeklingissue closedSerenityOS/serenity
CrashReporter: Show how crashed process was invoked (arguments + environment)
It would be cool if we could see the arguments and environment passed to the crashed process.
closed time in 8 hours
awesomeklingissue closedSerenityOS/serenity
CrashReporter: Show backtrace for all threads
Right now it seems limited to one thread. If I crash FileManager after it has spawned a thumbnail generation thread, I only see the thumbnail thread backtrace, not the main thread.
(To reproduce, open FileManager and browse to /res/icons/16x16 or any directory with images, then killall -ABRT FileManager
)
closed time in 8 hours
awesomeklingPR merged SerenityOS/serenity
As promised. Crashing programs just got even more exciting!
Featuring:
- Tabs, because there's no way all of this will fit into the UI otherwise.
- Per-thread backtraces
- CPU register states (also per-thread)
- Process arguments and environment
pr closed time in 8 hours
push eventSerenityOS/serenity
commit sha 633915e792d7de56ce30fa527d4421d16e80ec6c
LibGfx: Make Gfx::ShareableBitmap use anonymous files instead of shbufs
commit sha 333366a99d09ede55a025f7294617e5d89ce630b
WindowServer+Taskbar: Send WM icon updates as Gfx::ShareableBitmap Window icons in Taskbar were previously received in WM events with shbuf ID's. Now that Gfx::ShareableBitmap is backed by anonymous files, we can easily switch to using those.
commit sha 71f50b6e94845cda078f08fbdc8a1cf19cc5d086
LibGUI: Window icons no longer need to be backed by shbufs This allows us to remove Window::create_shared_bitmap() entirely.
commit sha 4839f36f5ed688cb56171a50e11845f7a44cf0c4
LibGUI: Fix OpacitySlider hairline disappearing towards the left Whoops, we were scaling the alpha channel of the hairline color along with the RGB channels.
push time in 8 hours