Remote mode : Page is set to 1 when I reset a filter

I have a table that I use in remote mode.
If I set the properties like this :
data = <a list of 2 elements>
sizePerPage = 5
options.page = 2
fetchInfo.dataTotalSize=7

then it works fine. I see my two elements, and the page number 2 is highlighted.
But when I set a text filter to blank, or a custom filter to blank (I call filterHandler() with no parameters inside my custom filter), then the page 1 becomes highlighted in pagination list, and I can't click on it or page 2. The props haven't changed, so I see a mismatch between props.options.page=2 and state.currPage=1.
Do you have a workaround or a fix? I think this is the last bug left in my list and I'm a little bit frustrated ^^
Thanks in advance, and great work with this component, it's very useful.

Also I noticed that it does this when I reset a custom filter, when I remove text from a text filter, but not when I go back to the placeholder in a select filter.

Actually I think it's the same behaviour for all kinds of filters

Yes, all the filter or search will go back to page 1, because all the data is different and the data must less than the original data, so it's a default behavior.

it's just that the problem is hidden for select filters because the data changes and causes new props to be passed to the component.

sorry, I cant get you, any examples or use case? sorry for my pool english...

Sorry, I wasn't very clear because I just wrote all my findings in the same post. I'll try to focus on the essential:

When a filter changes, the page becomes 1. This makes sense for the table in normal mode because the data changes.
In remote mode, this is problematic because it causes a mismatch between the page that's in the table state, and the page that's in the props.options object. The result is that clicking on the links doesn't work anymore. I think the reset should be made to options.page instead of the first page index (if it's specified).
Another problem if that the page is reset to one even if the data doesn't change. For example, if the filter was already empty and it calls the handler again, then the page is reset to one even though nothing has changed.

I hope it's more clear, don't hesitate to ask if something isn't clear

In remote mode, this is problematic because it causes a mismatch between the page that's in the table state, and the page that's in the props.options object. The result is that clicking on the page links doesn't work anymore. I think the reset should be made to options.page instead of the first page index (if it's specified).

I'll check this out, some questions is your remote mode is alternative?, and did you change the options.page in the onFilterChange? BTW,** I think you may be right**, but I can't reproduce this issue currently so not sure very well
So I wanna check your code, could you help me to create a simple and minimal example which can describe your second case? sorry for I'm busy on my job so it's really helpful for me to reproduce issue easily, take your time, you can follow these example to create a your case, Thanks 👍

I'm not using the alternative remote. My table is not editable, I only display data and sort/filter/paginate it.
I have made a minimal repo to reproduce : https://github.com/BenoitAverty/example-bootstraptable
Just checkout / npm install / open in chrome (or other modern browser).
Steps to reproduce :

Open the page
Click on page 2
Change the filter (value doesn't matter because the handler does nothing)

What will happen is :

The table component will have its state.currPage equals to 1 (this is easy to see with something like react-dev-tools chrome extension)
The table component will still have its props.options.page equals to 2 (because the parent compoenent didn't re-render)
You will not be able to change pages

What should happen in my opinion:

The state.currPage should stay equals to props.options.page. It's the responsibility of the user to make sure options.page is consistent with its data

This of course is only true in remote mode. In normal mode, changing the page to 1 would behave as normal because the data would change and options.page is only the default page.
Thanks in advance.

@BenoitAverty, it's awesome, thanks for your repo!!

@BenoitAverty, after my investigation for your code, I think I need to explain remote firstly,
Actually, remote means you are supposed to handle all the data change and then render your table, so this issue is because there's no any change when filtering but table itself have change some state so that cause a different situation between your state and table state.
Actually, I just write a example which have a remote search and pagination and it goes work well, so I just wanna to ask why you did nothing when filtering? did you have any concern, I just want to know, maybe there have some feature that I can support,
Thanks

I do nothing in this example, but this is just because making a real example would be too long, and unfortunately the project I'm working on isn't open-source.
However, there are several case where changing a filter wouldn't change the data : Imagine, for example the folllwing data :
[
 {key: 1, date: 2017-02-19},
 {key: 2, date: 2017-02-20},
 {key: 3, date: 2017-02-21},
 {key: 4, date: 2017-02-22},
 {key: 5, date: 2017-02-23},
 {key: 6, date: 2017-02-24},
 {key: 7, date: 2017-02-25},
 {key: 8, date: 2017-02-26},
]

and a date filter that is set to " after 2017-01-01". In that case the filter doesn't actually exclude any data.
If you go to page 2 then clear this date filter, then the data won't change : the 3 rows of page 2 are still displayed. But the page will still be reset to 1 and cause the bug, even though nothing should have changed because the data is exactly the same.

ya, I understand it, but if you do nothing in the filtering, it's not the expectation for remote mode, so I suggest you just to set the complete or the origin data again(Don't filtering, just change state with same data).
Actually, if your filter dont change data always, you can use remote to disable the column filtering with remote.
Please let me know any concern here.

I don't understand why not changing the data is unexpected. As I said, there are plenty of cases where changing a filter would not change the data.
Another axample would be to type a text in a text filter, but all the data contains that test. It's very counter-intuitive to go back to page 1 in that case.
Forcing a re-render of the component would maybe work (not sure), but it would be highly inefficient and fixing this in the library makes more sense.
I updated the repo to make the text filter functional. You can see that the filter works : for example, typing "3" will only show the "value3" line.
However, you can see the bug I'm talking about by following these steps :

Clear the filter : all lines should show
Go to page 2
type "val" in the filter.

The page will go back to 1 and be stuck. I don't think this is the correct behavior. I was able to find a workaround by setting the page to "1" in the "handleFilter" function, but this is not the behavior I want.
Do you want me to open a PR for this bug ?

Thanks for your investigation further,

Another example would be to type a text in a text filter, but all the data contains that test. It's very counter-intuitive to go back to page 1 in that case.

For me, no matter remote or not, jump to page 1 is truth case, no one argu this before, and why I do this, you can check jqGrid and DataTable, they are all familiar table component and they have same behavior with react-bootstrap-table, even if your data is fully match search pattern. So I just follow most case to design this functionality and I think I wont to change this behavior. But if there're too many people think this is a strange behavior, I'll do it immediately.
After I run your code and I figure out the root cause, The problem is I should let you know the page change to 1, but I didn't, I just change it internal and cause you slice the wrong data,
I'll find a solution to fix it, but there're couple thing I need to concern

I wont change the functionality for changing to page1
I'll change to page by calling internal handlePagination and this function will control the remote mode to let you receive the onPageChange event so that you must have a correct page number.... so you will not slice wrong data anymore.
Maybe I'll provide a props to configure to not change to page 1 when enable remote with search/filtering

Thanks :)

Ok, calling the page change callback will solve the problem at least, there won't be a bug anymore.
I still think the table shouldn't change the page by itself when in remote mode, but it's your choice and I'll respect it.
Thanks for your time and your work on this component.

This enhancement will be done after v3.0.0 release, so need some time, sorry, I'm busy.

No problem, Do it when it's convenient :)
Benoit AVERTY
Consultant
Zenika Rennes
2 bis Place St-Mélaine - 35000 RENNES
Standard : +33(0)2 22 66 61 50
Fax : +33(0)2 22 66 61 51
2017-02-21 17:02 GMT+01:00 Allen<EMAIL_ADDRESS>
This enhancement will be done after v3.0.0 release, so need some time,
sorry, I'm busy.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/AllenFang/react-bootstrap-table/issues/1037#issuecomment-281387958,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQN-_4YAgoufsUuwWBVmme5xzMInWnWpks5rewqlgaJpZM4MAMyz
.

@BenoitAverty I must say I'm with @AllenFang here.
When a filter is applied, you don't know how exactly the new data looks like and if it's the same data you already have in you current page or not, so once a filter is applied - you should go back to page 1.
Even if you have rows X,Y in your current page, and you applied some filter, and after the filter you still get from your server rows X, Y - no one guarantee that it's exactly the same page.

I agree with that, except when you clear an already empty filter. Either
way, when the table is in remote mode my opinion is that it shouldn't
change anything on its own. But as I said, I have a workaround for the bug
and I respect the other opinion so there's no problem :)

Can you explain a bit more about "already empty filter"? If the filter is empty (nothing is filtered) - how exactly do you clear it?
Or you mean that the filter didn't filter anything? (didn't affect the results).

For the "clearing" use case, it's a custom filter with a date field. I have
a button which clears the filter. It can also happen if you quickly type
then remove a character in a text filter.

@BenoitAverty : I am facing similar issue as you said. What;s fix. I do text filter and use onFilterChange method and page Number reset to 1. Need help

@BenoitAverty  I am doing API call on page change, So if i do call back to onPagechanage method then i have to do API call again.


Saving an experiment doesn't copy the Analog Output Function

How to replicate:

Start Experiment Designer
Create a simple protocol with at least one Analog Output Function
File -> Save As

