Recent

Author Topic: Features - as started in "new splash" thread  (Read 1166 times)

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 10551
  • Debugger - SynEdit - and more
    • wiki
Features - as started in "new splash" thread
« on: November 06, 2024, 09:25:41 pm »
but that perception is not so for new users. The first thing they look at is the surface and novelty aspects of the image. I know, it's a bit superficial but that's how things work.
Nowadays almost all IDEs use a dark environment, which besides being interesting for visual fatigue gives a modern look to the tools. It would be nice if the Lazarus IDE when installed would give the option to choose between a dark or light theme, as minimum options, something that already exists as an integration possibility.
As for the presentation image, it is good to renew and you can keep the original philosophy, respect the principles that are key, but it is good to update these things.

There is a lot in there. Right, at first glance...

I make this a new thread, because I really don't think someone will ditch it because of a still image they see for 2 seconds (especially if they are coming from all the hyped environment, and therefore must have a faster PC, on which the image likely shows even shorter).

Then, yes, the big categories for work environments come in:
- docked or not
- light or dark

The first one has on been addressed. Users do get ask on first start.

So that is solved, or well, no it is not. It will all depend, will it lead to new users that will become contributors and help us maintain it? Because if it does not, then it may backfire big time.
I can see roughly the following scenarios
- It brings in new contributors, they help maintain it. It will be good.
- Or the additional work required will mean...
 - It isn't well maintained, it does not work well, those who would have turned away when it wasn't advertised will still turn away. And additionally those who would have used undocked, but decided to go for docked because it was advertised will also be disappointed. We loose more that we would have lost without.
 - It is maintained by the current team, and other important fixes wont happen. Also not good.

