User talk:Lars Hint

From Gentoo Wiki
Jump to:navigation Jump to:search
Note
Before creating a discussion or leaving a comment, please read about using talk pages. To create a new discussion, click here. Comments on an existing discussion should be signed using ~~~~:
A comment [[User:Larry|Larry]] 13:52, 13 May 2024 (UTC)
: A reply [[User:Sally|Sally]] 02:02, 27 July 2024 (UTC)
:: Your reply ~~~~

Thanks

Talk status
This discussion is done.

Hi Lars, thanks for all the work you do! — Waldo Lemmer 16:20, 17 April 2024 (UTC)

I appreciate your contributions as well. :) --Lars Hint (talk) 17:19, 17 April 2024 (UTC)

Semantic search

Talk status
This discussion is done.

Hi Lars, you will probably find Special:Ask interesting. Try entering [[Category:Laptops]] [[Category:Lenovo]] into the first text field, then click on "Find results".

Waldo Lemmer 04:11, 23 April 2024 (UTC)

That's awesome, why isn't this mentioned in the default search (which is broken by design, shows redirect pages)? But I don't think this can replace the current categories, since the result is not cached and this would put a high load on the server. However, query [[Category:Laptops]] [[Category:Lenovo]] [[Category:ARM]] is probably better than creating a new category "Lenovo Laptops (ARM64)", or not? --Lars Hint (talk) 05:44, 23 April 2024 (UTC)
I'm sure you're aware of the downsides of creating categories like "Lenovo Laptops (ARM64)". In addition to those you've experienced (including the required human labor and having to make hard decisions), this system is also pretty disorganized, since it's hard to predict whether a certain combination of categories (e.g. Laptops + Lenovo + ARM) exists in its own category, and, if so, how it's named.
Would you rather go through all that effort yourself, or have a computer do it for you? I think your time is worth more than the bit of time the server has to spend, especially considering the hardware-related knowledge you possess.
The server seems to do the above searches in an imperceptible amount of time when taking latency into account, and more complicated searches are limited by the limit value. The absolute worst-case scenario — searching for [[Category:Wiki Root]] with the limit set to its maximum — only takes about 10 seconds the first time (and doesn't hold up the rest of the site, which is a big plus :) ). And the fact that it's faster for subsequent searches suggests that there is some caching going on.
Waldo Lemmer 06:31, 23 April 2024 (UTC)
If I roll back the changes I made to the categories, the hardware related articles (e.g. Power_management/Guide) will be mixed in with the hardware pages, so it's not the best choice anyway. Everything will be bloated. Especially knowing that all those pages will have dozens of translations. The Special:Ask page also produces strange results for translated pages: some of them have an English title (with no language mark), some are localized. Anyway, what would you recommend? --Lars Hint (talk) 07:13, 23 April 2024 (UTC)
There's another problem as well. If "Lenovo Laptops" does a query for "Lenovo + Laptops" and someone creates a new page and puts it inside the "Laptops" category (which is bloated) and at the same time does not put it in the "Lenovo" category, the page will not be listed in "Lenovo Laptops". How long will it be before someone notices that this particular page is not listed there? --Lars Hint (talk) 07:39, 23 April 2024 (UTC)
That's already a problem, isn't it? If I create a page about my Dell Latitude 5440, I have to specifically know to put it in Category:Dell Laptops, otherwise it will be lost. The solution is for editors to follow recent changes and fix category errors like we've been doing. Adding instructions to article blueprints can also help, and I think my suggestion (see below) is a bit easier to explain to new editors, since there are fewer categories.
Waldo Lemmer 08:43, 23 April 2024 (UTC)
I can only think of two solutions:
  1. Laptops are in Category:Laptops. ASUS laptops are in Category:ASUS Laptops.
    • A lot of human labor is required.
    • Category:Laptops is used to discover articles about laptops in general.
    • Category:Laptops is used to discover articles about specific laptop products.
    • To keep these separated, laptop products are put in subcategories:
      • Category:ASUS Laptops is used to discover articles about ASUS laptops in general.
      • Category:ASUS Laptops is used to discover articles about specific ASUS laptop products.
      • These may need to be separated as well — perhaps by putting laptop product architectures ("ASUS Laptops (ARM64)") in subcategories?
    • The more qualifiers you add, the deeper you need to go.
    • As you go deeper, the amount of categories increases exponentially ({Desktops, Laptops, Servers} * {ASUS, Lenovo, Dell, HP} * {ARM64, AMD64} = 24).
      • The only way to get around this is to do "half work" — only go up to a certain depth (don't create "ASUS Laptops (ARM64)") and skip some categories (such as Lenovo desktops).
    • An arbitrary hierarchy needs to be maintained:
      • Laptops -> ASUS Laptops -> ASUS Laptops (ARM64), or
      • ASUS -> ASUS Laptops -> ASUS Laptops (ARM64), or
      • ARM64 -> ARM64 Laptops -> ASUS Laptops (ARM64), etc.
  2. Put laptop-related articles in Category:Laptops, ASUS-related articles in Category:ASUS, and specific product-related articles in Category:Products.
    • [[Category:Laptops]] [[Category:!Products]] is used to discover articles about laptops in general.
    • [[Category:Laptops]] [[Category:Products]] is used to discover articles about specific laptop products.
    • These two are well separated.
    • [[Category:ASUS]] [[Category:Laptops]] [[Category:!Products]] is used to discover articles about ASUS laptops in general.
    • [[Category:ASUS]] [[Category:Laptops]] [[Category:Products]] is used to discover articles about specific ASUS laptop products.
    • These two are well separated.
    • Category pages are not usable for these purposes anymore. They're only usable for things like showing all articles related to laptops.
      • This is fine. Special:Ask works for everything.
      • Some categories are already like this.
    • Fewer categories are needed (9 instead of 24 in the above example). This results in less category work. In my opinion, category work is a lot of effort for little reward.
Sorry for this wall of text, but I think it's a good explanation of the pros and cons and the differences of each approach. I vouch for the second approach.
Waldo Lemmer 08:38, 23 April 2024 (UTC)
Can you please explain the second solution a little more in detail, because I don't understand. I see it like this:
"ASUS superlaptop 3000":
* + "Category:ASUS"
* + "Category:Laptops"
* + "Category:Products"
"Category:Laptops":
* is a superset of "Category:Laptops/Articles" -> [[Category:Laptops]] [[Category:!Products]]
* is a superset of "Category:Laptops/Products" -> [[Category:Laptops]] [[Category:Products]]
* Default render of everything
"Category:ASUS":
* "ASUS Laptops" -> [[Category:ASUS]] [[Category:Laptops]] [[Category:Products]]
* ??? is a subset of "Category:Laptops" and "Category:Laptops/Products" ???
* ??? is a superset of "ASUS Laptops/Articles" -> [[Category:ASUS]] [[Category:Laptops]] [[Category:!Products]] ???
* ??? is a superset of "ASUS Laptops/Products" -> [[Category:ASUS]] [[Category:Laptops]] [[Category:Products]] ???
* Default render of everything
But that's even more categories than the first solution provides. What am I missing? And what about the ARM64 architecture? --Lars Hint (talk) 09:23, 23 April 2024 (UTC)
Don't create categories that are built from multiple other categories. Only have the categories themselves, and let users use Special:Ask to find pages that belong to multiple categories. Of course, the categories themselves can be arranged (e.g. Category:Architectures/AMD64).
By the way, this form of searching can be added to the regular search bar.[1] It can be done by adding one line to LocalSettings.php. I believe that would be done by the infra team.
Waldo Lemmer 09:35, 23 April 2024 (UTC)
Users don't know the MediaWiki syntax. In my opinion, it is bad design to force them to manually use the search. --Lars Hint (talk) 09:38, 23 April 2024 (UTC)
You're right. A user-friendly UI would be ideal here. A reasonable middle-ground would be to have a page and sub-pages with tables formed using popular queries. One of those tables might be "ASUS Laptops (ARM64)". Here's a different example:
{{#ask:[[Category:Archived]] [[Category:Outdated articles]] [[Category:Deletion candidate]] [[Category:Dirty]] [[Category:Deprecated]] [[Category:Stale]] [[Category:Stub]] [[Category:Todo articles]] [[Category:Work in Progress]] [[Category:Open discussions]]}}
produces
Wiki/Development/Sandbox
Waldo Lemmer 09:59, 23 April 2024 (UTC)
So the creation of a new category ("ASUS Laptops (ARM64)") is still required? I think we're right back where we started. :) --Lars Hint (talk) 10:17, 23 April 2024 (UTC)
Not a category, just a table on a (sub-)page in the main namespace.
With the current system, when design changes to the category hierarchy are made, individual pages have to be modified (like what you're doing). With my proposed solution, the categories would stay fixed, and only the #ask queries would have to be updated. Changing one query is a lot easier than changing the 30 pages underneath it.
Products could be separated from articles using [[Category:!Products]].
The system would be flexible — we could have a huge list of all laptops on the wiki if we wanted to :).
And each one of the ambiguities you mentioned on my talk page could be addressed by simply adding articles to both categories.
Waldo Lemmer 10:40, 23 April 2024 (UTC)
A category page would be better than a normal page in this case. Nothing will belong to the category (since it will use search), but the category itself will belong to the superset. Otherwise, it is necessary to manually specify links in the superset. Which will lead to the problems that the Embedded Handbook has (it would be impossible to know from the page itself which superset it should refer to). --Lars Hint (talk) 10:55, 23 April 2024 (UTC)
Oh, I think I'm starting to get delusional, Waldo is right, a regular page is fine. --Lars Hint (talk) 10:58, 23 April 2024 (UTC)
No, he is not. The page must be marked as a subcategory, which is only possible if the page itself is a category. --Lars Hint (talk)

The page must be marked as a subcategory

Why?
Anyway, I'll make a proof of concept later. I have a few too many things to do today.
Waldo Lemmer 11:20, 23 April 2024 (UTC)
To make it visible and avoid manual binding to the superset (by adding a direct link in the superset). I'm looking forward to it. --Lars Hint (talk) 11:27, 23 April 2024 (UTC)
Take a look at User:Lars_Hint/sandbox. This seems to be the only solution to solve everything we've discussed. --Lars Hint (talk) 12:16, 23 April 2024 (UTC)
The idea is sound, but it unfortunately has the same problem as "Lenovo Laptops (ARM64)" — it doesn't scale well, and extra work needs to be done when a new brand, form factor or architecture comes along.
I've given this topic much thought and research, but I couldn't find any scalable/automated solutions compatible with this specific wiki (e.g. string parser functions are disabled here). The best I could come up with is:
Categories:
  • Some root category
    • By subject
      • Products
      • Non-products
    • By form factor
      • Desktops
      • Laptops
    • By brand
      • Dell
      • HP
      • Lenovo
    • By architecture
      • AMD64
      • ARM64
    • By series
Pages and their categories:
  • Lenovo Thinkpad X1
    • Lenovo Thinkpad
    • Products
  • Dell Latitude 5440
    • Dell Latitude
    • Products
  • Category:Lenovo Thinkpad
    • Laptops
    • Lenovo
    • AMD64
    • By series
  • Category:Dell Latitude
    • Laptops
    • Dell
    • AMD64
    • By series
Directory (a page in the main namespace) and its subpages:
  • Subject/Form factor/Brand (e.g. Products/Laptops/Lenovo): [[Category:Product]] [[Category:Laptops]] [[Category:Lenovo]]
  • etc.
Each sequence of subpages in the directory would have to be:
  1. Scalable (there aren't many form factors or brands, so not a ton of work if a new one is added)
  2. Useful (Products -> Laptops -> Lenovo is useful; AMD64 -> Products -> Lenovo less so)
But this is still a lot of work when new categories are added.
I also looked into forms and inputboxes to generate permalinks for Special:Ask. I figured the link syntax out, but not how to build a form to generate one.
Here's a proof of concept of a directory with support for all possible combinations, which would be a reasonable idea if it could be automatically generated: User:Waldo Lemmer/Sandbox/Directory/Hardware
Waldo Lemmer 15:36, 23 April 2024 (UTC)
Wonderful solution, Waldo! I like it. However I don't understand why my change to User:Waldo Lemmer/Sandbox/Directory/Ask did not take effect. --Lars Hint (talk) 16:49, 23 April 2024 (UTC)
It did take effect — see Lemmer/Sandbox/Directory/Hardware/By_subject/Products/By_form_factor/Laptops&oldid=1294158. But something's clearly wrong, so I'll see if removing the column width fixes it. Edit: Yep, it did. — Waldo Lemmer 16:52, 23 April 2024 (UTC)
But it still uses the ul format. --Lars Hint (talk) 16:59, 23 April 2024 (UTC)
This is due to caching. It is necessary to manually update the pages. --Lars Hint (talk) 17:05, 23 April 2024 (UTC)
Waldo, we have a problem. I added my page to the Dell Laptops category, but your solution does not show it. Looks like it always renders the cacheed variant. --Lars Hint (talk) 17:09, 23 April 2024 (UTC)
Epic fail for both of us. --Lars Hint (talk) 17:13, 23 April 2024 (UTC)
Not sure if there's some weird caching going on, or if you missed it, but it's showing up — as it should, since #ask is a dynamic parsing function. — Waldo Lemmer 17:30, 23 April 2024 (UTC)
It does not appear in User:Waldo Lemmer/Sandbox/Directory/Hardware/By_subject/Products/By_form_factor/Laptops/By_brand/Dell --Lars Hint (talk) 17:33, 23 April 2024 (UTC)
It will only appear if the page User:Waldo Lemmer/Sandbox/Directory/Hardware/By_subject/Products/By_form_factor/Laptops/By_brand/Dell is manually updated by editing --Lars Hint (talk) 17:37, 23 April 2024 (UTC)
I definitely saw it under L. I just removed that page from the category, and it disappeared immediately. Try adding it again — if you still don't see it, I will take a screenshot to show you that it's visible for me :). — Waldo Lemmer 17:43, 23 April 2024 (UTC)
Just checked it again, it doesn't appear. I completely cleared the cache (with all data and history) in the browser, same result. --Lars Hint (talk) 17:50, 23 April 2024 (UTC)
It's there :). — Waldo Lemmer 17:54, 23 April 2024 (UTC)
I don't understand what's going on because it doesn't show up on my side. --Lars Hint (talk) 17:58, 23 April 2024 (UTC)
I did the bump, now I see it. --Lars Hint (talk) 17:59, 23 April 2024 (UTC)
I removed the category, but the page is still in User:Waldo Lemmer/Sandbox/Directory/Hardware/By_subject/Products/By_form_factor/Laptops/By_brand/Dell. --Lars Hint (talk) 18:00, 23 April 2024 (UTC)
It immediately disappeared for me...
...except when I go there via a private tab.
I'm dumbfounded.
Waldo Lemmer 18:15, 23 April 2024 (UTC)
The result is probably cached by geolocation. I don't see any other reason. --Lars Hint (talk) 18:03, 23 April 2024 (UTC)
From my tests, it looks like page content is fetched directly from the server at wiki.gentoo.org (not some CDN). If we're both seeing the same IP for wiki.gentoo.org (140.211.166.177), then there must be some other factor involved. The behavior with regards to switching to a private tab (see above reply) hints at this. — Waldo Lemmer 18:15, 23 April 2024 (UTC)
Just tested it on a neighbor's laptop - same result. --Lars Hint (talk) 18:07, 23 April 2024 (UTC)
My network is IPv6, not IPv4. --Lars Hint (talk) 18:21, 23 April 2024 (UTC)
Because of the issue, we can't use semantic search, so it's literally Epic Fail. --Lars Hint (talk) 18:28, 23 April 2024 (UTC)
:( — Waldo Lemmer 18:32, 23 April 2024 (UTC)

You're making good progress :)

Man, seeing categories like Category:Laptops (ARM64) unfold is so cool. Also these:

Stop joking, I did not expect that there are only 2 ARM laptops. So many days spent for such a result. :D --Lars Hint (talk) 17:58, 28 April 2024 (UTC)
Hey, at least X86 is up to 3 :P
But before, we didn't have the means to find these laptops. The best we could do was Category:ARM, but picking out the laptops from such a category is hard. And if smartphones were eventually added, we would be able to at a glance find ones that run AMD64 (if that even exists).
We'll also have nice stats from the links above, such as how many devices there are on the wiki.
Also, being able to edit every product page on the wiki through one template is incredibly powerful. And so is the ability to restructure the category graph at will. Creating all HP (AMD64)-like categories will be as easy as adding one more {{CatMask}} to Template:CompoundCategory.
By the way, it's criminal that Category:AMD64 didn't exist before today.
Waldo Lemmer 18:29, 28 April 2024 (UTC)

Removing pages from the old categories

You can leave that to me. Of course, I won't remove ones that don't have {{ProductPage}} yet.

Waldo Lemmer 20:10, 28 April 2024 (UTC)

<3, I'm going to sleep, all the laptops seem to be in new categories. Good night. --Lars Hint (talk) 21:02, 28 April 2024 (UTC)
Well done. I'll finish removing them from the old categories tomorrow. Good night.
Waldo Lemmer 21:04, 28 April 2024 (UTC)

Chromebook case

It might be a bit late to tell you this, but you didn't have to write "chromebooks" in lowercase :)

Don't worry, I'll fix it later.

I really should make those template docs more clear...

Waldo Lemmer 18:21, 29 April 2024 (UTC)

Well, I thought we were going to use lowercase for everything. :D Wikipedia says that Chromebooks are sometimes styled in lowercase, so I guess it's not a problem. --Lars Hint (talk) 18:27, 29 April 2024 (UTC)
I guess, but I think it looks bad in this context. I'll fix it when I feel super bored. For now, I'll remove the articles from the old category(s).
Waldo Lemmer 18:34, 29 April 2024 (UTC)
Oh, you already have. Thank you!
Waldo Lemmer 18:38, 29 April 2024 (UTC)

MrChromebox coreboot page

Talk status
This discussion is still ongoing as of 2024-07-13.

Hey, was recently pointed to the wiki page on my coreboot distribution which you wrote, and wanted to point out a few issues / ask a few questions:

- the firmware-util.sh link on mrchromebox.tech does currently redirect to the file in the github scripts repo. It didn't when I first moved my site to the new host as it took me a minute to figure out how to set up the redirect, but that's resolved now

- the manual installation section should probably include a note on installing the prereqs for building coreboot

- the latest/current branch is always the default, so no need for a detached checkout IMO

- the system-product-name doesn't always match the board name, even on devices already flashed with my firmware. probably 10% or so don't match

- the build using build-uefi.sh should never fail for concurrency reasons

- reading/writing with '--ifd -i bios' only works for Intel-based devices (not AMD)

- if you make changes to .config using menuconfig/nconfig, you need to 'make savedefconfig' and copy defconfig to the board config you want to build, otherwise running build-uefi.sh will erase any changes made to .config


Also, the warning at the top of the page mentions security issues with the checksums on the firmware files and the lack thereof on the binaries used by the script. Would having the checksums for all binaries on github instead alleviate that concern?

Cheers, Matt

MrChromebox (talk) 15:17, 13 July 2024 (UTC)

Hello, it's good to see you here. I hope the article didn't create any problems for your business. Should we add a note not to contact you in case of problems caused by manual installation?
- Your site now states "Following a blog post with "simplified" instructions will only end in tears.", will a table with the devices on which the instructions were tested reduce the likelihood of tears?
- The only device I have is Akemi, so I didn't know about the AMD case, thanks for pointing that out. The article definitely needs to be updated. But does the firmware support AMD devices? Your tool says only Intel is supported.
- I would still prefer to leave the detach command to show the version for which the instructions were written. Since there is no guarantee that the build system will not be changed in the future.
- The first (until the whole project is compiled) compilation always fails because something is missing, and the missing files appear on the second run. What is this if not a race condition?
- In the case of checksums, I would personally prefer GPG signatures, as git repository can be rebased and the checksums manipulated (e.g. by Microsoft employees). I also noticed, but did not mention in the article, that you distribute a patched version of flashrom. And I did not find the source code of the patches, which means you are violating the GPL-2 license. What's behind the patches?
- As someone far outside of the coreboot project, I was wondering if the ADA compiler is required for the firmware to work? It gives a big warning when compiling, so I installed it. But for Gentoo musl users this is critical as GCC does not come with an ADA compiler, and unfortunately it uses itself for bootstrapping and is linked to glibc. :(
- It would be interesting to know the origin of the blob files, as the commit messages are uninformative.
- Your tool suggests using Ubuntu, but the tool doesn't work on the live image (I tried about a year ago, haven't checked since). However, it worked on the Gentoo live image. --Lars Hint (talk) 19:16, 13 July 2024 (UTC)
- business? haha. I wish I were able to figure out how to monetize my firmware/scripts. I'd hope that people using my firmware would consult my site in case they ran into issues, but I expect that's wishful thinking.
- the "blog post" reference is not meant to include wikis like here or Arch (eg), I just don't want people following some youtuber and then coming to me when they have issues.
- my site says all x86_64 devices ChromeOS are supported, which is accurate. The note in the script was likely before support for AMD devices was added -- I'll update it.
- I've never heard of any issues compiling that were solved by running the build script again, I'll have to try and reproduce. Or if you can, and can send me a log, that would be helpful (just run `./build-uefi.sh akemi > build.log 2>&1`).
- re: GPG sig, I'll have to see how much of a hassle that is to use for both ChromeOS and mainline Linux live ISOs.
- none of the binaries I distribute (flashrom, cbfstool, gbb_utility) are patched, they are simply precompiled/known working versions. For the average user running my script from Linux to update, having to download each of those repos and compile adds a significant amount of overhead, bandwidth, and delay.
- the ada compiler is only necessary for compiling the libgfxinit component (native display init for some Intel platforms); only a handful of devices I support make use of it.
- my blobs repo is a fork of the coreboot blobs repo, with my precompiled EC-RW firmware updates added, as well as the flash descriptor (IFD), ME firmware, VBT, etc for a given board. The IFD/ME/FSP/VBT are extracted from the stock firmware image for a board/platform using the util/chromeos/extract_blobs.sh script in the coreboot repo (of which I'm a contributor). The EDK2 GOP drivers are extracted from non-ChromeOS device firmwares. The EC-RW firmware updates cannot be compiled by the end user without a Chromium chroot using the correct branch for the given board. I'll try to do better on the commit messages going forward :)
- I'm not aware of any issues using my script under any recent (2022+) release of Ubuntu, Fedora, etc. The only issue is if a snap-based curl binary is used, since it sandboxes everything.
MrChromebox (talk) 21:48, 13 July 2024 (UTC)
I sent the log files via email.
Your version of flashrom gives a slightly different output log, and the --version parameter returns your name, so I assumed it was patched.
You were right, the script now works under Ubuntu. And it doesn't work under Gentoo anymore (worked a few months ago).
--Lars Hint (talk) 11:50, 14 July 2024 (UTC)

References