choose new directory (in my case "c:\matlabroot\MyExperiment01"
Choose "MyExperiment01.g4p" as a file name
Click "Save"

The resulting folder 06-22-23_13-16-15 contains the subfolders Analog Output Functions, Functions, and Patterns along with MyExperiment01.g4p and currentExp.mat. Functions and Patterns have the *.mat and *.pfn / *.pat files, but Analog Output Functions is empty.
When trying to "Open" the 4gp file in the Designer later, I see this error:

Weirdly one of the AO functions shows up:

In a second test with just one trial and 2 differently named AO functions, the export worked.
So maybe the problem seen above is related to either the frame index or using the same name for the Position and the Analog function?
Needs more investigation.

In the first attempt when you had trouble saving, the AO function name is the same as the position function name - but is it actually the same file? Is the binary that goes with the function a .pfn or .afn file? Does it have the prefix fun or ao?

No, it was not the same file. I created a Position function with that name first, which created a *pfn file in the Functions folder. Then switched over to AO functions and created an AO function with the same name, which created a *afn file in the Analog Output Functions folder.
In the designer I loaded the whole folder, which gave me different functions (and renderings) for functions/AO functions.

This happened to me yesterday when testing out the AO index display in the Conductor. If I imported the functions and created a new experiment with them and saved, it worked fine. But if I opened an existing protocol with AO functions, changed something, then saved it, the AO functions did not export. Will look into it this week.

Updating to add that I tried this on my computer (when it happened to me last week I was on Eyal's old computer) and I couldn't recreate the issue. No matter how I did it, the AO functions exported just fine. Will see if I can re-create on the other computer and if so, i'll investigate the difference.

Probably fixed


Separate branches for LTS Yocto releases

Would it be possible to create distinct branches in the tibbo layers, to support at least the LTS Yocto releases?
Dunfell is coming to its end, so that would make kirkstone and scarthgap to maintain for the meta-* repositories.
The reason for this is that many Yocto based projects use repo or kas to fetch external layers during the build process.
With a specific branch we could avoid patching some files that currently lead to build errors.
Example with Kirkstone:
bb.parse.ParseError: ParseError at meta-sunplus/conf/machine/sp7021.conf:9: Could not include required file conf/machine/include/tune-cortexa9.inc
There are more complex approaches to branch management (meta-atmel or meta-ti could be great references), but they might be overkill

Yes, I'm going to do it.
There are only a couple of files that should be modified a bit for =Dunfell and >=Dunfell.
so I'm thinking about keeping the same branch, but renaming this files into
file.bb.dunfell
file.bb.kirkstone
and rename first or second into "file.bb" on fetch.
What do you think?

Thanks for being willing to take this extra step!
I am not aware of any git hooks for cloning.
Also, having different files version cohabit might work, but I think it could actually be more difficult to maintain/use in the long term :slightly_smiling_face:
Some thoughts:

If breaking changes are introduced in new versions, more files will have to be duplicated in the same branch.
The latest example of this is the new override syntax which is not compatible with versions prior to Dunfell.
It is also common that some variables are renamed, as we saw with Kirkstone release note.

A single branch does not allow you to backport a fix to a specific version.
You might end up with something like this:

* <- Kirkstone fix, but user cannot use it
|
* <- Scarthgap breaking change
|
* <- Kirstone support

On the other way, with the branch approach:

When cloning, users only get the relevant files they need, which makes browsing easier.

Layer is ready to use, and you can refer to the branch in your kas/repo config file directly.

Displaying different branches also inform user that the version he is looking for is supported.
I personally thought that only Dunfell was available, and had to look at the commits to realize this was not the case.

You can stop supporting a branch by simply indicating it as EOL.
This will be the case for Dunfell in some weeks, so this is the best time to start fresh IMO

two facts for meta-sunplus:

< Dunfell is not supported
current "dunfell" branch is ready and tested with kirkstone mickledore nanbield
only two files should be updated:
https://github.com/tibbotech/meta-sunplus/blob/35e3878fbdf1968bc367a37f60658109cb687e3f/conf/machine/sp7021.conf#L8
https://github.com/tibbotech/meta-sunplus/blob/35e3878fbdf1968bc367a37f60658109cb687e3f/conf/machine/sp7021-arm5.conf#L8

for meta-tibbo it is a bit more complex: there are 3 files that should be patched before bitbaking... :)

I was just a bit surprised I had to do these manual changes in the first place

Yocto changed the cpu settings file location. If they would not do this then we would be 100% compatible with all new branches and not have to change anything in the files.
meta-tibbo layer have a couple of variable names that has been changed between Yocto branches.
Now I'm experimenting with branches locally, going to push the updates in next few days.
I'd rather use file names scheme I suggested before

There are nothing to do. Now it is compatible with Dunfell, Kirkstone, Nanbield AS-IS!

Scarthgap is near to release, but not officially supported yet. It is upcoming release, I made tests. I saw a couple of minor issues - there are will not be a problem to update

Thanks for the update, the LAYERSERIES_CORENAMES looks nice!
I encountered some issues while migrating to Kirkstone, I will open some PRs to help fix them when I find time

And one more modification that helps you to get rid of complete ISP setup
https://github.com/tibbotech/meta-sunplus/commit/eddf9d9709f6f84811e42a6aa25d3ad0a8a47e62


Statistics Calculator

Calculator Functions
This should calculates minimum, maximum, sum, count, mean, median, mode, standard deviation and variance for a data set.
Contribution Event
GSSOC22
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of this project.

Anyone can assign this issue to him/herself by typing /assign in the comment !!

/assign

/assign

/assign

Hey comment it correctly !
just type /assign
no extra space or tab should be there in the comment

/assign

@vasu-1 I have assigned it to me, and made a PR, please review it once and let me know if any changes are required.


Free PutOperation references earlier

This contains a couple of fixes to free references to PutOperations
earlier and to allow GC to take place:

Since NettyMessageProcessor keeps a reference to the last NettyRequest
object sent over an HTTP connection, there can be a link to a callback
that prevents a previous PutOperation's buffer from being GCed. The
easiest way to address this is to nullify the callback reference after
it is used.
correlationIdToPutOperation map would previously retain a reference to
a PutOperation even if the operation was fully complete. This means that
large buffers would be retained until all responses are received, even
if the server response is no longer relevant to the operation.

Codecov Report

Merging #1215 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #1215   +/-   ##
=========================================
  Coverage     83.62%   83.62%
  Complexity       57       57
=========================================
  Files             6        6
  Lines           348      348
  Branches         38       38
=========================================
  Hits            291      291
  Misses           45       45
  Partials         12       12

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 79b311b...44c4453. Read the comment docs.

Changes LGTM. Make sure all tests can pass.


:bug:Freeze Makefile deps

Please check if the PR fulfills these requirements

[Y] Tests for the changes have been added (for bug fixes / features)
[Y] PR title follows the guidelines defined in  https://github.com/ossf/scorecard/blob/main/CONTRIBUTING.md#pr-process

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
Freeze Makefile deps, dont use curl|bash pattern

What is the current behavior? (You can also link to an open issue here)
insecure coding pattern, freeze deps.

What is the new behavior (if this is a feature change)?
freezes deps in makefile

Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)
no

Other information:

The golang-lint installation globally breaks other oss project contributions.
I would like to make a PR to put that one back.

The golang-lint installation globally breaks other oss project contributions.
I would like to make a PR to put that one back.

This curl|bash is a bad security pattern, we need to freeze deps, so that is why went this way. What does this break. Check https://about.codecov.io/security-update/


Convert metrics to use Micrometer

Once the work on the micrometer-migration branch is complete, this PR will cover merging it back into master. Until then, comments are welcome.

Closing old draft PR (no action for 8 months)


Change the bundleId/applicationId too

I need to chage both the app's name and its bundleId/applicationId on Android and iOS.
There's another package doing that, it's called rename. Unfortunately, though, it requires the new ID to be specified in the command line instead of pubspec.yaml, which is why I like flutter_app_name better. I just combined the two packages in one; this obviously creates a dependency, which can be a problem (also because rename still lacks support for Windows builds), but it might also help the packages to co-evolve.
However, I'm giving the fork back to the community, in case you can make some good use of it.
It currently accepts another field in its own pubspec section, like this:
flutter_app_name:
  name: "New App Name"
  id: "info.maurovanetti.new_app_id"

This is a very high quality change, thank you! I'd like to see a test for this if possible before I merge it.
I have looked through the code and it all seems fine. I appreciate that the bundle_id is not required.
I am still on the fence a bit about the extra dependency. Specifically because I created flutter_app_name in response to Flutter 2.0 breaking dependencies in other similar packages. Depending on how hard the rename functionality that we want here is to implement, the ideal scenario is that we just implement it ourselves within flutter_app_name to avoid headaches in the future.
Otherwise, I will merge this. Thank you for putting in the time.

You're welcome, thank you for the time you put in the package in the first place.
I actually agree that we'd be on a safer side by removing the dependency and just reimplementing it ourselves. But I don't feel confident enough to rewrite rename because I don't know the details of the ID concept in all platforms, therefore I would just be plagiarising the original code which is the same as importing it.
Same with testing: apart from some very basic unit testing, I'm not sure about how the expected results can be defined…


Variant pitch and yaw coordinates for different zoom levels

Hello,
I got a little problem with the angle coordinates for my hotspots. In a research project where I want to link on site pictures directly to their position within a panorama by referring to the local coordinates from where they were taken, your application proves highly useful to me. However, right now I got stuck with a little problem: In the process of validating our formula that turns the local coordinates to the equivalent angle values for the respective panorama, I want to improve the calculated angles by comparing them with their actual yaw and pitch values according to the developers console (using mouseEventToCoords).
It occurs that depending on the zoom level, these coordinates vary (see image, where I clicked on the same hotspot at 3 diff. zoom levels and each time, the angles changed).
I don't really understand, why the angles for the same spot should change depending on the zoom, and I could swear that it used to not be the case as I did this kind of validation before without the problem. This happens on Firefox and Chrome by the way.
Maybe there is some sort of trick to overcome this? Many thanks in advance!

It appears you have the page zoomed in. This doesn't work properly in the current release version but has been fixed in the development copy (hi-DPI displays weren't handled properly either). If my guess is correct, the easy fix is to reset your browser's zoom to zero.

That caused the problem indeed, thanks alot! Now that also explains why I used to have this problem exclusively on Chrome as I guess I had that browser zoomed in for a longer time already and just recently also used the zoom function on Firefox too!