And on Windows that also sums up the dark theme. (Which currently is 3rd party / So maintained by contributor. Good. But then can't be pre-installed)




Code: Pascal  [Select][+][-]
  1.  a dark environment, which besides being interesting for visual fatigue

This is wrong. It does not prevent visual fatigue.
Unless you have some rare medical condition. (Yes it be good to have support for people with those conditions, as would it be to support people relaying on screen readers, and other tools for special needs / Actually that should be way more important)

A dark background means your eyes need to work much harder to focus. If you look at a lighter (not an overly bright / see below) image, your eye's pupils will contract. That means that the range of distance in which things are in focus will be larger. Your lens does not need to be adjust as exact as in front of a darker image. And your eye's muscles will have less work if they don't constantly need to adjust.

However, in order for a light theme to work, your entire workplace must be correctly setup.
- Your monitor must likely be tuned down to a less bright mode (a lot of monitors come in some "movie mode" that is ultra bright). Most better monitors have presets. But otherwise brightness and contrast can be used.
- Your room must be well lit, so your eyes also react to the surrounding light, and your pupils contract.
- The room lightning must be set up, so it does not cause reflection of your screen.
- Ideally your screen does not have a glaring surface. It should be for work, not for entertainment. (After all, if you spend enough time in front of it, to even have to consider fatigue, then its worth it).

If you have been using dark mode for long, you need to give your brain a few days to adjust.

Dark mode can help if you have issues falling asleep after having been on the computer late in the evening. Suggestions about reducing just the blue channel may or may not work...



But, yes, all that does not matter as there are plenty of people who prefer to hurt their eyes in the believe that dark mode will be better. And we wont be able to educate them about the truth. Sadly.

LBox

  • New Member
  • *
  • Posts: 46
Re: Features - as started in "new splash" thread
« Reply #1 on: November 06, 2024, 09:59:34 pm »
I am one of those who do not like dark mode especially if it is very dark, because light text on a very dark background hurts my eyes %)
A comfortable dark mode for me is when it is based on dark gray  8) But the modern dark mode is always much darker than dark gray  :(

Warfley

  • Hero Member
  • *****
  • Posts: 1747
Re: Features - as started in "new splash" thread
« Reply #2 on: November 06, 2024, 10:22:58 pm »
Then, yes, the big categories for work environments come in:
- docked or not
- light or dark
I have a few more points:
1. automatic updates. If git is installed on the target pc, this would be absolutely trivial. Even in a pre existing lazarus directory you can do:
Code: Bash  [Select][+][-]
  1. git -C LazarusDir init
  2. git -C LazarusDir remote add origin https://gitlab.com/freepascal.org/lazarus/lazarus.git
  3. git -C LazarusDir fetch -v --all
  4. git -C LazarusDir reset --hard tags/lazarus_3_6 # or whatever version you want
  5. git -C LazarusDir checkout tags/lazaurs_3_6
  6.  
Then just do a clean rebuild and you have updated Lazarus. The list of tags (and thereby versions) can be easily fetched from the gitlab API. To get all the lazarus versions available in order just run
Code: Bash  [Select][+][-]
  1. curl https://gitlab.com/api/v4/projects/28419588/repository/tags 2> /dev/null | grep -oP 'lazarus_\d+_\d+(_\d+|_RC_\d+)?' | sort -r
And if I can do it with bash, it should certainly be possible in Pascal.

2. Missing is an easy userscheme browser. Because the standard editor scheme is so color less it's depression inducing. I built my userschemes some time ago manually and sync them across my devices with nextcloud, again look at most other editors, just google intellij or VSCode, click on images and see how colorful these editors are (case in point, first image of intellij that came up that showed code: https://www.jetbrains.com/idea/features/screenshots/java-and-kotlin-support-2.png)

And 3. the lack of automatic dependency fetching. When opening up a project that uses BGRA Bitmap on my clean new lazarus I don't want to get scremead at that it can't find certain units and packages, I want a pop up message: This project requires BGRABitmap, do you want to download and install the required packages?
For this post I just downloaded one of the BGRA demo projects and tried to open it. I get flooded by 8 error messages, with a loud sound big error icon, I have to click away one by one, thinking everythings broken now, and the best thing, if I would be a beginner, panic and close Lazarus, it remembers the last project, and I get flooded with 8 error messages every single time I open the IDE, thinking I permanently broke Lazarus.

The first one has on been addressed. Users do get ask on first start.

So that is solved, or well, no it is not. It will all depend, will it lead to new users that will become contributors and help us maintain it? Because if it does not, then it may backfire big time.
I can see roughly the following scenarios
- It brings in new contributors, they help maintain it. It will be good.
- Or the additional work required will mean...
 - It isn't well maintained, it does not work well, those who would have turned away when it wasn't advertised will still turn away. And additionally those who would have used undocked, but decided to go for docked because it was advertised will also be disappointed. We loose more that we would have lost without.
 - It is maintained by the current team, and other important fixes wont happen. Also not good.
The user gets asked in the beginning, but I would still argue that the default configuration is very lacking. There is no project window in the default docked layout. As I posted in the video in the last thread of my Lazarus setup, the first thing I have to do is to add the project inspector window together with some more debugging windows.
And the Project Inspector is absolutely essential. I do not know a sinlge IDE where the Project Window or File Tree (depending on the kind of editor) is not in there by default. Visual Studio, Eclipse, VSCode, IntelliJ, like all the Editors I have used for the past 20 years have this as default. I even looked up a screenshot of rad studio and they have the project inspector in there.
The other stuff is more debatable, for example why is the local variables debug window not in there by default, or on Linux the console output? Those are more "niche" applications, but the Project/File tree is absolutely essential.
Also, there are still a few kinks to be ironed out, e.g. when switching between monitors of different DPI scaling, subwindows to the right of the editor can be initialized with a size of 0, making them inaccessible, and can only be retrieved again by not touching anything (so the config is not rewritten to make it permanent for this resolution), but to close Lazarus immediately, reset the DPI scaling to the value where it worked correctly, open lazarus again, increase the size of the windows, close lazarus, reset dpi scaling to what's desired and then  use them again.
This dance takes around 5 minutes every time I hook my laptop up to my 4k monitor, it's fun :j

With respect to maintainers, it's probably also people using. I can tell so far. WIthout docking, I would have stopped using Lazarus and Pascal probably years ago. I need all the windows always in the same place and same sizes. Floating windows that can be overlapping is completely unusable for me. Granted I'm not neurotypical, so I may have different requirements for my editors than others, but after all lazarus and fpc are just tools for me. If I can't make myself comfortable with them I won't be using them. With dark mode and Docking Lazarus is great, but without I'd probably be gone by now.

And on Windows that also sums up the dark theme. (Which currently is 3rd party / So maintained by contributor. Good. But then can't be pre-installed)
Yes and no. I mean independently that one could ask zamtmn if they want to contribute the code to the Lazarus project (after all theyre quite an active member in this forum iirc), but also there is nothing stopping lazarus from popping up a window on first start informing the user about this third party package and help them install it if they agree to.


This is wrong. It does not prevent visual fatigue.
Unless you have some rare medical condition. (Yes it be good to have support for people with those conditions, as would it be to support people relaying on screen readers, and other tools for special needs / Actually that should be way more important)

A dark background means your eyes need to work much harder to focus. If you look at a lighter (not an overly bright / see below) image, your eye's pupils will contract. That means that the range of distance in which things are in focus will be larger. Your lens does not need to be adjust as exact as in front of a darker image. And your eye's muscles will have less work if they don't constantly need to adjust.

However, in order for a light theme to work, your entire workplace must be correctly setup.
- Your monitor must likely be tuned down to a less bright mode (a lot of monitors come in some "movie mode" that is ultra bright). Most better monitors have presets. But otherwise brightness and contrast can be used.
- Your room must be well lit, so your eyes also react to the surrounding light, and your pupils contract.
- The room lightning must be set up, so it does not cause reflection of your screen.
- Ideally your screen does not have a glaring surface. It should be for work, not for entertainment. (After all, if you spend enough time in front of it, to even have to consider fatigue, then its worth it).

If you have been using dark mode for long, you need to give your brain a few days to adjust.

Dark mode can help if you have issues falling asleep after having been on the computer late in the evening. Suggestions about reducing just the blue channel may or may not work...
Just quickly, because this comes up very often, there have been tons of claims and a lot of research into that topic and the conclusion is, neither light nor dark mode has any real medical or technological menefits, it's just a matter of taste, simple as that.

That said when I say taste, I don't necessarily mean subjective taste, because taste as everything is of course a result of a lot of things. In software design it has pretty much established itself that dark theme means "pro-environment". There is no objective benefit of dark theme, but it's culturually reinforced that it's not some random subjective taste anymore, but just some form of common oppinion. And most programming environments come in a dark theme by default, or at least switch to the theme the user has chosen on their machine. Note that this is exactly also the reason why MS office, even tho it has a dark theme, does not use it by default, because MSOffice wants to seem casual friendly. Like someone working all day with Excel sheets and writing cell formulas to have afully automated spreadsheet is as much a programmer as a hardcore C crack writing code in Emacs in their tmux session, but they don't think of themselves as that, so the design of the app reflects that.
The other thing is that bright theme was the default until like 10 years ago. So when you see an editor which does not have an option for dark theme at least on setup, it just looks dated. Not because dark theme is any better by any objective metric, but just because it's not doing what all the other editors are doing for the past decade. Thats just how humans see things. If something is different from the rest, it's usually interpreted as something being off, and not in a good way. Yes it's not rational, but humans aren't rational.
« Last Edit: November 06, 2024, 10:29:28 pm by Warfley »

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 10551
  • Debugger - SynEdit - and more
    • wiki
Re: Features - as started in "new splash" thread
« Reply #3 on: November 06, 2024, 11:18:46 pm »
I have a few more points:
1. automatic updates. If git is installed on the target pc, this would be absolutely trivial.
IMHO, a "check for update" and an "Automatically check for update" => then download the installer.

For OPM... Don't know what it does, I don't use it.

Quote
2. Missing is an easy userscheme browser.
Yes, that would be nice. But someone needs to write and contribute it.

And - while we have a ton of userschemes on the wiki - many of them may need maintenance. New color options exist, I doubt they are part of many of those schemes.


Quote
And 3. the lack of automatic dependency fetching. When opening up a project that uses BGRA Bitmap on my clean new lazarus I don't want to get scremead at that it can't find certain units and packages, I want a pop up message: This project requires BGRABitmap, do you want to download and install the required packages?
Good idea. Same as 1. Needs to be implemented.

Quote
The first one has on been addressed. Users do get ask on first start.
The user gets asked in the beginning, but I would still argue that the default configuration is very lacking. There is no project window in the default docked layout.
Goes well with the point I made: needs maintenance.

This item was a "needs to be implemented". I eventually implemented it (well the part of giving the user a choice).

But I don't use it. So I can't make a good decision about presets. Also not my area, I have plenty other stuff to keep me busy. And at least with regards to the debugger I can say that this too is a point that drove away new users. It gotten better. Though some parts now depend on the compiler supporting them.


Quote
Also, there are still a few kinks to be ironed out, e.g. when switching between monitors of different DPI scaling, subwindows to the right of the editor can be initialized with a size of 0, making them inaccessible, and can only be retrieved again by not touching anything (so the config is not rewritten to make it permanent for this resolution), but to close Lazarus immediately, reset the DPI scaling to the value where it worked correctly, open lazarus again, increase the size of the windows, close lazarus, reset dpi scaling to what's desired and then  use them again.

Yes, I even tried to add some fixes on keeping at least the splitters visible. But I run into other issues. When I tried to keep the splitters visible then this https://gitlab.com/freepascal.org/lazarus/lazarus/-/issues/41184 went into full lock-up. And I don't know the gtk parts.

But as I said, it will need the maintenance now.


Quote
With respect to maintainers, it's probably also people using. I can tell so far. WIthout docking, I would have stopped using Lazarus and Pascal probably years ago. I need all the windows always in the same place and same sizes. Floating windows that can be overlapping is completely unusable for me. Granted I'm not neurotypical, so I may have different requirements for my editors than others, but after all lazarus and fpc are just tools for me. If I can't make myself comfortable with them I won't be using them. With dark mode and Docking Lazarus is great, but without I'd probably be gone by now.
Well, yes. But it is impossible to get it right for everyone.

And we can put up all kind of guesses which feature or fix will keep the most people. It will be guesses. I recall years ago, everyone was saying go from 0.9 to version 1.0, that will attract many new users. I did not. Many other such suggestions had the same effect.
Despite that, I agree docking (and most unfortunately dark theme) may have more of an impact (I am avoiding to call it noticeable, I don't know that). But then again, only as part of an overall package with many other features all to be there too. So only with more contributors IMHO.

Quote
And on Windows that also sums up the dark theme. (Which currently is 3rd party / So maintained by contributor. Good. But then can't be pre-installed)
Yes and no. I mean independently that one could ask zamtmn if they want to contribute the code to the Lazarus project (after all theyre quite an active member in this forum iirc), but also there is nothing stopping lazarus from popping up a window on first start informing the user about this third party package and help them install it if they agree to.
Still adds the burden of maintenance, someone will need to do. Even if just applying patches. (I will not be doing that, but if someone else from the team does...)

Quote
This is wrong. It does not prevent visual fatigue.
Just quickly, because this comes up very often, there have been tons of claims and a lot of research into that topic and the conclusion is, neither light nor dark mode has any real medical or technological menefits, it's just a matter of taste, simple as that.

That said when I say taste, I don't necessarily mean subjective taste, because taste as everything is of course a result of a lot of things. In software design it has pretty much established itself that dark theme means "pro-environment". There is no objective benefit of dark theme, but it's culturually reinforced that it's not some random subjective taste anymore, but just some form of common oppinion.
...

Rephrasing: "It is the current hype". Yes indeed, of that I am aware.
However, like any hype, it is not followed by all. Many still decide for themself.

And, I have a lot of Windows and Linux VM => none of them I touched any setting, none of them is dark.
Geany, notepad++ and lots of other editors, are light on all my VM....
Sublime and Visualstudio were a pain in the A*.  (Mostly have those for testing)

It ain't that black and white (pun intended).

Warfley

  • Hero Member
  • *****
  • Posts: 1747
Re: Features - as started in "new splash" thread
« Reply #4 on: November 07, 2024, 12:23:10 am »
IMHO, a "check for update" and an "Automatically check for update" => then download the installer.
On a side note, and I must admit I have absolutely no idea how Windows does that, but if you use "winget upgrade --all" it also updates lazarus, in that it downloads the latest installer from the website, executes it, fully without any user interaction, and installs a lazarus version, and afterwards removes the old one. If you are only having one Lazarus version it's ok I guess, but it kicking my secondary Lazarus 3.4 installation off to make a primary Lazarus 3.6 installation was really weird.

That said, I already built all the code necessary for updating with lazarus with git. I wanted to put it into a package at some point, but getting into Lazarus package development is quite cumbersome, and I found the information on the wiki rather lacking. But it's on my todo list.

Quote
And 3. the lack of automatic dependency fetching. When opening up a project that uses BGRA Bitmap on my clean new lazarus I don't want to get scremead at that it can't find certain units and packages, I want a pop up message: This project requires BGRABitmap, do you want to download and install the required packages?
Good idea. Same as 1. Needs to be implemented.
Actually started doing this for lazbuild, my problem here is the package list: https://packages.lazarus-ide.org/packagelist.json I just opend it in my browser and clicked on some random entries.
PackageData4 is a github repository that does not have a DownloadURL but can be git cloned from the github URL (alternatively the github REST API could be used).
PackageData16 has a RepositoryFilename, but neither a Hompage nor Download nor SVN URL set, how to download it? I don't know
PackageData22 has a DownloadURL which brings me to the human interface sourceforge download website, which starts a 5 second delayed download in the browser of a json which contains the actual download url
PackageData149 contains a Hompage URL which points to a bitbucked download page, which where the repository can be downloaded by taking that hompage URL and concatinating it with the *lowercase* version of the RepositoryFileName
PackageData180 contains a Download URL that points to a json file that contains the real download url

This is complete madness. The longer I stare at that list the more I start doubting my own sanity. And this is just the conceptual problem of the data not being structured. Then there are a bunch of technical issues, that can be worked around but are annoying, e.g. the package list is based on ordering of elements in a json object, which is undefined. The dependencies are a comma seperated string that needs to be parsed manually, etc.

So the first thing that needs to be done to make this in a way that does not require enormous amounts of work to maintain, would be to create a new and well structured package list. Everything else from there on is quite trivial. Lookup the dependencies in the project, match them with the package list, recursive descent for package dependencies, download, register in package tree and you're finished.

Quote
But I don't use it. So I can't make a good decision about presets. Also not my area, I have plenty other stuff to keep me busy. And at least with regards to the debugger I can say that this too is a point that drove away new users. It gotten better. Though some parts now depend on the compiler supporting them.
Yes the work on the debugger is great. Especially the local variable view has improved significantly with version 3. Still some very annoying things, but I think thats not much one can do about, e.g. debugging list classes that do raw memory allocations is rough. If there would be the ability to define certain attributes to be embedded into the debug info, e.g. for containers marking the count and indexed access properties so the debugger can display them as a list or something would be great.

That said, one thing I'm wondering is: Why can I open the nested elements in the tree structure in the watches as deep as I want, but in local variables it only goes one layer deep? Thats so annoying that when inspecting an object, first layer easy, second layer: add a watch

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 10551
  • Debugger - SynEdit - and more
    • wiki
Re: Features - as started in "new splash" thread
« Reply #5 on: November 07, 2024, 01:07:08 am »
Good to see you are looking into some of the stuff.

That said, one thing I'm wondering is: Why can I open the nested elements in the tree structure in the watches as deep as I want, but in local variables it only goes one layer deep? Thats so annoying that when inspecting an object, first layer easy, second layer: add a watch

That would be a bug.

And I just tried (in 4.99)
TForm1.FormCreate

self in locals => I can keep unfolding.

What OS are you on? (I assume Windows as you mentioned it earlier).

Using FpDebug?



"Sender" is probably different from what you see in watches. Because watches have "use instance class", and locals don't yet. Locals don't have individual display-formats either.

Because the entries in locals change => So each time the debugger steps new entries are created => any custom settings would currently be lost. I need to add a different way of storing properties for locals.
« Last Edit: November 07, 2024, 01:11:36 am by Martin_fr »

LBox

  • New Member
  • *
  • Posts: 46
Re: Features - as started in "new splash" thread
« Reply #6 on: November 07, 2024, 01:24:03 am »
And 3. the lack of automatic dependency fetching. When opening up a project that uses BGRA Bitmap on my clean new lazarus I don't want to get scremead at that it can't find certain units and packages, I want a pop up message: This project requires BGRABitmap, do you want to download and install the required packages?
For this post I just downloaded one of the BGRA demo projects and tried to open it. I get flooded by 8 error messages, with a loud sound big error icon, I have to click away one by one, thinking everythings broken now, and the best thing, if I would be a beginner, panic and close Lazarus, it remembers the last project, and I get flooded with 8 error messages every single time I open the IDE, thinking I permanently broke Lazarus.

This feeling that I broke Lazarus is specifically a story about me  :D

With respect to maintainers, it's probably also people using. I can tell so far. WIthout docking, I would have stopped using Lazarus and Pascal probably years ago. I need all the windows always in the same place and same sizes. Floating windows that can be overlapping is completely unusable for me. Granted I'm not neurotypical, so I may have different requirements for my editors than others, but after all lazarus and fpc are just tools for me. If I can't make myself comfortable with them I won't be using them. With dark mode and Docking Lazarus is great, but without I'd probably be gone by now.

Yes, in modern P.O., window docking has long been considered an industry standard. As for the dark mode, it is not important to me, because I do not use it, but for many users, the ability to change the color palette of the program is also very important.

By the way, does anyone have a link to a good step-by-step tutorial on how to add the ability to dock windows in your programs written in Lazarus?  :)
I have my own draft solution on this topic, but I know that Lazarus already has this feature out of the box and there is an example of a ready-made demo project, but there is no clear tutorial on how to implement the docking feature in your programs  ::)

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 10551
  • Debugger - SynEdit - and more
    • wiki
Re: Features - as started in "new splash" thread
« Reply #7 on: November 07, 2024, 01:39:44 am »
In examples there is "mini ide" probably a good starting point.

wp

  • Hero Member
  • *****
  • Posts: 12459
Re: Features - as started in "new splash" thread
« Reply #8 on: November 07, 2024, 03:58:39 pm »
Code: [Select]
[quote author=Warfley link=topic=69192.msg537236#msg537236 date=1730935390]
my problem here is the package list: https://packages.lazarus-ide.org/packagelist.json I just opend it in my browser and clicked on some random entries.
PackageData4 is a github repository [...]
PackageData16 has a RepositoryFilename, but neither a Hompage nor Download nor SVN URL set, how to download it? [...]
PackageData22 has a DownloadURL which brings me to the human interface sourceforge download website[...]
PackageData149 contains a Hompage URL which points to a bitbucked download page [...]
PackageData180 contains a Download URL that points to a json file that contains the real download url[...]
First of all: I did not write OPM, I am just adding and updating packages on the packages.lazarus-ide site after its original author, GetMem, disappeared.

In my opinion, you see here fragments of the long history of OPM development. For example, it was once intended to give users the possibility to download packages from the author's development site (DownloadURL). I think this is not fully implemented and certainly not clearly communicated how this should work. From what GetMem once told me I can say that DownloadURL should point to an "update" json file on the author's site in which the location and version number of the development version are listed. This kind of download then can be triggered from the "External Reposory" menu item of the "Install" OPM button. It is my impression that later this feature was given up and was no longer double-checked by GetMem so that inconsistencies could enter.

HomepageURL certainly is meant for documentation. If it lists a download URL it certainly cannot be used by the mechanism in OPM.

So the first thing that needs to be done to make this in a way that does not require enormous amounts of work to maintain, would be to create a new and well structured package list.
You are welcome to implement it. But keep in mind that OPM is used by many versions of Lazarus, and you will still have to support the old package list for some transition time - which means double work for the OPM maintainer...

the package list is based on ordering of elements in a json object, which is undefined. The dependencies are a comma seperated string that needs to be parsed manually, etc.
I have no idea about what is allowed in json or not, and I only know manual parsing of json by means of the FPC json units. The package list contains always pairs of entries, an object PackageData followed by an array PackageFiles with all the contained lpk packages. Further ordering of these pairs is not required (I learned this recently when I added the LazQuadTree entry at the end of the package list, out of the otherwise alphabetic order). The number after PackageData and PackageFiles are irrelevant (I think)

Warfley

  • Hero Member
  • *****
  • Posts: 1747
Re: Features - as started in "new splash" thread
« Reply #9 on: November 07, 2024, 04:35:39 pm »
You are welcome to implement it. But keep in mind that OPM is used by many versions of Lazarus, and you will still have to support the old package list for some transition time - which means double work for the OPM maintainer...
I'm currently experimenting locally with some new packagelist format, and a REST API to publish new packages or push new versions automatically to the registry, as well as a respective pascal implementation for fetching that list, parsing it and downloading packages.
If this works out, I would try to manually add all the existing packages, with 205 it's certainly doable, though it will be annoying. Then I want to implement the download and install functionality into lazbuild through command line arguments.

Currently I start everything locally and only for testing stuff out. If I get something workable then there may be consideration on how to phase between OPM and the new system. But until we reached that point it's still a long road ahead, because I have a lot of other side projects in parallel, I don't know how long I will take for that (doesn't help that the prospect of manually translating 205 entries is very dissuading lol)
But yeah it's on my list of things to work on

LBox

  • New Member
  • *
  • Posts: 46
Re: Features - as started in "new splash" thread
« Reply #10 on: November 07, 2024, 04:46:16 pm »
In examples there is "mini ide" probably a good starting point.
Yes, I saw this great project and tried to study it and understand the principle on which it is built, but it is very difficult for beginners like me  :'(

Step-by-step lessons that show the principle on which the project is built open up a vision that ultimately allows you to make projects of any complexity  ::)

In any case, thanks for the tip. In my free time, I will make another attempt to study this project and understand the principle of its operation  :)

Mr.Madguy

  • Hero Member
  • *****
  • Posts: 859
Re: Features - as started in "new splash" thread
« Reply #11 on: November 07, 2024, 05:31:02 pm »
Dunno. I don't like dark mode. May be because I've got used to light one, cuz I'm from previous generation. My guess - dark mode has been invented for power saving purposes, not because it's more comfortable.
Is it healthy for project not to have regular stable releases?
Just for fun: Code::Blocks, GCC 13 and DOS - is it possible?

Warfley

  • Hero Member
  • *****
  • Posts: 1747
Re: Features - as started in "new splash" thread
« Reply #12 on: November 07, 2024, 05:51:05 pm »
Dunno. I don't like dark mode. May be because I've got used to light one, cuz I'm from previous generation. My guess - dark mode has been invented for power saving purposes, not because it's more comfortable.

Depends on what you consider dark mode. The "original" dark mode, which was a black terminal with white font, sure this was for power saving purposes, because of the design of the physical terminals back then, where you have an electron beam having to phyiscally turn the dots bright. Later many tools for programmers had a "dark theme" that tried to emulate the old terminal look.
Note that if you do not have an OLED display dark mode does not save any energy. On a normal LCD screen, dark pixels also need to be illuminated. It's only OLEDs that do save energy on darker colors.
So it may be an argument for Phones, but not really for Desktops.

But that was far from what is today considered the modern dark modes you see everywhere from IDEs to Microsoft Office even to the OS base tools by now. This was more or less popularized by Apple when they introduced their new Series of profession media tools, namely Final Cut X and Logic Pro X around 2010ish.
Apple chose the dark mode, because they wanted to make Final Cut look like a movie theater, with a dark background to focus on the preview window. This design decision makes sense for Final Cut a video editing software. But as it is often with design decisions, a big player like Apple, or Microsoft decides to do something for a specific reason, and others pick it up as "this is how it is done now".
And because Apple introduced dark mode for it's professional tools while keeping their their non profession tools like iMove originally in bright mode, other designers picked it up as dark mode means "profesionalism".
Which is how we ended up here.

So long story short, dark mode has not much to do with powersaving at all. It was a design decision by Apple for a very specific program (namely a video editor) with very specific reasoning, which then got chinese whisper style adopted by everyone else, with the original reasoning being lost.

Mr.Madguy

  • Hero Member
  • *****
  • Posts: 859
Re: Features - as started in "new splash" thread
« Reply #13 on: November 07, 2024, 08:26:25 pm »
Depends on what you consider dark mode. The "original" dark mode, which was a black terminal with white font, sure this was for power saving purposes, because of the design of the physical terminals back then, where you have an electron beam having to phyiscally turn the dots bright. Later many tools for programmers had a "dark theme" that tried to emulate the old terminal look.
Note that if you do not have an OLED display dark mode does not save any energy. On a normal LCD screen, dark pixels also need to be illuminated. It's only OLEDs that do save energy on darker colors.
So it may be an argument for Phones, but not really for Desktops.

But that was far from what is today considered the modern dark modes you see everywhere from IDEs to Microsoft Office even to the OS base tools by now. This was more or less popularized by Apple when they introduced their new Series of profession media tools, namely Final Cut X and Logic Pro X around 2010ish.
Apple chose the dark mode, because they wanted to make Final Cut look like a movie theater, with a dark background to focus on the preview window. This design decision makes sense for Final Cut a video editing software. But as it is often with design decisions, a big player like Apple, or Microsoft decides to do something for a specific reason, and others pick it up as "this is how it is done now".
And because Apple introduced dark mode for it's professional tools while keeping their their non profession tools like iMove originally in bright mode, other designers picked it up as dark mode means "profesionalism".
Which is how we ended up here.

So long story short, dark mode has not much to do with powersaving at all. It was a design decision by Apple for a very specific program (namely a video editor) with very specific reasoning, which then got chinese whisper style adopted by everyone else, with the original reasoning being lost.
I would call it trend. Dark theme has been (re)invented to save power on mobile devices. And UI designers just want PC experience to be similar to provide experience users are familiar with. Because today people get first smartphone earlier than first PC. Example? As PC monitors are high-DPI and mouse is precise pointing device, UI doesn't need so big spacings. But it has.
Is it healthy for project not to have regular stable releases?
Just for fun: Code::Blocks, GCC 13 and DOS - is it possible?

PascalDragon

  • Hero Member
  • *****
  • Posts: 5752
  • Compiler Developer
Re: Features - as started in "new splash" thread
« Reply #14 on: November 07, 2024, 09:19:24 pm »
Yes the work on the debugger is great. Especially the local variable view has improved significantly with version 3. Still some very annoying things, but I think thats not much one can do about, e.g. debugging list classes that do raw memory allocations is rough. If there would be the ability to define certain attributes to be embedded into the debug info, e.g. for containers marking the count and indexed access properties so the debugger can display them as a list or something would be great.

If the debugger is able to access RTTI custom attributes then one could (ab)use those for this purpose in trunk...

 

TinyPortal © 2005-2018