Nate
I don't often go to the movies, but being able to share #projecthailmary with my wife and son was awesome. Some differences with the book, yes, but I didn't hate them. It had all of the same emotional impact as the book, and they kept the ending intact. Highly recommended.
I've read a couple of different post-mortems on the uutils CVEs in Ubuntu now. I still love Rust, but I'm struck by a couple of things. A lot of this comes down to TOCTOU, time of creation to time of use. Those issues would be mostly mitigated if the code took full advantage of Unix features such as passing file descriptors rather than paths, or passing permissions to file creation functions instead of creating a file and then modifying the permissions. The path of least resistance for Rust code is to use the cross-platform abstractions that work on Windows as well as Unix-like systems.
I guess what I'm saying is that zero-cost abstractions might actually be a difficult promise to keep. It's mostly true in terms of performance, but this is a good example of another sort of cost you are likely to pay when details are abstracted away. I'm also reminded of how much I like that Harelang doesn't attempt to support closed-source platforms. I think that's a wise choice that more projects should consider at this point.
Once again though, I still like Rust a lot and will continue to use it. I'm less keen on rewrites than I was when I was just starting to program, but for any kind of greenfield project I think Rust is still a great choice, so long as the programmer still takes the time to understand their code fully.
I've played around with NetBSD over the years. Never tried to use it as a daily driver though. In light of the fact they're just about the only viable OS that's taken a string stance against AI contribution, that might be about to change.
There are issues of course. Some software is massively outdated in Pkgsrc (the NetBSD packaging system) or just plain non-existent. But 10.0 feels quite a bit snappier than earlier versions. I could get to like it I think.
#Sunstone browser now has a start page, with default search provided by DuckDuckGo. All of Sunstone's internal pages are going to be linked through the menu bar provided in the default page template. I am no web designer, but I've taken time to make the design responsive and hopefully nice and cleanly functional. Shrink the page down past a certain level and the sidebar becomes a top bar.
There are still some omissions in the "internal" pages that are available. Right now you get the start page, searchable bookmarks and an "all tags" page, which really neads some visual tweaking.
Some other little bits of progress include fixes to the vertical tabs so that now you can drag and drop to reorder from the vertical tab bar, the regular tab bar or the overview and everything syncs up correctly. I also added a "New Tab" button to the vertical tabs, which had been missing in the first iteration.
#programming #Vala #Browser #WebBrowser #Gtk #WebDesign #FreeSoftware
#Sunstone #Browser got a few nice quality of life improvements today.
- A slim progress bar at the top of the WebView to display loading progress
- Page zoom via keyboard shortcuts. Currently there is no user feedback to display the zoom level because I still need to decide where to fit that into the interface and how it should look.
- You can create bookmarks now via the bookmark editor, called up via the button just to the right of the address bar. Some limitations apply (more on that below).
- You can visit a bookmark just by typing its name or alias into the address bar. This is similar to the 'quickmarks' feature in Qutebrowser, except integrated right into the bookmarking system. It's quite handy - I came here by opening the browser, hitting Ctrl/g to focus the address bar entry and typing 'slp [Enter]'. That's five keystrokes after opening the browser and no touching the mouse.
I had been playing around with a custom data structure for storing and quickly looking up bookmarks, but I've decided to go easy mode and just use an sqlite database. I'm considering doing the same for history so that I can store more context for history items, but I digress. Sunstone is going to organize your bookmarks via tags instead of folders, which should make it quick and easy to find old bookmarks by topic. The database has a table for Bookmarks and a table for Tags. The current limitation with the editor is that when you update an existing bookmark and change it's tags, the tags table isn't updated. I just need to get around to writing the logic to handle that properly. I also think it wise to state that the current bookmark schema may change.
Currently there is nowhere in the interface to display bookmarks. I'm planning on having two different views for that, one in the sidebar and one as a webpage with the sunstone://bookmarks/ uri. The plan is to also integrate bookmark names, url's and aliases into completion for the address bar.
I have very little to add to this story. The US Supreme Court just gutted the remnants of the Voting Rights Act.
Short rant. My tuition is company paid. That's great, and I'm grateful for it. But it definitely feels like punishment that every dime is considered taxable income. Bumps me up into a significantly higher tax bracket.
#Sunstone #browser grew a couple of features over the past two days.
- History
This is in the same `places` database as bookmarks. For the time being, there is no interface for browsing history or deleting entries. I've added two settings, max_entries and max_days. Every fifteen minutes a background job runs at low priority to clear and history beyond what those two settings allow. There are a lot of plans for how history is going to be displayed such as grouping visits by host and deleting items from arbitrary ranges of time.
- Address bar completions
Whatever you type into the address bar is now saved and used as entry completions. This was something I was having a hard time living without while dogfooding the browser as my daily driver.
There was a lot of code cleanup and refactoring done in the past couple of days as well. Most of the Sql used to access the places database is stored as snippets in the GResources vfs.
I spent a few hours today rethinking the schema for the bookmarks database in #Sunstone . The result is better functionality in less code, which is hopefully a lot less brittle. This database is also going to be used for history, and it's tied in to parsing address bar queries, so it's definitely worth getting it right before going too much further.
Next steps are going to be displaying bookmarks in list form in the sidebar, followed by serving a bookmarks page at the uri sunstone://bookmarks. Since the bookmarks are organized by tags, each tag will be available as a subfolder of that url (eventually).
It was a better day than I expected. My younger son came over and visited for a few hours. He's starting a new job at KSU tomorrow, so he'll be working really close to where I live and we might be seeing a lot more of him going forward.
Posting from Swb for the first time. Just enabled persistent cookies, so logins will persist across sessions. Some other goodies as of today:
- favicons in tab labels
- loading feedback via a spinner in the tab labels
Lots of other smaller features are underway but not finished. I did some groundwork on vertical tabs this morning, and layed out the classes for history storage.
Does Pam Bondi know that the Dow is no longer above 50k?
#Sunstone browser now has a searchable history. The period to display can be set to the last hour, day, week, a custom timeframe or 'all'. There is also an option to group the results by host. By default, 50 results are displayed per page.
This is a WIP and subject to change. This biggest miss so far is a link in the page to navigate beyond the first page of results, although you can get there by appending 'page/' to the url. The link to the host also needs fixed to point to the correct uri scheme. There are other missing features, such as the ability to delete history items or bookmarks, and while there is a growing list of settings there isn't anywhere to change them yet. One step at a time.
History and bookmarks are currently displayed in web page form. I'll be adding abbreviated displays in the sidebar eventually.
#webbrowser #programming #vala #gtk4 #webkitgtk
https://codeberg.org/jeang3nie/sunstone
Another nice to have feature just dropped in #Sunstone browser, access to WebKit's built in Web Inspector. This is currently tied to the context menu that pops up when you right click on a web page. You can choose to either just open the inspector or else inspect the element that was just clicked on.
A little bit of exploration showed that the inspector is just as fully featured as Mozilla's. Definitely nice if you're doing web development work.
Every time I am forced to write Java, I am reminded of just how much I dislike Java.
Finished up page search in #Sunstone this morning. Unfortunately I can't pay changes because of codeberg being down. I'm the meantime, watching Krull (1983). I remember living this movie as a kid, but I could never remember the name of it. In spite of being almost comically bad and stereotyped at times, there is definitely something endearing endearing about this film, still.
It makes me sad sometimes that there is such a lack of fantasy films now compared with how many were made in the 80s. A lot of those movies were terrible, but as a kid I never really noticed. It provided fertile ground for a young mind to dream.