Removed getTokens() as it's unused, Corrected getStorageBackup's validation

The validation on getStorageBackup looked incorrect so I changed it as well as removing getTokens() as it looked unused.

Great catch on the backup schedule bug.


Instanceset landing glob support

Description
This PR adds glob support for CourseCode to enable courses with multiple codes to be handled.
It also alignes with polito exam/exercise platform for hash generation.

/merge


Fix AST visitor for external rules

Only the ones in the top level *Ast type instances were being provided to external rules. This fix searches nested scriptblock for the corresponding *Ast type instances to be passed to external rules.
Fixes #609

This change is

Comments from Reviewable

Reviewed 4 of 4 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


[3.x] Sanitize input to ImageTexture::set_data() to prevent bad memory access

Fixes #54930.  As part of the refactoring of texture.cpp, the equivalent checks should already be in the corresponding method in master.

Flags have changed to separate fields in 4.0;  the state of the mipmaps field seems to be different to flags & FLAG_MIPMAPS at the time get_data() is called by the engine in many cases which I'm not clear on.  To check mipmaps I pulled from get_data() but the sanitizer build doesn't like this because of the potential null pointer access.  I can add a check for image_stored before doing a mipmap check, but I don't know if having the branch statement in this method is undesirable.  In any case, I'll try and see if this satisfies the sanitizer build check.

Does this change work with VisualServer.texture_set_shrink_all_x2_on_set_data? and also with GLES2 having to resize_to_po2 to support older hardware?

Is there any reason why it shouldn't be compatible?

@Macksaur After testing, I notice that setting VisualServer.texture_set_shrink_all_x2_on_set_data(true) will cause image data of the original to report the original texture size but duplicating the original will pull from the shrunk texture once bound to the texture.  Chaining duplicates from the bound texture will do the same thing and half the resolution.  Considering the nature of the set_data() method, it's probably sill up to you to maintain awareness of the state of the VisualServer texture shrink setting when writing your bind method. This PR should, however, still catch the discrepancy and prevent OOB memory access, like so:

Hope that helps.


[Trivial] Use DUNE_PROFILE when building test_executive

The test_executive.exe binary doesn't use any features from the integration_test profile -- which only serves to enable the old-style integration tests in the CLI -- so we can use the same profile instead of blowing away the old artifacts.
Encountered this while trying to build all relevant executables to test a build.
Checklist:

[ ] Modified the current draft of release notes with details on what is completed or incomplete within this project
[ ] Document code purpose, how to use it

Mention expected invariants, implicit constraints

[ ] Tests were added for the new behavior

Document test purpose, significance of failures
Test names should reflect their purpose

[ ] All tests pass (CI will check this if you didn't)
[ ] Serialized types are in stable-versioned modules
[ ] Does this close issues? List them

I don't care enough to revive this. Closing.


Delete old contribution guide.

Codecov Report

Merging #131 (0683189) into master (2efa09d) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #131   +/-   ##
=======================================
  Coverage   79.57%   79.57%
=======================================
  Files          12       12
  Lines        1694     1694
=======================================
  Hits         1348     1348
  Misses        346      346

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 2efa09d...0683189. Read the comment docs.


Added esp32-cell-thingstream-mqttsn.cpp example for PlatformIO

Hi Rob,
maybe you remember me.
I'm the guy who had the SARA-R5 ubxlib ESP32 problems 2 weeks ago.
Now I would like to share my example code, so that others can have an even easier entrance into the ubxlib.
I added my example esp32-cell-thingstream-mqttsn.cpp in the port/platform/platformio/example/ folder.
I hope you like it!
Best regards,
Jan-Ole

@philwareublox: Phil, do you want to give this a quick check from an AE perspective?

FYI, have pushed some style changes on top (was going to do it as a PR to your master that you could push back here but that was getting way too complicated).

Looks great! Thank you!


Loading indicator should always be the circular variant when at icon size

Summary of the bug
When the size prop on the loading indicator is set to icon, it should always show the circular variant and never the linear variant (this is the case in the Figma designs).
🪜 How to reproduce

Go to the story for the icon loading indicator and change the type in the DevTools to linear.
See that it tries to render a very small linear loading indicator e.g.:

🧐 Expected behaviour
As defined on Figma, the loading indicator should always display the circular variant when it is set to its icon size.
Additional info
It is probably worth adding a note to the description for the size prop to say that setting it to icon will always display the circular indicator.

Design thinks likely best to keep consistent with Button loading, so Figma needs updating


Add post checks for existing tests in tools/spectool

resolves #170

So for those post checks which are now failing due to the behavior being wrong, can you make those into // TODO: post: ...failing condition here... comments so that we can merge this?
Also, some of the values you've put in are incorrect. (:
For example:

inst_load_u8_trap.txt: unexpected gas: 9998 (expected: 9999)

pre: a0 = 0
pre: gas = 10000

pub @main:
pub @expected_exit:
    a0 = u8 [0x20000]

post: a0 = 0
post: gas = 9999

The correct final gas here is 9998, so the post condition is wrong!
This might not be in the GP yet (because the gas cost model is not done yet), but remember that we currently don't charge gas on each instruction (for efficiency reasons). We charge gas when we enter a given basic block for the whole basic block! So here we have two instructions: a load from memory, and an implicit trap. So this gives 2 gas consumed. Sure, in this case the load will interrupt the execution because it accesses memory that's inaccessible, but gas-wise that doesn't matter.
(Of course, there's a possibility that this could be changed, but for now that's how it works.)

So for those post checks which are now failing due to the behavior being wrong, can you make those into // TODO: post: ...failing condition here... comments so that we can merge this?

Sure, will do.

Also, some of the values you've put in are incorrect. (:
This might not be in the GP yet (because the gas cost model is not done yet), but remember that we currently don't charge gas on each instruction (for efficiency reasons). We charge gas when we enter a given basic block for the whole basic block! So here we have two instructions: a load from memory, and an implicit trap. So this gives 2 gas consumed. Sure, in this case the load will interrupt the execution because it accesses memory that's inaccessible, but gas-wise that doesn't matter.
(Of course, there's a possibility that this could be changed, but for now that's how it works.)

Oh, I wasn't aware of the "gas metering per basic block bit". Now the spent gas numbers make more sense. Thank your for explaining that.
Maybe it would make sense to add this to the GP? My Scala PVM implementation does currently per instruction gas metering and would require refactoring, that will have a broader impact. I assume that it is similar for other teams.

Maybe it would make sense to add this to the GP? My Scala PVM implementation does currently per instruction gas metering and would require refactoring, that will have a broader impact. I assume that it is similar for other teams.

Yes, but probably once we actually have a close-to-final gas cost model? You'll have to make changes for the final gas cost model anyway, so it's either we update the GP now and will have to update it later again (so two updates), or we'll only update it once later (so only one update).

Maybe it would make sense to add this to the GP? My Scala PVM implementation does currently per instruction gas metering and would require refactoring, that will have a broader impact. I assume that it is similar for other teams.

Yes, but probably once we actually have a close-to-final gas cost model? You'll have to make changes for the final gas cost model anyway, so it's either we update the GP now and will have to update it later again (so two updates), or we'll only update it once later (so only one update).

I suppose, It depends on what is included in the final gas cost model. If only the cost per instruction values change, than that is not a big deal. If we are talking about changing gas metering from "per instruction" to "per basic block", then it is a bigger change.
I can only speak for my implementation, where if gas metering per basic block is necessary, then I would need to do quite some refactoring. In contrast, changing the per instruction gas cost values, this would be a trivial change.
On the other hand, adding basic block metering to the GP now and then removing it later, is also not a good option. So  I assume, that if things are that much unknown and in flux, to just leave it as it currently is, would be the better option.

I can only speak for my implementation, where if gas metering per basic block is necessary, then I would need to do quite some refactoring.

Your PVM implementation is an interpreter, right? In that case you would have to completely rewrite it anyway because I don't expect anyone to be able to hit even the half-speed milestone on an interpreter. (:
If you look at the benchmarks (although these are slightly outdated as our interpreter should be faster now, maybe even twice as fast, I don't remember exactly) you can see that the performance difference between the recompiler and the interpreter is pretty big. Assuming the performance of my recompiler will be the "full speed" milestone bar (but most likely slightly lower to still allow for implementations which are not optimized pedal-to-the-metal to qualify), then "half speed" would suggest that you could run half the speed/take twice as much time as the recompiler. And I don't see even a very well optimized interpreter written in a systems language hitting that, never mind an interpreter which is written in a higher level language! (But maybe "half speed" will get redefined as some slightly lower threshold and not literally half; I don't know.)
That said, unless you're an expert in writing recompilers it doesn't make sense to start with a recompiler right off the bat; it's harder to write, harder to debug, and harder to modify. So it still makes sense to start with an interpreter (if nothing else you'll get some experience which will help you write a recompiler later), just don't expect to be able to use it right until the very end. (:

I can only speak for my implementation, where if gas metering per basic block is necessary, then I would need to do quite some refactoring.

Your PVM implementation is an interpreter, right? In that case you would have to completely rewrite it anyway because I don't expect anyone to be able to hit even the half-speed milestone on an interpreter. (:
If you look at the benchmarks (although these are slightly outdated as our interpreter should be faster now, maybe even twice as fast, I don't remember exactly) you can see that the performance difference between the recompiler and the interpreter is pretty big. Assuming the performance of my recompiler will be the "full speed" milestone bar (but most likely slightly lower to still allow for implementations which are not optimized pedal-to-the-metal to qualify), then "half speed" would suggest that you could run half the speed/take twice as much time as the recompiler. And I don't see even a very well optimized interpreter written in a systems language hitting that, never mind an interpreter which is written in a higher level language! (But maybe "half speed" will get redefined as some slightly lower threshold and not literally half; I don't know.)
That said, unless you're an expert in writing recompilers it doesn't make sense to start with a recompiler right off the bat; it's harder to write, harder to debug, and harder to modify. So it still makes sense to start with an interpreter (if nothing else you'll get some experience which will help you write a recompiler later), just don't expect to be able to use it right until the very end. (:

Yes, only an interpreter at the moment. As you stated, the hope is to first learn what needs to happen inside a VM, as this is my first time implementing something like this. So basically, I'm currently only going for correctness and not for speed. By the time I need to write a recompiler, I should have a much better understanding of what needs to be done. Furthermore, a reason why I'm trying to help out here a bit is to learn, where even with this issue, I'm learning something new. So thank you for your time. :)

@koute can you please take a look again? issue should be good to go.


Add new subsection talks to Resources

This is interesting, but I am not sure if it is a good idea to add talks to this list.

Sorry, i think the list of talks will quickly become irrelevant especially if Crystal is still not production ready and regularly introduces breaking changes. But we may think about that in future. Thank you.


feat: add customizable profile background theme

Feature #616
Changes proposed
Now, users can view the background theme of user's choice when they visit profile page however, the background theme must be present in <profile_name>.json file else default background is set i.e. #fff (White).
Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[x] My change requires changes to the documentation.
[ ] I have updated the documentation accordingly.
[x] All new and existing tests passed.
[x] This PR does not contain plagiarized content.
[x] The title of my pull request is a short description of the requested changes.

Screenshots

This is going to create massive accessibility issues as the contrasts won’t always be up to wcag standards. I wonder if we can have a white panel in the middle and customisable bars down the sides (if we really must have customisable colours at all, there’s already a lot of colours with different icons and buttons, this feels like overkill but that is just my opinion)

I think eventually, we would want to move away from custom colors based on platforms (for profiles using themes besides the default Linkfree theme), and make the themes a collection of button colours, text colours and background colours?

This is going to create massive accessibility issues as the contrasts won’t always be up to wcag standards. I wonder if we can have a white panel in the middle and customisable bars down the sides (if we really must have customisable colours at all, there’s already a lot of colours with different icons and buttons, this feels like overkill but that is just my opinion)

Yes @emmalearnscode you are absolutely right but this is just a MVP version of it and as said by @Vyvy-vi we'll enhance the feature going forward.

This is going to create massive accessibility issues as the contrasts won’t always be up to wcag standards. I wonder if we can have a white panel in the middle and customisable bars down the sides (if we really must have customisable colours at all, there’s already a lot of colours with different icons and buttons, this feels like overkill but that is just my opinion)

Yes @emmalearnscode you are absolutely right but this is just a MVP version of it and as said by @Vyvy-vi we'll enhance the feature going forward.

I'm not sure this is an MVP though, it's going to create problems with accessibility and therefore not viable. I think that really, instead of allowing random background colors, we need to make a plan for the things that @Vyvy-vi mentions above about themes, then work out how that will be implemented and create an MVP from that.

Perhaps, we can incolde the themeing code, but ignore and not document the theme key in the data files?

Perhaps, we can include the themeing code, but ignore and not document the theme key in the data files?

I'm not sure that's a great idea. It could still be used by some people and create accessibility issues. And if we decide to take a different approach to themes when it's been properly discussed then we will need to go through and remove it from the profiles that have included it.

I'm the same opinion as @emmalearnscode here. This might cause major problems with a11y. We should make a concept (if we want custom theming and if yes how we want to realize that to keep a11y high) first 🤔

Same opinion as @emmalearnscode, for now we can drop this PR and discuss more about the customization If everyone agrees.

Yes, let’s move the discussion back to issues for now and maybe do some mock ups before proceeding with design changes


Flash improvements + flash bypass infrastructure

Codecov Report
Attention: Patch coverage is 58.06452% with 39 lines in your changes are missing coverage. Please review.

Project coverage is 67.82%. Comparing base (ad10e6e) to head (ac89e7b).
Report is 5 commits behind head on main.

Files
Patch %
Lines

src/flash_types.jl
21.05%
15 Missing :warning:

src/flow_coupler_types.jl
0.00%
10 Missing :warning:

src/flash.jl
76.00%
6 Missing :warning:

src/eos.jl
54.54%
5 Missing :warning:

src/stability.jl
83.33%
3 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #20      +/-   ##
==========================================
+ Coverage   67.59%   67.82%   +0.22%
==========================================
  Files          16       16
  Lines        1148     1237      +89
==========================================
+ Hits          776      839      +63
- Misses        372      398      +26

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Need an Explainer on what poor compliance means

I don't think it's explained in the doc or the chart what poor compliance means vs strict compliance.
Some informative text about what that is on the chart label hover or at least details about it within the assumptions doc (maybe we need to just use the term 'poor compliance' for easy copy paste if it exists somewhere and i missed it)

Related bug:
https://github.com/covid-projections/covid-projections/issues/377

Obsolete.


Misc additions

Device:

Add electronics board information display.

Sequences:

Pin write step ON/OFF dropdown for pin value when in digital mode.
Fix display bugs.

Farm Designer:

Fix redirect bug.
Fix OpenFarm search bug.

App:

Increase length of message text displayed in ticker.

Coverage increased (+0.2%) to 52.495% when pulling 1174d541a283491e96621ef44e6e38aef6f56c39 on gabrielburnworth:master into 767648768aa069b2faff4cb200187babf172606c on FarmBot:master.

Coverage increased (+0.2%) to 52.495% when pulling 048dea690e07833cbb37724f0cce3259eff97f96 on gabrielburnworth:master into 767648768aa069b2faff4cb200187babf172606c on FarmBot:master.


Stereo Sound Panning

I implemented a "pan-able" audio stream. It changes the stereo channels signal amplitude as the bytes are being read.
I can open a PR if there's a need for it to be in the library.
package audio

import (
	"bytes"
	"io"

	"github.com/hajimehoshi/ebiten/audio"
)

// StereoPanStream is an audio buffer that changes the stereo channel's signal
// based on the Panning.
type StereoPanStream struct {
	*bytes.Reader
	pan float64 // -1: left; 0: center; 1: right
}

func (s *StereoPanStream) Read(p []byte) (n int, err error) {
	n, err = s.Reader.Read(p)
	if err != nil {
		return
	}
	ls := min(s.pan*-1+1, 1)
	rs := min(s.pan+1, 1)
	for i := 0; i < len(p); i += 4 {
		lc := int16(float64(int16(p[i])|int16(p[i+1])<<8) * ls)
		rc := int16(float64(int16(p[i+2])|int16(p[i+3])<<8) * rs)

		p[i] = byte(lc)
		p[i+1] = byte(lc >> 8)
		p[i+2] = byte(rc)
		p[i+3] = byte(rc >> 8)
	}
	return
}

func (s *StereoPanStream) Close() error {
	return nil
}

func (s *StereoPanStream) SetPan(pan float64) {
	s.pan = min(max(-1, pan), 1)
}

func (s *StereoPanStream) Pan() float64 {
	return s.pan
}

// NewStereoPanStream returns a new StereoPanStream with a shared buffer src.
// The src's format must be linear PCM (16bits little endian, 2 channel stereo)
// without a header (e.g. RIFF header). The sample rate must be same as that
// of the audio context.
//
// The src can be shared by multiple buffers.
func NewStereoPanStream(src []byte) *StereoPanStream {
	return &StereoPanStream{
		Reader: bytes.NewReader(src),
	}
}

// NewStereoPanStreamFromReader returns a new StereoPanStream with a copied buffer src.
// The buffer needs to be copied because the pan algorithm changes the wave
// amplitude as the bytes are read.
//
// The src's format must be linear PCM (16bits little endian, 2 channel stereo)
// without a header (e.g. RIFF header). The sample rate must be same as that
// of the audio context.
func NewStereoPanStreamFromReader(src audio.ReadSeekCloser) *StereoPanStream {
	src.Seek(0, io.SeekStart)
	buf := new(bytes.Buffer)
	io.Copy(buf, src)
	return &StereoPanStream{
		Reader: bytes.NewReader(buf.Bytes()),
	}
}

// test that it fulfills Ebiten's ReadSeekCloser
var _ audio.ReadSeekCloser = &StereoPanStream{}

func min(a, b float64) float64 {
	if a < b {
		return a
	}
	return b
}

func max(a, b float64) float64 {
	if a > b {
		return a
	}
	return b
}

Hi, thank you for suggesting the idea! Isn't this just adjusting volume of the left and right side channels? I'd mix the sound the left and right channels based on the panning values.
For PR, I'm not sure I want this panning in Ebiten to be honest because I guess not so many people want this feature. What do you think?

Hi! The idea is to mix the left and right channels on demand because on my implementation, the "ear" is at the center of the camera and each sound effect playback can have a different panning every frame (as it moves across the screen). This is why I did this instead of mixing both channels in advance.
I understand that this might not be the scope of the Ebiten library, but since I implemented it for myself, it thought it didn't hurt to share. I can turn this implementation into an example too examples/audiopanning, though.

For example, if pan is -1, the sound in the right channel is ignored. Is this expected? I just read the code so I might be missing something though.

I understand that this might not be the scope of the Ebiten library, but since I implemented it for myself, it thought it didn't hurt to share. I can turn this implementation into an example too examples/audiopanning, though.

Right, having an example is a great idea!

Yes, the panning goes from -1 (100% left channel, 0% right channel) to 1 (0% left channel, 100% right channel).
I added the example at #1227

Yes, the panning goes from -1 (100% left channel, 0% right channel) to 1 (0% left channel, 100% right channel).

I'm not so familiar with audio technology, but this seems odd to me. This is just muting the right channel, right? Do we have the same effect when we use StereoPannerNode [1] with -1?
[1] https://developer.mozilla.org/en-US/docs/Web/API/StereoPannerNode

It's a spectrum. With the panning at 0, both channels are outputting at 100%. It's not common to mute a channel completely (being at -1 or 1) but in my opinion that should be up to the game developer using it. In the example (#1227), the sound panning goes from -1 to 1, following the shrimp.

I tested StereoPannerNode API (test page) with a testing audio (http://www.testmyspeakers.com/speaker-test.mp3) by downloading them, modifying the HTML to use the MP3 and running an HTTP server (python3 -m http.server 8000. file:/// doesn't work with the audio due to CORS).
I have confirmed the right channel was NOT ignored when the panning is -1.
So I think:
-1: L: left channel 50% + right channel 50%, R: (mute)
-0.5: L: left channel 75% + right channel 25%, R: right channel 50%
0: L: left channel 100%, R: right channel 100%
would make sense. The percentage is arbitrary and there seems to be more rigid algorithms (e.g., https://dsp.stackexchange.com/questions/21691/algorithm-to-pan-audio/21736), but I don't require such algorithms so far :-)
What do you think?

That seems correct. I didn't mix the channels in my implementation (like leaking 50% of the right channel to the left channel, when it's at -1), and some implementations do it. Personally I used to do it with mono sounds in Unity so I didn't really care about mixing the original audio channels (since they were identical after importing into Unity).

Looks like Chromium uses the sin/cos way: https://source.chromium.org/chromium/chromium/src/+/master:third_party/blink/renderer/platform/audio/stereo_panner.cc;l=65-77;drc=456596a0b27623349d38e49d0e9812b24d47d5d8?originalUrl=https:%2F%2Fcs.chromium.org%2F

I could implement that algorithm into the example, but personally I wouldn't use it (I rather not use math.sin and math.cos for every frame on every sound effect haha, gotta go fast).

OK, I'm fine with the linear way I suggested in your PR.
I'll take a look at your PR tomorrow.

I added a comment above the simpler panning implementation. Tomorrow, if you feel like the sin/cos method should be implemented, please let me know.


Time slots need a a higher width

The time slots in the admin batch edit interface need a higher minimum width.

Assigning to @bp323 for review

Coverage remained the same at 100.0% when pulling 3a420adefdf06fe42b09a6d36a677e33bc795087 on Coenego:issue-177-width into 2c5e57c4164d108e246c3509393b1ae7f9212842 on CUL-DigitalServices:master.

Verified and merged.


Removing all console Messages....

Description
There are lot of console.log messages . Hence I want to fix this issue.
Screenshots

Any additional information?
No response
What browser are you seeing the problem on?
No response
Checklist

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[X] I have read the discussion tab thoroughly and got the project idea
[X] I am willing to work on this issue (optional)
[X] I am a GSSoC'23 contributor

@rahulrana701 not imp for now
we will look into this once the project is near completion


td_partial_delete> operator

👍  good to merge.
/v3/table/partialdelete doesn't support domain key, apparently. which should also be improved.


Try collapsing the what is information

Instead of making the user keep on jumping to other files and then back. They just click the > to open or collapse the details.

On Mar 18, 2017, at 9:51 AM, Lois Curfman McInnes<EMAIL_ADDRESS>wrote:
@curfman commented on this pull request.
Barry -- Thanks for thinking about user interface; this is very important, and we indeed appreciate suggestions about how to effectively present info (including levels of detail for topics) on the front-end site. The GitHub site (this page) is just where content contributors provide material that will eventually be displayed with an intuitive user interface on the front-end site (where most users will see the content). The front-end site is under development by our partners at Sandbox Studio and Parallactic. The format used in this file is input for a parser that then is used to insert content into the front-end site (which is built using Ruby on Rails).

Ok
Since HPCers generally do our own webpages we usually have very static pages with lots of links because doing anything else is too difficult. But this also means we "think" in terms of such pages.  I actually wanted to use an "in window" pop up (like you often see on commercial sites; they have the X in the upper right corner to remove them) for these small "blurbs" but it doesn't appear easy with markdown to do that. Presumably Sandbox Studio and Parallactic can do this easily.

I am a bit concerned that if the contract with Sandbox Studio and Parallactic lapses in the future for any reason we may not be able to maintain the webpages they have made?

Barry

So, let's talk about look and functionality for the front-end, not worrying so much about the particular file format of the back-end. We are providing feedback on wireframes now; I'll provide more info in a separate email.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

As part of the contract for phase-1 work on the site (current scope), Sandbox Studio and Parallactic will provide training and instructions so that we can maintain the site.   We may work with them to extend functionality (in a phase-2 project) as determined by feedback from site users.

FWIW, I'll second Barry's idea of expandable/collapsable blurbs underneath major headings instead of sep. pages. I think I understand Lois' explanation that some 3rd party web experts are going to take "raw inputs" from Github to "make the real hosted site". However, I also share Barry's concern about long-term viability of that approach. OTOH, with combination of github, Jekyll w/Liquid tags and SASS, I dunno why we can't own the whole site ourselves? I have worked in modalities where we have sep. web experts doing the web work and I have always found them frustratingly slow, unsatisfying in final result and not easily changed once created.
FWIW, I don't think we're doing stuff here that requires a CMS even for these pages. Our content isn't like a store always trying to look new and fresh. CMS are nice but they're often way overkill for what I need.

OTOH, with combination of github, Jekyll w/Liquid tags and SASS,

wow, Mark, with your experience sounds like we should hire you to build our web pages :-).
Since you know so much, the concern I have with my "collapse" model (and what I could find about open source pop up models on the web) is that the text that goes into the "collapse" must be stored in the same file as the outer page. This is a terrible data model because then there is no reasonable way to display that same text in other locations. Hence my concern that the "open source" non-commercial web display tools don't have flexible "data models" that I think we want to use.

Hi Mark and Barry -- Thanks for your comments; agreed that expandable/collapsable blurbs are a good idea, and we are exploring for the front-end.   The GitHub site provides content for the front-end, so it is effectively serving as a content management system.    We'd be glad to discuss more details about approach and long-term strategy ... will put that on the agenda for sometime when we can talk rather than just writing.  Keep those good ideas coming :-)  Thanks.

On Mon, Mar 20, 2017 at 7:49 PM, Barry Smith<EMAIL_ADDRESS>wrote:

OTOH, with combination of github, Jekyll w/Liquid tags and SASS,
wow, Mark, with your experience sounds like we should hire you to build
our web pages :-).

Well, I claim only enough knowledge of those technologies to conclude its
possible.
I have been desiging a couple of sites using Jekyll, SASS and Liquid and it
takes a minute to get oriented but then its pretty cool. Basically, its a
code-generation approach to a mostly-static site construction. So, it
replaces a CMS with a code-generation style of site creation. But, its
tightly integrated with github too so that as you commit, github will
re-gen the site. The technology was originally developed to support blog
sites but its been extended to do a lot more. For example, this site is
sourced on github here...
https://github.com/home-assistant/home-assistant.github.io
and served from github here...
https://home-assistant.io

Since you know so much, the concern I have with my "collapse" model (and
what I could find about open source pop up models on the web) is that the
text that goes into the "collapse" must be stored in the same file as the
outer page. This is a terrible data model because then there is no
reasonable way to display that same text in other locations. Hence my
concern that the "open source" non-commercial web display tools don't have
flexible "data models" that I think we want to use.

I think the code generation approach can actually support the kind of "data
model" you are thinking where the text blurbs live each in their own file
and then you control, during site generation, how that content gets linked
into the rest of the site. One way, its collapse/expand content. Another
way, its in-line, indented content. Still another way, its follow-this-link
content.
All that said, I don't wanna become a site developer ;) At least not by
myself. I think this Jekyll stuff is straightforward enough, most people on
the team could pick it up. Heck, its just some conventional folder
hierarchies + content snipits + Liquid coding and we're all coders ;)
—

You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub
https://github.com/betterscientificsoftware/betterscientificsoftware.github.io/pull/60#issuecomment-287961146,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFdKZOyDno_fVp_fYFgPOyz7WGKIDHa5ks5rnzqegaJpZM4MhNr5
.

On Mar 23, 2017, at 11:33 PM, Mark C. Miller<EMAIL_ADDRESS>wrote:
On Mon, Mar 20, 2017 at 7:49 PM, Barry Smith<EMAIL_ADDRESS>wrote:

OTOH, with combination of github, Jekyll w/Liquid tags and SASS,
wow, Mark, with your experience sounds like we should hire you to build
our web pages :-).

Well, I claim only enough knowledge of those technologies to conclude its
possible.
I have been desiging a couple of sites using Jekyll, SASS and Liquid and it
takes a minute to get oriented but then its pretty cool. Basically, its a
code-generation approach to a mostly-static site construction. So, it
replaces a CMS with a code-generation style of site creation. But, its
tightly integrated with github too so that as you commit, github will
re-gen the site. The technology was originally developed to support blog
sites but its been extended to do a lot more. For example, this site is
sourced on github here...
https://github.com/home-assistant/home-assistant.github.io
and served from github here...
https://home-assistant.io

Thanks. The site is pretty but has no examples of "collapse" or pop up, the pages people see are static (nothing to steal from here).

Since you know so much, the concern I have with my "collapse" model (and
what I could find about open source pop up models on the web) is that the
text that goes into the "collapse" must be stored in the same file as the
outer page. This is a terrible data model because then there is no
reasonable way to display that same text in other locations. Hence my
concern that the "open source" non-commercial web display tools don't have
flexible "data models" that I think we want to use.

I think the code generation approach can actually support the kind of "data
model" you are thinking where the text blurbs live each in their own file
and then you control, during site generation, how that content gets linked
into the rest of the site. One way, its collapse/expand content. Another
way, its in-line, indented content. Still another way, its follow-this-link
content.
All that said, I don't wanna become a site developer ;) At least not by
myself. I think this Jekyll stuff is straightforward enough, most people on
the team could pick it up. Heck, its just some conventional folder
hierarchies + content snipits + Liquid coding and we're all coders ;)
—

You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub
https://github.com/betterscientificsoftware/betterscientificsoftware.github.io/pull/60#issuecomment-287961146,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFdKZOyDno_fVp_fYFgPOyz7WGKIDHa5ks5rnzqegaJpZM4MhNr5
.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Here's an example of a Jekyll created page with collapse...
http://idratherbewriting.com/documentation-theme-jekyll/mydoc_faq_layout.html
On Thu, Mar 23, 2017 at 9:51 PM, Barry Smith<EMAIL_ADDRESS>wrote:

On Mar 23, 2017, at 11:33 PM, Mark C. Miller<EMAIL_ADDRESS>wrote:
On Mon, Mar 20, 2017 at 7:49 PM, Barry Smith<EMAIL_ADDRESS>wrote:

OTOH, with combination of github, Jekyll w/Liquid tags and SASS,
wow, Mark, with your experience sounds like we should hire you to build
our web pages :-).

Well, I claim only enough knowledge of those technologies to conclude its
possible.
I have been desiging a couple of sites using Jekyll, SASS and Liquid and
it
takes a minute to get oriented but then its pretty cool. Basically, its a
code-generation approach to a mostly-static site construction. So, it
replaces a CMS with a code-generation style of site creation. But, its
tightly integrated with github too so that as you commit, github will
re-gen the site. The technology was originally developed to support blog
sites but its been extended to do a lot more. For example, this site is
sourced on github here...
https://github.com/home-assistant/home-assistant.github.io
and served from github here...
https://home-assistant.io

Thanks. The site is pretty but has no examples of "collapse" or pop up,
the pages people see are static (nothing to steal from here).

Since you know so much, the concern I have with my "collapse" model
(and
what I could find about open source pop up models on the web) is that
the
text that goes into the "collapse" must be stored in the same file as
the
outer page. This is a terrible data model because then there is no
reasonable way to display that same text in other locations. Hence my
concern that the "open source" non-commercial web display tools don't
have
flexible "data models" that I think we want to use.

I think the code generation approach can actually support the kind of
"data
model" you are thinking where the text blurbs live each in their own file
and then you control, during site generation, how that content gets
linked
into the rest of the site. One way, its collapse/expand content. Another
way, its in-line, indented content. Still another way, its
follow-this-link
content.
All that said, I don't wanna become a site developer ;) At least not by
myself. I think this Jekyll stuff is straightforward enough, most people
on
the team could pick it up. Heck, its just some conventional folder
hierarchies + content snipits + Liquid coding and we're all coders ;)
—

You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub
<https://github.com/betterscientificsoftware/betterscientificsoftware.
github.io/pull/60#issuecomment-287961146>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AFdKZOyDno_fVp_
fYFgPOyz7WGKIDHa5ks5rnzqegaJpZM4MhNr5>
.

—
You are receiving this because you authored the thread.

Reply to this email directly, view it on GitHub, or mute the thread.

—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub
https://github.com/betterscientificsoftware/betterscientificsoftware.github.io/pull/60#issuecomment-288932919,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFdKZPg3BHlsGNJUoY7oJG6iFbhpy4n7ks5ro0vLgaJpZM4MhNr5
.

Software carpentry's lessons use nested collapsible content for the exercises and solutions.  See the git-novice lesson and its github repo.  Also note that they're hosted on github.io.

On Mar 24, 2017, at 10:18 AM, Mark C. Miller<EMAIL_ADDRESS>wrote:
Here's an example of a Jekyll created page with collapse...
http://idratherbewriting.com/documentation-theme-jekyll/mydoc_faq_layout.html

Nice.

On Thu, Mar 23, 2017 at 9:51 PM, Barry Smith<EMAIL_ADDRESS>wrote:

On Mar 23, 2017, at 11:33 PM, Mark C. Miller<EMAIL_ADDRESS>wrote:
On Mon, Mar 20, 2017 at 7:49 PM, Barry Smith<EMAIL_ADDRESS>wrote:

OTOH, with combination of github, Jekyll w/Liquid tags and SASS,
wow, Mark, with your experience sounds like we should hire you to build
our web pages :-).

Well, I claim only enough knowledge of those technologies to conclude its
possible.
I have been desiging a couple of sites using Jekyll, SASS and Liquid and
it
takes a minute to get oriented but then its pretty cool. Basically, its a
code-generation approach to a mostly-static site construction. So, it
replaces a CMS with a code-generation style of site creation. But, its
tightly integrated with github too so that as you commit, github will
re-gen the site. The technology was originally developed to support blog
sites but its been extended to do a lot more. For example, this site is
sourced on github here...
https://github.com/home-assistant/home-assistant.github.io
and served from github here...
https://home-assistant.io

Thanks. The site is pretty but has no examples of "collapse" or pop up,
the pages people see are static (nothing to steal from here).

Since you know so much, the concern I have with my "collapse" model
(and
what I could find about open source pop up models on the web) is that
the
text that goes into the "collapse" must be stored in the same file as
the
outer page. This is a terrible data model because then there is no
reasonable way to display that same text in other locations. Hence my
concern that the "open source" non-commercial web display tools don't
have
flexible "data models" that I think we want to use.

I think the code generation approach can actually support the kind of
"data
model" you are thinking where the text blurbs live each in their own file
and then you control, during site generation, how that content gets
linked
into the rest of the site. One way, its collapse/expand content. Another
way, its in-line, indented content. Still another way, its
follow-this-link
content.
All that said, I don't wanna become a site developer ;) At least not by
myself. I think this Jekyll stuff is straightforward enough, most people
on
the team could pick it up. Heck, its just some conventional folder
hierarchies + content snipits + Liquid coding and we're all coders ;)
—

You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub
<https://github.com/betterscientificsoftware/betterscientificsoftware.
github.io/pull/60#issuecomment-287961146>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AFdKZOyDno_fVp_
fYFgPOyz7WGKIDHa5ks5rnzqegaJpZM4MhNr5>
.

—
You are receiving this because you authored the thread.

Reply to this email directly, view it on GitHub, or mute the thread.

—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub
https://github.com/betterscientificsoftware/betterscientificsoftware.github.io/pull/60#issuecomment-288932919,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFdKZPg3BHlsGNJUoY7oJG6iFbhpy4n7ks5ro0vLgaJpZM4MhNr5
.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

We have talked about the possibility of eventually hosting the BSSW.io site on GitHub, but I don't think we are prepared right now to take on that task and at the same time produce a polished experience.
The ruby-on-rails frontend should work well for us for some time, maybe even indefinitely.

Committing this version of the file.  We can revisit dynamic formats in the future.


Need to create an error handler instead of using the window.alert

I used an alert in the network manger to catch errors, but part of the assignment is to use a modal type for the alerts.

Completed

Added a modal alert


chore(tsconfig.json): update tsc build configuration

tsconfig points es6 build configuration by default

Though tsconfig.json is not being used via actual build script, it's no harm to align it with build script for anyone who want simply invoke tsc to get es6 build. One of minor changes while waiting PR related code coverage check is resolved, to avoid PR created with failed check.

Merged with bccddb6 .. thanks @kwonoj


As a user I'd like to leave a group

Precondition: the user is logged in
People: user, group admin
Subjects: group

From the menu "user" user chooses "go to groups".
User is redirected to a groups tab with the list.
User can leave one, several or all the groups:

to leave one group user presses a leave button in the line of this group in the table
to leave several groups user ticks the groups to be deleted and presses leave button on the top of the table
to leave all the groups those belong to the user, user ticks a checkbox on the top of the table and presses delete on the top of the table.

The system responses with a popup that contains the following:

question if the user really wants to leave the group(s)
name of the group / list of the names of the groups
button to confirm and button to abort

The user confirms the deletion by pressing the corresponding button.
The system checks if everything is correct and returns:

a message that he/she left the group if everything is fine; user will also immediately see that the group disappeared from the group list
in case the user was an admin, he/she will see a popup with a list of the group members, from whom he/she chooses the new admin, and confirmation and abort buttons.
a popup with the error description in case if group deletion cannot be performed. This case is unlikely and can happen only because of some database or server error.

The user loses access to shared programs and the programs shared by users are not shared with the group anymore.
Admin of the group receives a popup that the user left the group.

This can also be used as a test case.
This issue is related to #384

I think we do not want to offer this feature, please check with https://github.com/OpenRoberta/openroberta-lab/wiki/Group-Accounts

@vlebedynska, I close this issue for you


Build cannot connect to sockjs only in production builds during --build-meteor

My Meteor project loads fine running npm run meteor-desktop --production but after building using npm run meteor-desktop build-installer --build-meteor --mac --production
My front-end loads but receives errors connecting to localhost:3000/sockjs?...
Any ideas?

https://github.com/wojtkowiak/meteor-desktop/issues/250


SQL Query can be replaced with "PLSQL Function returning SQL Query"

For better maintainability - also with regard to the distribution of the plugin over several applications with the same data - it would be useful if the "Data Source SQL" query could optionally be replaced by a PLSQL function that returns an SQL query.

Atm you can use for example a view layer to hide complex SQL and make it more reusable or use SQL with e.g. a table / pipelined function to achieve some dynamically created dataset...In my opinion there is no need to use a pl/sql function which returns a SQL statement...


Name Mangling

Name Mangling
First of all, this is not an official specification for name mangling in Ark, but simple a plan. Consistent name-mangling between ark versions is an internal detail and cannot be relied upon to remain the same.
Draft
What is mangled
Everything. All names (that is, function/variable/struct) get mangled during compilation. The exceptions are function prototypes with the extern keyword, which C functions, and functions with the [no_mangle] attribute.
How does it work
All mangled names start with an underscore followed by a capital letter. These are considered reserved in C, preventing name conflicts there.
Functions

Begin with _F_
Add the length of the function identifier then the name of the function identifier. For example, someFunc becomes 8someFunc
For each of the parameters: add an underscore, then the length of the parameter type, then the name of the parameter type

Example:
func doSomething(in: ^str): int becomes _F_11doSomething_4^str
func noop() becomes _F_4noop
Variables

Begin with _V_
Add the length of the variable name and then the variable name

Example:
mut someVar becomes _V_7someVar
otherVar becomes _V_8otherVar
Structures

Begin with _S_
Add an the length of the struct name and then the variable name

Example:
struct TestStruct {...} becomes _S_10TestStruct
Module members

Begin with _M_
Add the length of the module name then the module name
Add the mangled name of the member using one of the three rules above

Example:
module "somemod" {
    func doSomething(in: ^str): int
}

becomes
_M_7somemod_F_11doSomething_4^str

Looks good to me :+1:

Cool, I'm writing an initial implementation right now.

This was implemented wasn't it?

Yep. Just one thing, funcs/vars/etc need to add their parent module(s)'s names to their mangled name.

@MovingtoMars Okay, I'll leave it open till then

Still need to do the thing with the parent modules. This means each var/func/etc delc needs a pointer to its containing module.

Just updated new mangling syntax for types.

:+1: nice work richard bud

thanks man appreciate it. btw i got some footcheese up on eBay. like new stock. fresh stuff. $3 a pop

@vnev cheers bro ill check it out thx

@MovingtoMars Whats left?

I don't think there's anything


Publish Kotlin finder via https://jitpack.io/

As same as appium java client

still wip, but https://github.com/appium-userland/finder-kotlin is for this.

Any update on this @KazuCocoa, I want to use Flutter-Finder as gradle dependencies any way I can do this?

ifanyone want to use this as gradle here-:https://github.com/getlantern/finder-kotlin

https://github.com/appium/appium-espresso-driver/pull/1021 would help for this

https://jitpack.io/#appium/appium-flutter-driver/main-SNAPSHOT


fix: Move Cert Manager to CP4BA folder

closes: #278
Description of changes:

Moves conditional creation of IBM Cert Manager operator to cp4a folder.

Output of argocd app list command or screenshot of the ArgoCD Application synchronization window showing successful application of changes in this branch.
argocd app list
NAME                 CLUSTER                         NAMESPACE         PROJECT               STATUS  HEALTH   SYNCPOLICY  CONDITIONS  REPO                                    PATH                                  TARGET
argo-app             https://kubernetes.default.svc  openshift-gitops  argocd-control-plane  Synced  Healthy  Auto-Prune  <none>      https://github.com/IBM/cloudpak-gitops  config/argocd                         278-cp4ba-cert
cp-shared-app        https://kubernetes.default.svc  ibm-cloudpaks     default               Synced  Healthy  Auto-Prune  <none>      https://github.com/IBM/cloudpak-gitops  config/argocd-cloudpaks/cp-shared     278-cp4ba-cert
cp-shared-operators  https://kubernetes.default.svc  ibm-cloudpaks     default               Synced  Healthy  Auto-Prune  <none>      https://github.com/IBM/cloudpak-gitops  config/cloudpaks/cp-shared/operators  278-cp4ba-cert
cp4a-app             https://kubernetes.default.svc  cp4a              default               Synced  Healthy  Auto-Prune  <none>      https://github.com/IBM/cloudpak-gitops  config/argocd-cloudpaks/cp4a          278-cp4ba-cert
cp4a-operators       https://kubernetes.default.svc  cp4a              default               Synced  Healthy  Auto-Prune  <none>      https://github.com/IBM/cloudpak-gitops  config/cloudpaks/cp4a/operators       278-cp4ba-cert
cp4a-resources       https://kubernetes.default.svc  cp4a              default               Synced  Healthy  Auto-Prune  <none>      https://github.com/IBM/cloudpak-gitops  config/cloudpaks/cp4a/resources       278-cp4ba-cert

:tada: This PR is included in version 0.29.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Simple implementation of mute and unmute

Add a simple shortcut to mute and unmute the player using the "m" key (similar to mpv)

Nice thanks a lot for your contribution!
Just tested, it works well! Just a little suggestion, could you add a status message showing the mute status?
You can use m.list.NewStatusMessage() something similar was done for the volume: https://github.com/DucNg/fip-player/pull/8

Nice thanks a lot for your contribution!
Just tested, it works well! Just a little suggestion, could you add a status message showing the mute status?
You can use m.list.NewStatusMessage(). Something similar was done for the volume: #8

done


improve php output

Hi,
first of all, I'm really a fan of your theme. And since I'm doing lots of php development, I would wish that the php syntax highlighting gets better.
These are the things that doesn't get beautiful as expected:
function tick(bool $block = false) : bool {
 // blabla
}

I expect that false gets to a boolean value.
foreach ($nextTick as $cb) {
            $cb();
}

I expect that the dollar sign gets viewed as a normal variable.
Thanks!

I improve the dollar sigh color now but it's look like you doesn't apply my theme

ah, and I wondered why the design changed after updating to 1.11 😆 Thanks!

@jens1o
Wait for minutes

@jens1o
I fix it, please update it, thx~


[Issue-219] added index for polymorphic columns

I ended up going with a simpler solution, see 86ee609ff7a780c62a7d3d83c781a67d4b3c168d


Big Downstream Update

This update includes changes from @P03W primarily, but I've done some modifications.
I've also taken @Jordin's superclass sugar idea and put it on the backburner until Kotlin does more stuff with its context receiver experiment.
Notable Changes (since it's a fairly big PR)

Packages have been changed for support
The program now uses Kotlin's API mode (requiring explicit return types and explicit public functions and variables)
Method handles and related code have been refactored to their own unique place
Update Gradle
Add documentation for most of the project

Possible Future Changes

Re-introduce sugar for superclass method calling
This is likely going to come if Kotlin's context receivers extend beyond (currently) experimental status. It could be a really useful tool with how Koffee is currently structured.

sometimes downstream does cool stuff and i think P03W did that but also I do like lots of documentation

Technically a constantDynamic should be tied to a ClassAssembly tbh, iirc I tied it to InstructionAssembly due to not having context receivers and it making my usecase slightly cleaner

Might wanna bump the major version number if we're renaming the package (which is why I hadn't done so yet)


add {.async: (raises).} to libp2p/stream modules

Annotate stream modules with {.async: (raises).} to simplify exception handling.

close: {.async: (raises: []).}
read/write: {.async: (raises: [CancelledError, LPStreamError]).}

All modules need to be updated atomically, otherwise the method mechanism does not find overrides anymore. Also, because close functions have a tendency to start writing RST packets and reading EOF packets, close and read/write need to be done together.
Higher modules have not been touched unless necessary, e.g., to remain compatible when plugging in callbacks.

https://github.com/status-im/nim-libp2p/pull/1040

Bumping to latest master with the GitHub update seems to break it.

https://github.com/vacp2p/nim-libp2p/issues/962


refactor(cmake): cmake code style.

Thanks. Great PR.
Though, conventional changelog does not encourage adding period at the end of line.


Add path parameter to resolveInfo method

The resolveInfo method should take an optional path parameter that would help specify which selection set to use to populate the builder options. For example, a mutation might return a payload type with a field containing the updated record -- we would use the path parameter to indicate that its that field's selection set that should be used.

Added with e4bdb791edd39314a6012e9fae7374e395f1ebaf


Performance improvements for difficult word checks

The functions which use difficult_words are crazy slow. Specifically gunning_fog takes several seconds to run on a large article of text!
This PR makes several changes:

Only use one pyphen instance instead of recreating it on every call to syllable_count which makes pyphen reload its internal files.
Cache easy word lists instead of reloading them on every call to is_difficult_word.
Don't calculate syllables in is_difficult_word if the word is already in the easy list.
Deduplicate words in difficult_words_list before checking if they are difficult instead of afterwards.

The improvements from this for gunning_fog are vast, at least an order of magnitude. dale_chall_readability_score is also much faster. Overall runtime for tests is halved.

Added two more optimizations:

Use precompiled regular expression to remove punctuation which is much faster than the generator expression.
Count hyphenation positions directly instead of having pyphen insert them and then parsing the string again.

The hyphenation/syllable counting is by far the slowest part now. It might be worth investigating if there are faster options than pyphen available.

Hi @markopy. Thank for this. All looking good!

See 0.7.1.

Thank you!


Adds migrations check into pre-commit configuration

I want to merge this change because it fixes #4613.

Screenshots

Pull Request Checklist

[ ] Privileged views and APIs are guarded by proper permission checks.
[ ] All visible strings are translated with proper context.
[ ] All data-formatting is locale-aware (dates, numbers, and so on).
[ ] Database queries are optimized and the number of queries is constant.
[ ] Database migration files are up to date.
[ ] The changes are tested.
[ ] GraphQL schema and type definitions are up to date.
[ ] Changes are mentioned in the changelog.

What do you use to check GraphQL ?

Hi @iflare3g  PR for this issue is already created: #4819

Here is the report for dc304fe2d2ce4f03546eef2fad112994108fd9b5 (iflare3g/saleor @ feature/add-more-precommit-checks)
Base comparison is c0fd7c6cae786912bb09e0ecb4176922f53f2aa8.
No differences were found. (click me)

# api.benchmark checkout
  test name                                  	left count 	right count	duplicate count
  -------------------------------------------	-----------	-----------	---------------
  add billing address to checkout            	         34	         34	             20
  add shipping to checkout                   	          7	          7	              0
  checkout payment charge                    	         14	         14	              0
  complete checkout                          	          6	          6	              0
  create checkout                            	         48	         48	             24

# api.benchmark homepage
  test name                                  	left count 	right count	duplicate count
  -------------------------------------------	-----------	-----------	---------------
  retrieve main menu                         	          5	          5	              0
  retrieve product list                      	          4	          4	              0
  retrieve secondary menu                    	          5	          5	              0
  retrieve shop                              	          2	          2	              0

# api.benchmark product
  test name                                  	left count 	right count	duplicate count
  -------------------------------------------	-----------	-----------	---------------
  product details                            	         15	         15	              3
  retrieve product attributes                	         13	         13	              2

# api.benchmark variant
  test name                                  	left count 	right count	duplicate count
  -------------------------------------------	-----------	-----------	---------------
  retrieve variant list                      	         18	         18	              8

# api product sorting attributes
  test name                                  	left count 	right count	duplicate count
  -------------------------------------------	-----------	-----------	---------------
  sort product not having attribute data     	         21	         21	              0

Hi @iflare3g PR for this issue is already created: #4819

lol, didn't see that! 😞


Fixes rendering issue for mermaid

This PR fixes two issues of zenuml diagrams on mermaid
Issue 1: Blank screen
Reason: Delay in rendering result
Solution: Introduce isInitialRender to ensure rendering result is returned in initial render
Issue 2: Blurry mask on top of diagram
Reason: Blurry mask always displayed due to top margin
Solution: Update predicate to prevent mask from showing at diagram edge or container edge

We need to bump the  "@mermaid-js/mermaid-zenuml" once this PR is merged.


[CORE-3185] New Refactoring "dropAllIndexes" should be available to drop all indices of a table

Proposal for implementation of [CORE-3185]

Messed up with GIT.
Will create a new pull request for it. Sorry for the confusion


New Device Type 702 for  AP-Systems DS3-S-EU

2022-07-31 16:44:21 ERROR (MainThread) [custom_components.apsystems_ecur.config_flow] APSystemsInvalidData exception: Unsupported inverter type 702 please create GitHub issue.
Traceback (most recent call last):
File "/var/snap/home-assistant-snap/509/custom_components/apsystems_ecur/config_flow.py", line 45, in async_step_user
test_query = await self.hass.async_add_executor_job(ap_ecu.query_ecu)
File "/snap/home-assistant-snap/509/usr/local/lib/python3.9/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "/var/snap/home-assistant-snap/509/custom_components/apsystems_ecur/APSystemsSocket.py", line 158, in query_ecu
data = self.process_inverter_data()
File "/var/snap/home-assistant-snap/509/custom_components/apsystems_ecur/APSystemsSocket.py", line 348, in process_inverter_data
raise APSystemsInvalidData(error)
custom_components.apsystems_ecur.APSystemsSocket.APSystemsInvalidData: Unsupported inverter type 702 please create GitHub issue.

Hi, this issue was solved here: https://github.com/ksheumaker/homeassistant-apsystems_ecur/issues/85#issuecomment-1198982084

Thank you, excuse me i am a new bee.


Hover information not displaying for Bokeh Curves

This simple example demonstrates the issue:

And here is the code shown in this screenshot:
%%opts Curve [tools=['hover']]
hv.NdOverlay({(0,1):hv.Curve([0,1,2]),
              (0,2):hv.Curve([3,2,1]),
              (1,1):hv.Curve([3,1,2])}, kdims=['A','B'])

I believe this has been at least partially fixed in #1004, such that in batched mode only the NdOverlay dimensions are displayed on hover. Need to double check it behaves correctly in non-batched mode too.


Replace StateDB

This PR replaces the usage of StateDB with StateDB2 in L2 announcement and device controller / device manager.
Replace StateDB with StateDB2

/test

/test

/test


AllDeep() locks entire tree

Calling AllDeep() on a timerset locks the entire tree.

Fixed in b0e5e6c9f6bf45efddfed96805a0496c5e5ae283


Change image path to absolute path

Describe the bug
Failed to display the image due to path issues, the theme act as if there was new path named named exactly after my post, below is screenshot from obsidian (markdown editor) I use to write blog posts.

However, the site refuses to load the image, apparently the image doesn't exist on this path: http://<IP_ADDRESS>:1111/libgamemodeauto-so-0-from-ld-preload-cannot-be-preloaded/static/images/gargoyle.png.

Instead, the image was in fact located on this path: http://<IP_ADDRESS>:1111/images/gargoyle.png.

To Reproduce*
Steps to reproduce the behavior:

Create new image directory on static directory
Put image there
References the image with markdown style (e.g. ![Alt text](static/images/gargoyle.png)
Image will load on obsidian, but doesn't load on zola site.

Expected behavior
Image will load on either obsidian editor and zola site.
Desktop (please complete the following information):

Device: PC
OS: Debian 12 Bookworm
Browser: Firefox 130.0

Additional context
I found one interesting thing, the image will load if I add leading slash like this ![Alt text](/images/gargoyle.png), but after applying this fix, obsidian no longer recognize the image and will simply say “/images/gargoyle.png” could not be found..

Hey @L1so!
This behaviour is related to how Zola deals with asset colocation. When you run Zola, it builds your site under the public directory, copying the contents of the static folder directly into public. Here's a snippet from the documentation:

Any files/directories that you place in the static directory will be copied, without modification, to the public directory.

This means that in your current configuration, your site structure looks something like this after processing:
public/
├── assets/
│   └── ...
├── fonts/
│   └── ...
├── images/
│   └── gargoyle.png
└── main.css

As you can see, Zola does not have a static directory afterwards. This conflicts with how Obsidian links to assets in its vault. Using static is generally intended for globally available assets like favicons.
My recommendation would be to co-locate your images within the content directory. Something like this:
content/
├── 2024-09-14-libgamemodeauto.so.0-from-ld_preload-cannot-be-preloaded/
│   ├── gargoyle.png
│   └── index.md
├── 2023-06-06-markdown-showcase/
│   └── index.md
├── 2024-08-12-experience-with-ssg/
│   └── index.md
├── 2024-08-16-twgok-revisited-(in-form-of-manga)/
│   └── index.md
├── 2024-09-08-public-cuda-gpg-key-does-not-appear-to-be-installed/
│   └── index.md
└── _index.md

You'll then be able to link images and have them work both on Obsidian and Zola. Like this:
![Alt text](gargoyle.png)

I've tested it on my side and it seems to work. I hope this works and is an acceptable solution for you.

Thanks, I tried to figure this out for last 3 days and you just did it for 15 minutes, I really appreciate it !

Not related to this issue but can you give me clue on how to do this?

Have copy to clipboard button on code highlight
Have line number on the code highlight
Thanks !

1. Copy to Clipboard Button
I don't think there is an easy way to do this. Might need to use a JS library like clipboard.js.
2. Line Numbers on Code Blocks
You can activate line numbers by following Syntax Highlighting - Annotations from Zola's documentation.
In short, by adding lineos after a comma in your markdown, you can activate the line numbers in Zola like so:
```rust
use highlighter::highlight;
let code = "...";
highlight(code);

```rust,linenos
use highlighter::highlight;
let code = "...";
highlight(code);

This does create a new structure within codeblocks, so you'll need to apply new styles. Here's a quick one I put together from the example provided in the documentation. Maybe it can help you get started.
pre {
    padding: 1rem;
    overflow: auto;
}
/* The line numbers already provide some kind of left/right padding */
pre[data-linenos] {
    padding: 1rem 0;
    padding: 0;
}
pre table td {
    padding: 0 0.25rem;
    color: white;
    // border: 0;
}
/* The line number cells */
pre table td:nth-of-type(1) {
    text-align: center;
    user-select: none;
}
pre mark {
    /* If you want your highlights to take the full width */
    display: block;
    /* The default background colour of a mark is bright yellow */
    background-color: rgba(254, 252, 232, 0.9);
}
pre table {
    width: 100%;
    border-collapse: collapse;
    border: 0;
}

pre code {
    border: 0;
}

You should be able to just drop it in the sass/_custom.css. Here's how it looks on my quick test:

I'll go ahead and close this issue since we addressed the images location issue. If you have more questions feel free to open a new issue for it.
Thanks!


how to use a gpt-4o proxy API?

how to use custom gpt-4o proxy API?
I set the OPEN_API_KEY to the proxy API KEY
but how to select the model? "model": "rohan/tune-gpt-4o",
and url "https://proxy.tune.app/chat/completions"

there is also a free service with gpt-4o
free limits will be enough you think for basic CodeWhisper task usage?
Closed-Source LLMs: 25/hour, 100/day
https://api.discord.rocks/
paid limits:
Closed-Source LLMs: 50/hour, 300/day


rename featureGroup

due to similarity with FeatureSet, the FeatureGroup object in the RNA API should be renamed to QuantificationGroup.  This change will need to be made in compliance and schemas as well

PR #1186

fixed in #1186


Add setuptools to poetry dependencies

I'm hoping this will fix https://github.com/owdevel/ytdl-nfo/issues/30 ?
(I haven't as yet taken the time to test this myself, since I'm not currently running 3.12 on my machine)

I encountered this bug, independently arrived at the same solution, and can confirm installing setuptools fixes the issue.