How to prevent automatic linking of migrated source code commits to existing work item?

Hi,
We are migrating our TFVC source code to TFS Git repository. we faced one issue is that, migrated source code commits automatically get linked with  existing work items. and then we need to do some manual work to remove that linking.
We are using "git tfs clone " command for the same.
Can you guide us on how to prevent this issue?
Thanks in advance.
Br,
Vidya.

Did you use the --export option during the clone?
Can you give us the clone command line you used? And also a commit message of a commit where there is a problem (the less sensitive you could post here with changing it too much...)
Because, from what I remember, we don't add the workitems in the commit message by default.
So either (1) you used the #workitemId in your commit message and so we can't do anything because that's how TFS works
or (2) you use the --export option and you should not if you don't want to have the workitems added to the commit message. You could change that by changing the value in the .git\config file by updating the config value git-tfs.export-metadatas

Hi,
I am using this command:
git tfs clone https://tfs.codeplex.com:443/tfs/Collection $/project/trunk
It is not adding workitems in the commit message .  It added / linking any changeset/ commit to existing work item template (eg. like task/ user story) of destination project where we have migrated our source code.
Let me know if you require any more info.
Thanks,
Vidya.

It is not adding workitems in the commit message .

and

It added / linking any changeset/ commit to existing work item template (eg. like task/ user story) of destination project where we have migrated our source code.

It seems very strange because to do the associations, TFS requires to have the workitems ids in the commit messages following the format #workitemId (ie #26526). And we can't prevent TFS to do that association/linking.
If you are sure of what you say, I don't know from where it could come from...

This can be disabled in TFS Git management:

Thanks for your reply.
But, i think this feature is available for Tfs online/ Azure DevOps TFS ... not for on premise tfs.

This was a screenshot from our on premise TFS server (2015)

Yes... I just rechecked again.... It is thier for on premise TFS. :)
Thank You. :)

Looks like the issue was solved by https://github.com/git-tfs/git-tfs/issues/1207#issuecomment-465793407
-> Closing


Incorrect labeling of LED order in Cherry v3 build guide.

The ordering of the LED's in the following images is incorrect in respects to the 1st LED and 8th LED on each half. Specifically the labeling for LED 1 and 8 should be switched, and LED 28 and 35 should be switched. The labeling was correct on my board from littlekeyboards.com. There is a chance i'm mis-reading the pcb files.

https://github.com/foostan/crkbd/blob/main/corne-cherry/doc/v3/assets/confirm_back.jpg
https://github.com/foostan/crkbd/blob/main/corne-cherry/doc/v3/assets/build_diode_overview.jpg
https://github.com/foostan/crkbd/blob/main/corne-cherry/doc/v3/assets/build_led_back_overview.jpg
https://github.com/foostan/crkbd/blob/main/corne-cherry/doc/v3/assets/build_led_undergrow_overview.jpg
https://github.com/foostan/crkbd/blob/main/corne-cherry/doc/v3/assets/build_led_back_overview.jpg

The builder does not need to be aware of the part numbers. This is the number used when manufacturing with PCBA etc. You don't have to worry because the number may be different depending on the version.


Unable to Update Entities (e.g. Products)

Describe the bug
Not able to update existing Products.
When I Look at the developer console (browser) I see:
URL: http://serverIp/api/v2/product/624f23764a064383a1f572c05303bd60
Method: PATCH
StatusCode 400 Bad Request
Response Body is html page with the message:
The following error was encountered:
Invalid Request
Some aspect of the HTTP Request is invalid.  Possible problems:

Missing or unknown request method
Missing URL
Missing HTTP Identifier (HTTP/1.0)
Request is too large
Content-Length missing for POST or PUT requests
Illegal character in hostname; underscores are not allowed

Also encounter this for all other entities.
To Reproduce
build any container like mentioned in the docs

docker run --rm -p 80:80 dockware/dev:latest
Login into Admin
Go To Products -> select one -> edit
edit title add a e.g "1" at the end
press save top right -> error

Expected behavior
Able to Update Products
System
Tested on Ubuntu 20.10 and Ubuntu 20.04
Docker version 20.10.2, build 20.10.2-0ubuntu1~20.04.2
Any, Ideas how to solve this.
Thanks in advance

Hi @Dwayne28 ,
can you please call the command "docker images" and the tell me the "created" date of dockware/dev:latest pls?
And also the used shopware version.
And the output from docker logs CONTAINERNAME
As :latest can also be  older version as long as you don't have updated it.
many thx.

Hi @martinweinmayr,
thanks for the quick reply.

DOCKWARE: setting timezone to Europe/Berlin...

Current default time zone: 'Europe/Berlin'
Local time is now:      Tue Jun 15 08:35:10 CEST 2021.
Universal Time is now:  Tue Jun 15 06:35:10 UTC 2021.

-----------------------------------------------------------
DOCKWARE: deactivating Xdebug...
-----------------------------------------------------------
DOCKWARE: switching to composer 2...
Upgrading to version 2.1.3 (stable channel).

Use composer self-update --rollback to return to version 2.0.11
-----------------------------------------------------------
DOCKWARE: restarting SSH service....
 * Restarting OpenBSD Secure Shell server sshd
   ...done.
-----------------------------------------------------------
DOCKWARE: starting MySQL....
 * Starting MySQL database server mysqld
   ...done.
-----------------------------------------------------------
DOCKWARE: starting mailcatcher....
Starting MailCatcher
==> smtp://<IP_ADDRESS>:1025
/var/lib/gems/2.5.0/gems/thin-1.5.1/lib/thin/server.rb:104: warning: constant ::Fixnum is deprecated
==> http://<IP_ADDRESS>:1080/
*** MailCatcher runs as a daemon by default. Go to the web interface to quit.
-----------------------------------------------------------
DOCKWARE: starting cron service....
 * Starting periodic command scheduler cron
   ...done.
-----------------------------------------------------------
DOCKWARE: switching to PHP 7.4...
-----------------------------------------------------------
DOCKWARE: testing and starting Apache...
Syntax OK
 * Restarting Apache httpd web server apache2
   ...done.
-----------------------------------------------------------

WOHOOO, dockware/dev:latest IS READY :) - let's get started
-----------------------------------------------------
DOCKWARE CHANGELOG: /var/www/CHANGELOG.md
PHP: PHP 7.4.20 (cli) (built: Jun  4 2021 21:24:37) ( NTS )
Apache DocRoot: /var/www/html/public
ADMINER URL: http://localhost/adminer.php
MAILCATCHER URL: http://localhost/mailcatcher
PIMPMYLOG URL: http://localhost/logs
SHOP URL: http://localhost
ADMIN URL: http://localhost/admin

What's new in this version? see the changelog for further details
https://www.shopware.com/de/changelog/

solved

Can you tell us what the solution was?

Of course,
We needed to set up a demo shopware for one of our customers on their machines so we used a vpn with specific proxy settings and these didn't allow http-method: PATCH (that's the reason why everything else worked fine). We even set up shopware on three different machines with different docker shopware images (all while connected to the proxy) always same problem.
Maybe you could add a troubleshoot section to mention these things even if they had nothing to do with the solution you providing.
Thanks for your effort.


Please version your JS snippet

It's difficult to check if the minified snippet needs an update.

Hi @amenzhinsky, the snippet is updated by us in the gem if it needs to be updated. So, if the snippet in https://github.com/rollbar/rollbar.js changes, we should update it in the gem and release a new version.
If at some point it is not updated, it's our fault. If you detect at we will appreciate you warn us :smile:


Incomplete

This page does not contain a working example of the code.  The code provided references a Service object but does not show how that Service was created.

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: f089d928-4091-1873-0d28-c1307187aff3
Version Independent ID: af2356c1-5d4d-6d14-e9d4-9cfdddc37abd
Content: SQL Server Service Broker - SQL Server
Content Source: docs/database-engine/configure-windows/sql-server-service-broker.md
Service: sql
Sub-service: configuration
GitHub Login: @rwestMSFT
Microsoft Alias: randolphwest

@YoyodyneData -- Ken, thank you for your feedback.  Please consider these resources:

SQL Server on Microsoft Q&A
DBA Stack Exchange
Stack Overflow

@rwestMSFT -- Randolph, please look into this issue.

Hi @YoyodyneData, I'm not sure I follow what you're asking. The article states, in the Creating Services section.
To create a service, you create a message queue first, and then create the service on that queue.

Database services are created by using the CREATE SERVICE Transact SQL statement. Service can be associated with the message queue create by using the CREATE QUEUE statement:

CREATE QUEUE dbo.ExpenseQueue;
GO
CREATE SERVICE ExpensesService
    ON QUEUE dbo.ExpenseQueue;

@YoyodyneData Since we haven't heard from you, I am closing this issue. If you are able to get back to us again with a follow-up comment, please feel free.


Course preferences

Add load (number of courses professors take per year?) and course preferences (from 0 to 6? how much each professor wants a course).
And send list of preferenes for all course being sent to algo 1 when requesting schedule generation
Add preferences endpoints:

The preference object frontend wants is (given in discord):


Color-coded GPS accuracy and minimum threshold for mapping

Problem
When collecting field data with Ground, the GPS's accuracy is displayed in the "Current location" pane. However, for the non-professional user this might be easily overlooked or its importance not understood.
(At the Kenya workshop we had participants ask for it after they had already successfully mapped something, because they simply overlooked it.)
Potential solution
Is it possible to implement a minimum threshold of accuracy before users are able to register a point? E.g. that "Add point" would only work if GPS accuracy is 10m or better and display a "Please wait a few seconds" when clicking "Add point" but accuracy is too low? And can the accuracy display in the "Current location"-pane be color-coded? (Green: High GPS accuracy --> 0 to 5m, Yellow: Medium GPS accuracy --> 5 to 15m, Red: Low GPS accuracy --> 15m and less).
Implementation in the app of our partners at GIZ:

After the regular meeting yesterday I put some further thoughts into the possible implementation.
Problem: Unlike in the INATrace app from GIZ, free-form data collection is enabled in Ground where data collectors can pan and zoom to any location to drop points or polygon corners. That doesn't go well with the idea of a GPS accuracy threshold (i.e., why should the GPS be accurate at your current location, when you are moving the cursor freely on the map).
2 Possible solutions:

It seems after pressing the target button that there is a soft lock on the current location. The "Current location" pane is displayed with GPS accuracy. When moving the cursor manually, the pane disappears for a moment and reappears without GPS accuracy indication. It seems that there are two different modes. Can the GPS accuracy threshold apply only to the first mode right after clicking the target button, but not to the other when the user manually moves the cursor?

If the above solution doesn't work, maybe there could be an actual target-lock instead: When you press the target button, the cursor could be locked to your location and the threshold applied when you add the point. (Target button could appear in dark green as lock indication). When you press it again, it unlocks and you can freely move the cursor with no GPS accuracy threshold applied.

Hi @jo-spek thanks again for documenting our discussion and possible solutions.
I had another ideas about how to handle this:

Remove the "Capture location" task type from the survey editor, instead always capturing both the current location and the map location when dropping a pin. Both "Current location" and "Map location" would be shown in the card/pane.
Allow organizers to specify an optional min. accuracy on "Drop a pin" tasks at survey creation time. If specified, this constraint would apply, regardless of whether data collectors have the location lock enabled.

This would result in fewer decision points for survey organizers. Automatically adding a "Capture location" task could also be disabled.
You may also want to do the same for polygon (perimeter) tasks, perhaps at the start of data collection.
Lastly, you may still want to consider an override of the min. accuracy, since without it the survey will unusable if the organizer specifies too low of a threshold.

Hi Gino, thanks for answering.
Regarding point 1:

I really like the idea of always capturing the current location in the background by default. That makes for a good quality control mechanism.
Not sure about removing "Capture location" altogether. That's what feature request #2675 is about. I think it could be advantageous to have three types of geolocating: 1. Free form polygon collection, 2. free form point collection, 3. non-free point collection (i.e. capture location). 1.&2. require a lot more skill and understanding of what's going on on the data collector's end. Capture location with an in-built threshold is a lot more fail-safe in the hands of laymen and at least in Kenya virtually all plots of smallholders were smaller than 4 hectares, i.e. only necessitating a point for EUDR compliance and not a polygon.
Displaying both current location and map location in the card/pane is something that probably only professionals would read and understand. I saw a lot of confusion on users' ends in the field and I'd rather argue for reducing or dropping it. Since it might be useful for a small subset of users I would argue for the possibility to optionally enable it in the settings.

Regarding point 2:

Specifying min. accuracy adds a decision point for survey organizers again. I'd argue for it defaulting to 10m, but that could be further discussed. From experience in the field, 10m is not too inaccurate but quickly established by most GPS sensors.
Here everything comes together again which is why I created #2675. Throwing out Capture location as a task and instead making it one of three geographic data collection options: 1) Free form polygon collection, 2) Free form point collection, 3) Non-free form point collection (same function as Capture location but different position in the survey work flow).

How do you suggest implementing for the polygon tasks?
Last point wouldn't be a problem if we set the threshold somewhere between 10 and 15. Any device that can't hold it probably shouldn't be used anyway.

There are a few caveats here which we should explore and which are probably too long to document here. Let's discuss when we meet in the PM forum?


Restyling of filter histograms

As we don't use the red color map anymore in the table view, we should also switch back to a greyscale histogram. To still be able to differentiate between the included part and the filtered part, I suggest to apply a hatching pattern to the filtered area.

Hatch pattern: https://iros.github.io/patternfills/sample_d3.html

coloring is also part of #250

Better ?

yes!


FFT execution

Hi @dhrebeniuk ,
How can I use Plain Pocketfft library to calculate FFT of some data? Please share some guidelines.
Would be a nice idea to add some documentation and usage guidelines to your library.

@rahulkumaratphilips , Hello, in general it's part of RosaKit.
You can see there how this lib used:
https://github.com/dhrebeniuk/RosaKit/blob/a8cabbbbd049ddb862c6661516072b9f995b5633/Sources/Rosa/ArrayLibRosaExtensions.swift#L237


Cannot collect pydes

Is pydes configured in pypi properly? I'm failing to fetch the package. It seems some urls were changed in https://github.com/twhiteman/pyDes/commit/e988a5ffc9abb8010fc75dba54904d1c5dbe83db but I don't see those reflected in pypi
Looking in indexes: https://pypi.lyft.net/pypi/, https://pypi.python.org/simple/
Collecting nfcpy==1.0.3
  Using cached nfcpy-1.0.3-py3-none-any.whl (186 kB)
Collecting libusb1
  Using cached libusb1-1.9.2-py3-none-any.whl (58 kB)
Collecting pydes
  WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.urllib3.connection.HTTPConnection object at 0x105879fa0>, 'Connection to whitemans.ca timed out. (connect timeout=15)')': /pyDES/pyDes-2.0.1.zip
  WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.urllib3.connection.HTTPConnection object at 0x105865130>, 'Connection to whitemans.ca timed out. (connect timeout=15)')': /pyDES/pyDes-2.0.1.zip
  WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.urllib3.connection.HTTPConnection object at 0x1058652b0>, 'Connection to whitemans.ca timed out. (connect timeout=15)')': /pyDES/pyDes-2.0.1.zip
  WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.urllib3.connection.HTTPConnection object at 0x105865430>, 'Connection to whitemans.ca timed out. (connect timeout=15)')': /pyDES/pyDes-2.0.1.zip
  WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.urllib3.connection.HTTPConnection object at 0x1058655b0>, 'Connection to whitemans.ca timed out. (connect timeout=15)')': /pyDES/pyDes-2.0.1.zip
ERROR: Could not install packages due to an EnvironmentError: HTTPConnectionPool(host='whitemans.ca', port=80): Max retries exceeded with url: /pyDES/pyDes-2.0.1.zip (Caused by ConnectTimeoutError(<pip._vendor.urllib3.connection.HTTPConnection object at 0x105865730>, 'Connection to whitemans.ca timed out. (connect timeout=15)'))

WARNING: You are using pip version 20.2.3; however, version 21.1 is available.
You should consider upgrading via the '/Users/conormurphy/.pyenv/versions/3.9.0/envs/triangle-tool-3.9.0/bin/python3.9 -m pip install --upgrade pip' command.

Duplicate of https://github.com/twhiteman/pyDes/issues/15


Ability to do character-, line-, or block-wise paste

Hi
Thanks for yanky.
“I occasionally do a linewise yank, and then want to insert that yanked text in the middle of some other line (or vice versa).”
I use the UnconditionalPaste plugin for this and would like to use some of it’s functionality from yanky.
I can’t see how but perhaps it’s possible to use now with config changes ?
Would you see this as integration or would you consider adding the ability to have options do the character-, line-, or block-wise paste ?
Cheers

Hey!
Thanks for your feedback, it seems that is something that could be implements in yanky. I have to try UnconditionalPaste to see how it works.
By the way, In Yanky, you already have a linewise paste, does it works like in UnconditionalPaste ?

Hi
Yes you already have the Linewise option. e.g. if I yank a word, or visually select some text, and then paste Linewise it put’s it on another line rather than ( the default ) of inserting after/before the “character" where the cursor is.
I would like go the other way.
When I have yanked a line I would like to be able to “force" it to paste/insert after/before the “character" where the cursor is.
I currently have these options setup for UnconditionalPaste that allow “forcing" of the paste.
  nmap Pc <Plug>UnconditionalPasteCharBefore
  nmap pc <Plug>UnconditionalPasteCharAfter
  nmap Pl <Plug>UnconditionalPasteLineBefore
  nmap pl <Plug>UnconditionalPasteLineAfter

Perhaps, if you could add the yanky option (say) “CharWise” with the usual before and after that would be great.
Having that then available as an option from Telescope etc etc ...
Cheers
--
The Continium
On 6 December 2022 at 08:01:10, gbprod<EMAIL_ADDRESS>wrote:
Hey!
Thanks for your feedback, it seems that is something that could be implements in yanky. I have to try UnconditionalPastehttps://github.com/inkarkat/vim-UnconditionalPaste to see how it works.
By the way, In Yanky, you already have a linewise pastehttps://github.com/gbprod/yanky.nvim#-special-put, does it works like in UnconditionalPaste ?
—
Reply to this email directly, view it on GitHubhttps://github.com/gbprod/yanky.nvim/issues/66#issuecomment-1338927130, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACHXEBVYQNWVWHYQQLKEJMDWL3XEDANCNFSM6AAAAAASUAJKV4.
You are receiving this because you authored the thread.Message ID: @.***>

Hi !

Yes you already have the Linewise option. e.g. if I yank a word, or visually select some text, and then paste Linewise it put’s it on another line rather than ( the default ) of inserting after/before the “character" where the cursor is.

I think it's because yu use <Plug>(YankyPutIndentAfterLinewise) instead of <Plug>(YankyPutAfterLinewise).

When I have yanked a line I would like to be able to “force" it to paste/insert after/before the “character" where the cursor is.

I see and it seems quite easy to implements. I can make something. Just a question about UnconditionalPaste: when you copy multiple lines and use UnconditionalPasteCharAfter, how does it works ? Does it join lines ?
I think I should explain how special Put works in the README.md as anybody can write his own put function :D (I find this quite elegant and easy)

UnconditionalPaste joins the lines when multiple lines are copied and paste charwise; no newlines.
If you add to the README.md and I'll give it a go.
If we can make the Special Put call the UnconditionalPaste functions this would be really flexible ?

I'm working on it 😉

I've made something in this pull request, if you want to try it before I merge.
To have the same behavior than UnconditionalPaste, I think you should add :
nmap Pc <Plug>YankyPutBeforeCharwiseJoined
nmap pc <Plug>YankyPutAfterCharwiseJoined
nmap Pl <Plug>YankyPutBeforeLinewiseJoined
nmap pl <Plug>YankyPutAfterLinewiseJoined

I've also implemented Blockwise option ;)
Can you tell me if something is missing ?

Thanks.
These function (when including the brackets) and cycles through ring correctly.
nmap Pc (<Plug>YankyPutBeforeCharwiseJoined)
nmap pc (<Plug>YankyPutAfterCharwiseJoined)
nmap Pl (<Plug>YankyPutBeforeLinewiseJoined)
nmap pl (<Plug>YankyPutAfterLinewiseJoined)

If there was a configurable generic way to add any special Put to the ui and telescope pickers that would be great.
Is it possible to add these as actions in Telescope pickers ?
Cheers

hmm, that's a great idea.
I merge this #68 and I'll work on this

Let me know when you are ready and I can give it a test run.

I just learned about this feature through the "news/breaking changes issue", thanks for implementing this!
So far, I have usually solved this by using yil for yanking a line with the inner line text object, and then modifying the paste is not necessary, but this way to do it is nice, too.
I'm not a fan of extending p to pc and pl, so I came up with cp as a mnemonic for "character-wise paste", which seems to be generally available.

Yes I agree extending p to pl, pc are not great mappings.

@gbprod you are missing the Charwise optional modifier in the readme

@thecontinium made something here if you want to try ;)


Nice with cordova.js link already in connect screen's index.html file

Some examples have it, others not. Therefore Eval under tools only works when an example has been loaded. Better have it there too !

Include of cordova,js added by this commit: https://github.com/mikaelkindborg/evothings-server/commit/b54d442c046b80ff6bb8129cacc6111ff37ed775
Included in this pull request: https://github.com/evothings/evothings-server/pull/46

Include of cordova.js on the Connect screen has been implemented on the server side.


Update and rename cal_housing_data with headers.csv to cal_housing_da…

…ta with headers_SKB.csv

Not sure why the file should be renamed to end with your own initials. Accident?


Select value type should be any

I'm thinking that the value of the Select component should be of type any to align with Svelte's element types for the HTMLSelectElement / HTMLInputElement.
I assume a common practice will be binding the selected value to one of those native elements, and when data is coming from a database which could possible be null / undefined we may run into some issues.

Resolved by #44


Please upload objective c code

Please Upload Objective C Code

Please Upload Objective C Code

Hey @SYAM1263 I don't quite know what you mean by this, there is no Objective-C code as this is a Swift pod


Document parquet writer memory limiting (#5450)

Which issue does this PR close?

Closes #5450
Rationale for this change

What changes are included in this PR?

This adds an example showing how to limit the growth of the buffers within the arrow writers. I debated exposing a setting to control this, but the way it would only ever be a best effort limit felt a little off. Making it explicit in the client implementation at least makes it very obvious how it behaves.
Are there any user-facing changes?

I still think would be nice to have an additional config(or method) to "enforce flush on buffer size"

No objections from me, FWIW my conclusion from the investigation under https://github.com/apache/arrow-rs/issues/5458 is we should probably encourage people to move away from AsyncWrite in general

But it can be done/discussed separately ofc

I filed https://github.com/apache/arrow-rs/issues/5484  to track / discuss this idea. Thank you @DDtKey

Hi, thanks for the document here, I think I can also copying this to C++ Parquet lib. By the way, do you think it's necessary to also noted that dictionary encoding might be memory consuming? (Since maybe a huge dict woule be allocated)

By the way, do you think it's necessary to also noted that dictionary encoding might be memory consumin

We have a maximum dictionary page size that I think should bound this, I believe the C++ parquet lib does something similar

Generally yeah, but in fact, when writing to a wide table with several hundreds of columns, it will still be a huge overhead...Velox will disable dictionary encoding when memory usage is high. I think we can also note that?


JSON object

Hi guys
So I have the newest version of the repository, the program works, but I dont get the weather. I read every single issue about the weather and also the closed ones and modified my code. Still it doesnt work. This is the output I get:
Traceback (most recent call last):
File "smartmirror.py", line 158, in get_weather
weather_obj = json.loads(r.text)
File "/usr/lib/python2.7/json/init.py", line 338, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.7/json/decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python2.7/json/decoder.py", line 384, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
Error: No JSON object could be decoded. Cannot get weather.
root@rp:/home/pi/Smart-Mirror#
Due to the fact that this is my topic on my half year presentation I would really appreciate any inputs and advice.
Best regards and already a big thanks

Have u included the API token..?
Regards,
Mudassir Kazmi
On Thu, Oct 12, 2017 at 3:27 PM, vb cgn<EMAIL_ADDRESS>wrote:

Hi guys
So I have the newest version of the repository, the program works, but I
dont get the weather. I read every single issue about the weather and
also the closed ones and modified my code. Still it doesnt work. This is
the output I get:
Traceback (most recent call last):
File "smartmirror.py", line 158, in get_weather
weather_obj = json.loads(r.text)
File "/usr/lib/python2.7/json/init.py", line 338, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.7/json/decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python2.7/json/decoder.py", line 384, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
Error: No JSON object could be decoded. Cannot get weather.
root@rp:/home/pi/Smart-Mirror#
Due to the fact that this is my topic on my half year presentation I would
really appreciate any inputs and advice.
Best regards and already a big thanks
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/HackerHouseYT/Smart-Mirror/issues/77, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AbC0Dp_QeKdkswfIqLT6tGIvYKDJyxJCks5sremigaJpZM4P2y6i
.

Yes, I added the API in the field Token, deleted < and > but left it in a string. I also  substituted  %s in the url with the token. I added my Coordinated (long and lalt) but it didnt work. Any Idea?

Where you able to get your IP location as well? There is a typo with the ip request method as well as in what is returned.
the ip request should be:
ip_json = json.loads(req.text)
NOT
ip_json = json.load(req.text)
also the return statement there seems to be an issue:
it should be
return ip_json['ip']
NOT
return ip_json['text']
if you did not add your own coordinates for the latitude and longitude try that first to rule out the IP issue.

Thank you for the idea, I will anwer you asap. I am currently on holidays but in 4 days I will be back and get to try it. Sorry for the wait...
Best Regards

I just reinstalled everything, inserted the token and now it works... seems like a bug idk, thanks for all your help tho. !!!


webui: install wizard/model gallery installer

Would be super-awesome to have a small wizard, that might be disabled by default along - to setup an instance by installing few models from the gallery. Ideally would be cool to have as well a "lite" management UX for the gallery too.
It does not have to be necessary part of LocalAI, however, there should be an easy way to install models directly from the browser and/or CLI

I am currently working on a project that will allow users to just potentially run a webui along side their api which will expose an admin panel to install new models and view job states. Development is one in the following repo, but I would like to note this is still a heavily WIP project
https://github.com/Jirubizu/localai-admin

this is done now. We have a follow-up card to track enhancements #2156


:sparkles: feat: Add bytecode to EVMts contract

Description
Add support for bytecode in EVMts contracts.  This enables usage of EVMts contracts to deploy in JS using viem or ethers
Testing
Unit tests
Additional Information

[ ] I read the contributing docs (if this is your first contribution)

Your ENS/address:

Current dependencies on/for this PR:

main

PR #258

PR #259   👈

This comment was auto-generated by Graphite.


NeMo OutOfMemoryError: CUDA out of memory.

Great updates to the Colab - however, with the free version using the T4, the NeMo MSDD diarization model fails to cluster when I try both GPU fp16 and int8:
creating speech segments: 100%|██████████| 1/1 [00:15<00:00, 15.62s/it]
[NeMo I 2023-08-13 18:17:55 clustering_diarizer:287] Subsegmentation for embedding extraction: scale0, /content/temp_outputs/speaker_outputs/subsegments_scale0.json
[NeMo I 2023-08-13 18:17:56 clustering_diarizer:343] Extracting embeddings for Diarization
[NeMo I 2023-08-13 18:17:56 collections:298] Filtered duration for loading collection is  0.00 hours.
[NeMo I 2023-08-13 18:17:56 collections:299] Dataset loaded with 6287 items, total duration of  2.05 hours.
[NeMo I 2023-08-13 18:17:56 collections:301] # 6287 files loaded accounting to # 1 labels
[1/5] extract embeddings: 100%|██████████| 99/99 [06:04<00:00,  3.69s/it]
[NeMo I 2023-08-13 18:24:02 clustering_diarizer:389] Saved embedding files to /content/temp_outputs/speaker_outputs/embeddings
[NeMo I 2023-08-13 18:24:02 clustering_diarizer:287] Subsegmentation for embedding extraction: scale1, /content/temp_outputs/speaker_outputs/subsegments_scale1.json
[NeMo I 2023-08-13 18:24:02 clustering_diarizer:343] Extracting embeddings for Diarization
[NeMo I 2023-08-13 18:24:02 collections:298] Filtered duration for loading collection is  0.00 hours.
[NeMo I 2023-08-13 18:24:02 collections:299] Dataset loaded with 7556 items, total duration of  2.17 hours.
[NeMo I 2023-08-13 18:24:02 collections:301] # 7556 files loaded accounting to # 1 labels
[2/5] extract embeddings: 100%|██████████| 119/119 [06:37<00:00,  3.34s/it]
[NeMo I 2023-08-13 18:30:42 clustering_diarizer:389] Saved embedding files to /content/temp_outputs/speaker_outputs/embeddings
[NeMo I 2023-08-13 18:30:42 clustering_diarizer:287] Subsegmentation for embedding extraction: scale2, /content/temp_outputs/speaker_outputs/subsegments_scale2.json
[NeMo I 2023-08-13 18:30:42 clustering_diarizer:343] Extracting embeddings for Diarization
[NeMo I 2023-08-13 18:30:42 collections:298] Filtered duration for loading collection is  0.00 hours.
[NeMo I 2023-08-13 18:30:42 collections:299] Dataset loaded with 9319 items, total duration of  2.26 hours.
[NeMo I 2023-08-13 18:30:42 collections:301] # 9319 files loaded accounting to # 1 labels
[3/5] extract embeddings: 100%|██████████| 146/146 [07:19<00:00,  3.01s/it]
[NeMo I 2023-08-13 18:38:04 clustering_diarizer:389] Saved embedding files to /content/temp_outputs/speaker_outputs/embeddings
[NeMo I 2023-08-13 18:38:04 clustering_diarizer:287] Subsegmentation for embedding extraction: scale3, /content/temp_outputs/speaker_outputs/subsegments_scale3.json
[NeMo I 2023-08-13 18:38:05 clustering_diarizer:343] Extracting embeddings for Diarization
[NeMo I 2023-08-13 18:38:05 collections:298] Filtered duration for loading collection is  0.00 hours.
[NeMo I 2023-08-13 18:38:05 collections:299] Dataset loaded with 12482 items, total duration of  2.38 hours.
[NeMo I 2023-08-13 18:38:05 collections:301] # 12482 files loaded accounting to # 1 labels
[4/5] extract embeddings: 100%|██████████| 196/196 [07:53<00:00,  2.42s/it]
[NeMo I 2023-08-13 18:46:05 clustering_diarizer:389] Saved embedding files to /content/temp_outputs/speaker_outputs/embeddings
[NeMo I 2023-08-13 18:46:05 clustering_diarizer:287] Subsegmentation for embedding extraction: scale4, /content/temp_outputs/speaker_outputs/subsegments_scale4.json
[NeMo I 2023-08-13 18:46:05 clustering_diarizer:343] Extracting embeddings for Diarization
[NeMo I 2023-08-13 18:46:05 collections:298] Filtered duration for loading collection is  0.00 hours.
[NeMo I 2023-08-13 18:46:05 collections:299] Dataset loaded with 19112 items, total duration of  2.52 hours.
[NeMo I 2023-08-13 18:46:05 collections:301] # 19112 files loaded accounting to # 1 labels
[5/5] extract embeddings: 100%|██████████| 299/299 [08:36<00:00,  1.73s/it]
[NeMo I 2023-08-13 18:54:55 clustering_diarizer:389] Saved embedding files to /content/temp_outputs/speaker_outputs/embeddings
clustering:   0%|          | 0/1 [00:48<?, ?it/s]

OutOfMemoryError                          Traceback (most recent call last)
 in <cell line: 3>()
1 # Initialize NeMo MSDD diarization model
2 msdd_model = NeuralDiarizer(cfg=create_config(temp_path)).to("cuda")
----> 3 msdd_model.diarize()
4
5 del msdd_model
8 frames
/usr/local/lib/python3.10/dist-packages/nemo/collections/asr/parts/utils/offline_clustering.py in getKneighborsConnections(affinity_mat, p_value, mask_method)
325     dim = affinity_mat.shape
326     binarized_affinity_mat = torch.zeros_like(affinity_mat).half()
--> 327     sorted_matrix = torch.argsort(affinity_mat, dim=1, descending=True)[:, :p_value]
328     binarized_affinity_mat[sorted_matrix.T, torch.arange(affinity_mat.shape[0])] = (
329         torch.ones(1).to(affinity_mat.device).half()
OutOfMemoryError: CUDA out of memory. Tried to allocate 4.08 GiB (GPU 0; 14.75 GiB total capacity; 9.05 GiB already allocated; 4.06 GiB free; 9.29 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation.  See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

I suppose I'm just using too big of an audio source file for the free version of colab. My error.


[db-up] Fix issue: az postgres up does not create the resource group

This checklist is used to make sure that common guidelines for a pull request are followed.
Fix #3496
The issue is caused in azure-cli 2.24.0 track2 SDK is used for resource module and returned error response is not CloudError, which cannot be caughted in previous code.

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your PR is merged into master branch, a new PR will be created to update src/index.json automatically.
The precondition is to put your code inside this repo and upgrade the version in the PR but do not modify src/index.json.

db-up


Set pointerevents to none on icon container for selects

Ugh looks like I broke peer deps?

Did you just update them to the latest?

Ugh looks like I broke peer deps?

Did you just update them to the latest?

Yup! The monorepo PR had crashes until I updated them to latest.


Hi Guys!

Happy New Year!
Thanks for your Work!
)))

Thanks! :) Same to you! :)

Thanks @chapayGhub
Happy new year 2016 too!


Move documentation to docs site

Moves documentation to docs site.
Do not merge until: https://github.com/newrelic/docs-website/pull/17219

hey @bradleycamacho - our team chatted internally and decided to leave the README content in place. I'm going to close this PR instead of merging. Please reach out if you want to discuss, thanks!


[BEAM-14077] [Website] add beam playground section

[BEAM-14077]

add a new point: Beam Playground in Code Section
add 2 bullet points in Beam Playground

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

R: @AydarZaynutdinov

@pcoet please take a look:)


Add support for align attribute.

Hi again!
This add supports for the align attribute which is native Quill.
I thought about adding an $ignore flag (like you did here for fonts) - but could not reproduce a case where alignment was disabled and copy/pasting would create aligned content.
As with the last PRs, let me know what you think :)

Hey @gfaugere - thanks for helping make the parser better!
Isn't this something which the paragraph block listener should contain?  https://github.com/nadar/quill-delta-parser/blob/master/src/listener/Text.php
or it contains a special syntax? Or where is the difference?
(will take a closer look at the documentation later, but also want to give you feedback as soon as possible)

Not sure - the paragraph block listener seemed to be built to handle only "vanilla" inserts (with a check to make sure they have no attributes).
The align attribute only adds the text-align style, so I thought an other block listener would be appropriate. I can give a go at modifying the Text class if that is more appropriate!

Good catch. As you can see how complex it can be to handle proper paragraphs, maybe it should be part of the Text listener. What do you think?
@lode maybe also has some thoughts? 😃

Both things sound correct. As in this should for sure be its own block level listener I think, there is conceptually no real difference between this one and the header listener for example. It is block level content with a specific html around it, whether that html is <h1> or <p class="text-align: center;"> doesn't matter for the code.
And indeed, the code currently needed to properly handle newlines is really hard. But it also seems like something we can abstract away quite easily, there's only a few bits changing.

Will do, waiting for #32 which will indeed make this more straightforward :)

Yes indeed. Thanks for all the help!

(btw hopefully you have applied for https://hacktoberfest.digitalocean.com and can collect your shirt with those PRs you have made!)

(I would like to say that I would have contributed without hacktoberfest - but that'd be lying to myself. I probably would've made the changes in a worse way on my local copy. Guess I need to thank Digital Ocean for making me a better dev 😊)

The new wrapElement method is ready to use in the master branch

Cheers, I'll update this tomorrow!
Le ven. 1 nov. 2019 à 09:19, Basil<EMAIL_ADDRESS>a écrit :

The new wrapElement method is ready to use in the master branch
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/nadar/quill-delta-parser/pull/31?email_source=notifications&email_token=AC2ZYG4RRHRP737C6SB6N23QRPQ77A5CNFSM4JEDHHT2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEC2JJCA#issuecomment-548705416,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AC2ZYGZCP5RDE3DMIB3LEI3QRPQ77ANCNFSM4JEDHHTQ
.


Introduce HolidayBase::_is_monday - HolidayBase::_is_sunday helper methods

Migrate weekday checks to new logic.

Coverage remained the same at 100.0% when pulling dc2975c87f21f88aef93f15c3ec33d3ceb5e616e on arkid15r:weekday-check-refactoring into d37b6650a87ab039d9f46d4536363266b94fdc46 on dr-prodigy:beta.

Hey @arkid15r first of all, thank you for this quite large work!
Although very well performed and accurate (as usual!), I don't feel like this refactoring provides so valuable improvements: if we had some centralized logic to add to those methods I could have seen the sense of incapsulating that code in new methods, but if I catch it right, your new methods self._is_[day of week] are providing some kind of alias for the usual syntax k.weekday() == [day of week] only, basically replicating code with no clear benefits on code simplification / readability.
Sorry for pointing this out after your complete work, but if there is no other reasons I can't currently see (explanation always welcome!), I would possibly avoid merging it.. :+1:

This was my first step in order to introduce a level of abstraction and migrate from dealing with date, relativedelta, as well as MON-SUN, MO-SA where possible.
I hope this PR completes the picture.


How to monit the Ripple Animation? I think launch or do something after the ripple animation is finished is a better way

How to monit the Ripple Animation? I think launch or do something after the ripple animation is finished is a better way.
Something like a Listener of Animation Finish.
Because if the Animation is showing and start Activity at the same time, the UE is bad,like something is interrupt or dropping frames.

You can use rd_delayClick attribute to delay firing click event until animation end. Please view Wiki for more details.


[Notebook Issue] hw08 Task 10.2

Content Link
hw08
Issue Description
The phrase "more dependent" is not very clear.

Replaced with:

Explain why the quality of a max estimate depends more on a sample representing the population than the mean-based estimate.


Create reusable workflow to create issue to solve puzzle using @sourcery-ai develop

Create GitHub workflow called create-puzzle-issue.yml
Trigger on:

workflow_call - inputs year, day, part

Add permissions needed: issues
Set env vars

GH_TOKEN: secrets.USER_TOKEN

Create an issue using gh issue create

Title: Advent of code - {year} day {day} part 1
Body:Write solution in `puzzles/year_{year}/day_{day}/solution.py`, and write tests in  `puzzles/year_{year}/day_{day}/test_solution.py` using relative imports

Post a @sourcery-ai develop comment to the issue using gh issue comment@sourcery-ai develop - you can read the puzzle statement with `uv run advent_of_code.py read {year} {day} {part}`. Run the solution on `puzzles/year_{year}/day_{day}/input.txt` and write answer to `puzzles/year_{year}/day_{day}/answer_part{part}.txt`

@sourcery-ai develop


Revert "re-add semantic service events for tap and longPress"

Reverts flutter/flutter#17918

Looks like we pass at head, though it's entirely possible we're right on the borderline of timing out, in which case I suppose we'll see flakes.


[dev-tool] Support omitting the api ref links completely when generating sample readmes

Today I can customize the api ref link using the apiRefLink key in my package.json. But what if I don't have ref docs yet e.g. when I am releasing a new package? In cases where there are no docs.microsoft docs yet, and the azure.github.io docs won't generate until the first release goes out, it would be convenient to be able to omit the apiRefLink entirely (and with it the entire next steps section).

@bterlson I'm thinking of implementing "apiRefLink": null for this rather than allowing the option to be omitted. That way you at least will still need to declare it.


[BUG]: Wrong Gemini model names and 500 Internal Server Error

How are you running AnythingLLM?
Docker (local)
What happened?
When selecting the first "Gemini Experimental 1206" from the Chat Model Selection list (there are six overall on the list), It's apparently using gemini-1.5-pro-exp-0801, not 1206, since I'm getting this error:
Could not respond to message.
[GoogleGenerativeAI Error]: Error fetching from https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-pro-exp-0801:streamGenerateContent?alt=sse: [500 Internal Server Error] An internal error has occurred. Please retry or report in https://developers.generativeai.google/guide/troubleshooting
When I select the correct "Gemini Experimental 1206" (the forth one top to bottom on the list) and try to send a prompt message, I get the same error just with the correct model.
Could not respond to message.
[GoogleGenerativeAI Error]: Error fetching from https://generativelanguage.googleapis.com/v1beta/models/gemini-exp-1206:streamGenerateContent?alt=sse: [500 Internal Server Error] An internal error has occurred. Please retry or report in https://developers.generativeai.google/guide/troubleshooting
Sucks that I've apparently been using 0801all this time before this error started, at least now I know.
Edit: The 500 Internal Server Error is gone now, the model names bug is still there though. I also have a few more comments:

The metrics say the LLM's reply takes a few seconds but it actually takes a few minutes to stop loading and show up sometimes, why is that?

Gemini 2.0 Flash Thinking Experimental is showing the thinking process in the reply and gets broken easily, using wrong context for its replies.

The names returned directly from google are wrong for their own ids
{
  name: 'models/gemini-1.5-pro-exp-0801',
  version: 'exp-0801',
  displayName: 'Gemini Experimental 1206',
  description: 'Experimental release (December 6th, 2024) of Gemini.',
  inputTokenLimit: 2097152,
  outputTokenLimit: 8192,
  supportedGenerationMethods: [ 'generateContent', 'countTokens' ],
  temperature: 1,
  topP: 0.95,
  topK: 64,
  maxTemperature: 2
}
{
  name: 'models/gemini-1.5-pro-exp-0827',
  version: 'exp-1206',
  displayName: 'Gemini Experimental 1206',
  description: 'Experimental release (December 6th, 2024) of Gemini.',
  inputTokenLimit: 2097152,
  outputTokenLimit: 8192,
  supportedGenerationMethods: [ 'generateContent', 'countTokens' ],
  temperature: 1,
  topP: 0.95,
  topK: 64,
  maxTemperature: 2
}

We just show the name and as a result, there are 3 "duplicate" entries for the same name - will change this to the ID since this is confusing not knowing exactly which key you chose since we can only fit so much into the input selector.
Also your error

exp-0801:streamGenerateContent?alt=sse: [500 Internal Server Error] An internal error has occurred. Please retry or report in https://developers.generativeai.google/guide/troubleshooting

Is from Google, not us - they must have had downtime on their servers and you hit their API during this time. There is nothing we can do to patch that.

The names returned directly from google are wrong for their own ids
{
  name: 'models/gemini-1.5-pro-exp-0801',
  version: 'exp-0801',
  displayName: 'Gemini Experimental 1206',
  description: 'Experimental release (December 6th, 2024) of Gemini.',
  inputTokenLimit: 2097152,
  outputTokenLimit: 8192,
  supportedGenerationMethods: [ 'generateContent', 'countTokens' ],
  temperature: 1,
  topP: 0.95,
  topK: 64,
  maxTemperature: 2
}
{
  name: 'models/gemini-1.5-pro-exp-0827',
  version: 'exp-1206',
  displayName: 'Gemini Experimental 1206',
  description: 'Experimental release (December 6th, 2024) of Gemini.',
  inputTokenLimit: 2097152,
  outputTokenLimit: 8192,
  supportedGenerationMethods: [ 'generateContent', 'countTokens' ],
  temperature: 1,
  topP: 0.95,
  topK: 64,
  maxTemperature: 2
}

We just show the name and as a result, there are 3 "duplicate" entries for the same name - will change this to the ID since this is confusing not knowing exactly which key you chose since we can only fit so much into the input selector.
Also your error

exp-0801:streamGenerateContent?alt=sse: [500 Internal Server Error] An internal error has occurred. Please retry or report in https://developers.generativeai.google/guide/troubleshooting

Is from Google, not us - they must have had downtime on their servers and you hit their API during this time. There is nothing we can do to patch that.

Any idea regarding the sometimes slow loading times of messages? even though the metrics show a few seconds?


ACES: Incorrect label extraction with value_min predicate

When using ACES with a value_min predicate, the label extraction appears to produce incorrect results.
Reproduction Steps
Checkout this colab: https://colab.research.google.com/drive/1_JQL9EvmX6q6UtF72A6r12kqQqkoomKO?usp=sharing
or follow my explanation below:

Create a sample dataset with numeric values:

data = pl.DataFrame(dict(
    subject_id=[1,1,1,1,1],
    time=[
        datetime.datetime(2000,1,1),
        datetime.datetime(2000,1,2),
        datetime.datetime(2000,1,3),
        datetime.datetime(2000,1,4),
        datetime.datetime(2000,1,5)
    ],
    code=["a", "a", "b", "b", "b"],
    numeric_value=[0.0,100.0,100.0,0.0,0.0]
))

Use the following ACES configuration:

predicates:
  trigger_event:
    code: {regex: "a|b"}
  lab:
    code: {regex: "a|b"}
  abnormal_lab:
    code: {regex: "a|b"}
    value_min: 2.0
    value_min_inclusive: True

trigger: trigger_event

windows:
  input:
    start: NULL
    end: trigger
    start_inclusive: True
    end_inclusive: True
    index_timestamp: end
  target:
    start: input.end
    end: start + 30d
    start_inclusive: False
    end_inclusive: True
    has:
      lab: (1, None)
    label: abnormal_lab

Run ACES using the CLI:

aces-cli data.path=$data_path data.standard='meds' cohort_dir=$cohort_dir cohort_name='task_config'

Expected Behavior
Based on the data and configuration with value_min: 2.0, we expect to see four extracted labels: True, True, False, False.
Actual Behavior
ACES returns 4 True labels.
Environment

ACES version: 0.6.1
Python version: 3.12.7

The issue is the regex, you get the expected labels if you switch from a regex to an or expression by modifying the predicates as follows:
predicates:
  trigger_event:
    code: {regex: "a|b"}
  lab:
    code: {regex: "a|b"}
  a_lab:
    code: a
    value_min: 2.0
    value_min_inclusive: True
  b_lab:
    code: b
    value_min: 2.0
    value_min_inclusive: True
  abnormal_lab:
    expr: or(a_lab,b_lab)

Ah yes I see - need to add value checks for regex codes, thanks!


[Bug] When setting the background color of the frame selection range, the background color of the cell is missing when clicking repeatedly

Before you submit this issue, have you checked the following

[X] Is this really a problem?
[X] I have searched the Github Issues for similar issues, but did not find anything.

Affected packages and versions
dev
Reproduction link
操作步骤：
1、框选范围设置背景色
2、在框选范围内多次点击单元格
Expected behavior
背景色不会缺失，会完整展示
Actual behavior
背景色会在多次点击中缺失
2024_5_6 20_21_43 video.webm
System information
No response

Both Chrome and Edge on windows can not reproduce this issue


"Client-side" data refresh

Currently, we manage data changes from the backend to the frontend by using server action and revalidatePath, or refresh page.
This paradigm works well in use cases that flow from one screen to another but, may prove inefficient and/or a poor user experience if the screen does not navigate away after a data change.
Perhaps, we might implement a "client-side" data management using useEffect...

Is this somewhere that on-demand revalidation might work? I'm still not super familiar with Next 13/14/App dir, but it seems like it might apply in this case.
Skimming over client/app/utils/actions.ts:actionHandler(), it seems like it might work there.

@joshgamache in fact on-demand re-validation is handled in client/app/utils/actions.ts:actionHandler() where if a re-validate path is provided then the path is re-validated (on demand) but using revalidatePath which uses "refresh page"  strategy (I believe) . As mentioned above we may want to avoid this refresh page on some screens using useState as detailed above.


Checkstyle plugin checks test codes too

Currently, the Checkstyle plugin in pom.xml of the root project only checks codes in the root project and its submodules, we also need to check those codes in test/e2e and test/plugin

reusethe same checkstyle configurations

add Checkstyle plugin in the test/plugin/pom.xml and test/e2e/pom.xml, and add the Checkstyle goal to .github/workflow/plugins-test.yml and .github/workflow/e2e.yml

@huangbowen521 are you going to do this :)

I will work on it

Move this to help wanted, as PR isn't updated for a long time.

@wu-sheng , is there anyone else currently working on this issue? If not I can have a try.

@vcjmhg I am not sure what is the status. You could try first.

ok


Recommended way of filtering params for weight decay

Apologies if this has been asked before but I couldn't find any example that demonstrates this in a simple manner.
I have a model built in Equinox. Now, I want to use the AdamW optimizer where:

I want to apply weight_decay to certain parameters (i.e. divide the pytree into two groups and apply weight decay to one group). For example, what if I want to apply weight decay only weights (except for normalization layer)?
Perform gradient accumulation

My approach would be to define a filter spec for that set of parameters then just define the optimizer over that specific set. Similar to https://docs.kidger.site/equinox/tricks/#custom-per-parameter-behaviour I would first try something like:
import jax
import jax.numpy as jnp
import equinox as eqx
import optax

class Weight(eqx.Module):
  w: jax.Array

  def get(self):
    return self.w

  def __matmul__(self, o):
    return self.w @ o

model = eqx.nn.MLP(2, 'scalar', 10, 3, key=jax.random.PRNGKey(0))

is_linear = lambda x: isinstance(x, eqx.nn.Linear)
get_weights = lambda m: [x.weight
                         for x in jax.tree_util.tree_leaves(m, is_leaf=is_linear)
                         if is_linear(x)]
weighted_model = eqx.tree_at(get_weights, model, replace_fn=Weight)

weight_optimizer = optax.adamw(0.1)
other_optimizer = optax.sgd(0.1)

w_filter = lambda x: isinstance(x, Weight)
leaf = lambda x: isinstance(x, Weight)
o_filter = lambda x: not isinstance(x, Weight) and eqx.is_array(x)
w_opt_state = weight_optimizer.init(eqx.filter(weighted_model, w_filter, is_leaf=leaf))
o_opt_state = other_optimizer.init(eqx.filter(weighted_model, o_filter, is_leaf=leaf))

grads = eqx.filter_grad(lambda x, y: x(y))(weighted_model, jnp.ones(2))
updates1, _ = weight_optimizer.update(eqx.filter(grads, w_filter, is_leaf=leaf), w_opt_state, weighted_model)
updates2, _ = other_optimizer.update(eqx.filter(grads, o_filter, is_leaf=leaf), o_opt_state, weighted_model)
weighted_model = eqx.apply_updates(weighted_model, updates1)
weighted_model = eqx.apply_updates(weighted_model, updates2)

Thanks for the detailed response @lockwo A few comments though:

Filtering this way can become quite messy in many cases. For example, let's say you have a Transformer with 32 TransformerLayers each of which consists of MHA, Linear and LayerNorm layers. Ideally I should filter my transformer based on the layer type as well as the shapes of the parameters.
Here we are using two optimizers which is a stretch. Why? Because optax.adamw comes with a mask where you can mention the group to which weight decay won't be applied. Link to the documentation for your reference

PS: I think there should be a cleaner way of filtering params and distributing them into different groups. I don't have a clear cut answer to this right away, but it should be possible

Your points are generally true I think, I was just highlighting the general framework I would go about doing.

If you know what layers you want, I think it would be pretty manageable to just define a filter spec for those layers (basically looking for those leaves then getting the weights, probably not very many LoC).
Two optimizers was just to show total flexibility, but definitely you could use a mask. I actually didn't know that was there, but you might be able to just reuse the filter spec for it.

I don't know if I could write a universal thing that would definitely work for your codebase, but this approach is general. If you have a more complicated MVC, could also take a look

Gotcha! Thanks for the clarification. Also, I am not looking for a universal patter but rather a cleaner pattern.
Re complicated MVP: Yeah, let me do that because that would give everyone more clarity on what I am trying to achieve. Give me a a couple of hours

@lockwo here is a better MVC:
class MLP(eqx.Module):
    fc1: eqx.nn.Linear
    fc2: eqx.nn.Linear

    def __init__(self, key, dtype=jnp.bfloat16):
        key1, key2 = jax.random.split(key, 2)
        self.fc1 = eqx.nn.Linear(32, 64, key=key1, dtype=dtype)
        self.fc2 = eqx.nn.Linear(64, 64, key=key2, dtype=dtype)

    def __call__(self, x):
       pass

class Attention(eqx.Module):
    wqkv: eqx.nn.Linear
    proj: eqx.nn.Linear
    drop: eqx.nn.Dropout

    def __init__(self, key, dtype=jnp.bfloat16):
        key1, key2 = jax.random.split(key, 2)
        self.wqkv = eqx.nn.Linear(64, 3 * 64, key=key1) # 3 for qkv
        self.proj = eqx.nn.Linear(64, 64, key=key2)
        self.drop = eqx.nn.Dropout()

    def __call__(self, x, mask=None):
        pass

class TransformerBlock(eqx.Module):
    norm_1: eqx.nn.LayerNorm
    norm_2: eqx.nn.LayerNorm
    attn: Attention
    mlp: MLP

    def __init__(self, key, dtype=jnp.bfloat16):
        key1, key2 = jax.random.split(key, 2)
        self.norm_1 = eqx.nn.LayerNorm(64)
        self.attn = Attention(key=key1, dtype=dtype)
        self.norm_2 = eqx.nn.LayerNorm(64)
        self.mlp = MLP(key=key2, dtype=dtype)

    def __call__(self, x, mask=None):
        pass

class Transformer(eqx.Module):
    pos_embed: eqx.nn.Embedding
    tf_blocks: TransformerBlock
    norm: eqx.nn.LayerNorm

    def __init__(self, key, num_layers=2, dtype=jnp.bfloat16):
        keys = jax.random.split(key, num_layers + 3)
        key1, key2, key3, tf_keys = keys[0], keys[1], keys[2], keys[3:]

        self.tf_blocks = [TransformerBlock(tf_keys[i]) for i in range(num_layers)]
        self.norm = eqx.nn.LayerNorm(64)
        self.pos_embed = eqx.nn.Embedding(64, 64, key=key1)

    def __call__(self, x):
        pass

model = Transformer(jax.random.PRNGKey(1))

Here, I would like to apply weight decay to all the weight param except for the normalization layers, and the biases

So in that case, it would be like
exclude = lambda x: isinstance(x, eqx.nn.LayerNorm)
leaf = lambda x: hasattr(x, "weight") and not exclude(x)
get_weights = lambda m: [x.weight for x in jax.tree_util.tree_leaves(m, is_leaf=leaf) if isinstance(x, eqx.Module)]
weighted_model = eqx.tree_at(get_weights, model, replace_fn=Weight)

and you don't need two optimizers, because now you could filter for Weight/use the mask

Perfect. Thanks a lot. Let me try this, will report my findings

Looks like I still can't get it working (either I am misunderstanding something here or it is just too much of work to achieve this). Here is what I want but doesn't seem to be working for me:

def set_weights(weight, bias):
    # Set both the weights and bias to None
    # if they are to be masked from weight decay
    return None, None

def is_layer(x):
    return isinstance(x, eqx.Module)

def get_weights(model):
    weights = []
    biases = []
    for x in jax.tree.leaves(model, is_leaf=is_layer):
        # For each layer, check the shape of the parameters.
        # If any param is 1D, store it and return to replace it with None
        if hasattr(x, "weight") and x.weight.ndim < 2:
           weights.append(x.weight)
        if hasattr(x, "bias"):
           biases.append(x.bias)
    return weights, biases

masked_params = eqx.tree_at(get_weights, model, set_weights)

Would appreciate any help on this

Any suggestions? @patrick-kidger

I've run into this issue myself. Would it be possible to, say, extend eqx.field to add some sort of tagging system to the field metadata, which we could then use in different filters?

If I understand correctly you want a boolean mask (to pass to optax.adamw(..., mask=...)), indicating which parameters you want to apply weight decay to?
From your description it sounds like you want to apply weight decay to (a) the weight and biases of all linear layers, and (b) just the biases of all LayerNorm layers? If so then that would correspond to
params = ...

def is_layer(x):
    return isinstance(x, eqx.nn.Linear) or isinstance(x, eqx.nn.LayerNorm)

def set_mask(x):
    if isinstance(x, eqx.nn.Linear):
        return jtu.tree_map(lambda _: True, x)
    elif isinstance(x, eqx.nn.LayerNorm):
        mask = jtu.tree_map(lambda _: False, x)
        mask = eqx.tree_at(lambda m: m.bias, mask, True)
        return mask
    else:
        return jtu.tree_map(lambda _: False, x)

mask = jtu.tree_map(lambda _: False, params, is_leaf=is_layer)

Note that here, params is whatever you have asked Optax to optimize. Typically this is just the parameters of your model, as obtained by something like params = eqx.filter(model, eqx.is_array), see also this FAQ entry.
Also note how I'm not using hasattr, or checking ndim, or anything like that. Just isinstance checks! I'd recommend this approach as usually being much more reliable.

The follow-up question on extending eqx.field. This is an idea that people like to suggest every now and again, but I'm afraid it doesn't work in general. (You can probably find some past discussions if you go looking back through this issue tracker.) There are several issues, the two most notable being:

The field is something owned by the surrounding class, but when you tree-map you get the individual parameters.
From JAX's point of view, eqx.Module is just a PyTree. Nothing more or less. Keeping this rule makes it easy to reason about Equinox code. Changing that to add special behaviour -- here some field metadata -- seems like a step in the wrong direction.

But that said, you are free to add your own metadata to eqx.field! Just like dataclasses.field. So if you want to construct something that works in your individual use-case then you are free to do so :)

Thanks @patrick-kidger for the detailed info. This is very helpful. One last query on this. In the above code, you have defined the set_mask function to set the mask for the weights and biases, but you haven't used it in the above code. Did you miss a line or two in the above code by any chance?

Typo'd. Fixed!

This still doesn't work. Here is a MWE that you can copy-paste and try:
class MLP(eqx.Module):
    fc1: eqx.nn.Linear
    fc2: eqx.nn.Linear

    def __init__(self, key, dtype=jnp.bfloat16):
        key1, key2 = jax.random.split(key, 2)
        self.fc1 = eqx.nn.Linear(32, 64, key=key1, dtype=dtype)
        self.fc2 = eqx.nn.Linear(64, 64, key=key2, dtype=dtype)

    def __call__(self, x):
       pass

class Attention(eqx.Module):
    wqkv: eqx.nn.Linear
    proj: eqx.nn.Linear
    drop: eqx.nn.Dropout

    def __init__(self, key, dtype=jnp.bfloat16):
        key1, key2 = jax.random.split(key, 2)
        self.wqkv = eqx.nn.Linear(64, 3 * 64, key=key1) # 3 for qkv
        self.proj = eqx.nn.Linear(64, 64, key=key2)
        self.drop = eqx.nn.Dropout()

    def __call__(self, x, mask=None):
        pass

class TransformerBlock(eqx.Module):
    norm_1: eqx.nn.LayerNorm
    norm_2: eqx.nn.LayerNorm
    attn: Attention
    mlp: MLP

    def __init__(self, key, dtype=jnp.bfloat16):
        key1, key2 = jax.random.split(key, 2)
        self.norm_1 = eqx.nn.LayerNorm(64)
        self.attn = Attention(key=key1, dtype=dtype)
        self.norm_2 = eqx.nn.LayerNorm(64)
        self.mlp = MLP(key=key2, dtype=dtype)

    def __call__(self, x, mask=None):
        pass

class Transformer(eqx.Module):
    pos_embed: eqx.nn.Embedding
    tf_blocks: TransformerBlock
    norm: eqx.nn.LayerNorm

    def __init__(self, key, num_layers=2, dtype=jnp.bfloat16):
        keys = jax.random.split(key, num_layers + 3)
        key1, key2, key3, tf_keys = keys[0], keys[1], keys[2], keys[3:]

        self.tf_blocks = [TransformerBlock(tf_keys[i]) for i in range(num_layers)]
        self.norm = eqx.nn.LayerNorm(64)
        self.pos_embed = eqx.nn.Embedding(64, 64, key=key1)

    def __call__(self, x, y, mask=None):
        pos_embed = jax.vmap(self.pos_embed)(y)

def is_layer(x):
    return isinstance(x, eqx.nn.Linear) or isinstance(x, eqx.nn.LayerNorm)

def set_mask(x):
    if isinstance(x, eqx.nn.Linear):
        return jtu.tree_map(lambda _: True, x)
    elif isinstance(x, eqx.nn.LayerNorm):
        mask = jtu.tree_map(lambda _: False, x)
        mask = eqx.tree_at(lambda m: m.bias, mask, True)
        return mask
    else:
        return jtu.tree_map(lambda _: False, x)

model = Transformer(jax.random.PRNGKey(1))
params = eqx.filter(model, eqx.is_array)
mask = jtu.tree_map(set_mask, params, is_leaf=is_layer)
optim = optax.adamw(learning_rate=1e-4, mask=mask)
opt_state = optim.init(params)

Traceback
---> 83 opt_state = optim.init(params)

File ~/miniconda3/envs/jaxenv/lib/python3.11/site-packages/optax/_src/combine.py:64, in chain.<locals>.init_fn(params)
     63 def init_fn(params):
---> 64   return tuple(fn(params) for fn in init_fns)

File ~/miniconda3/envs/jaxenv/lib/python3.11/site-packages/optax/_src/combine.py:64, in <genexpr>(.0)
     63 def init_fn(params):
---> 64   return tuple(fn(params) for fn in init_fns)

File ~/miniconda3/envs/jaxenv/lib/python3.11/site-packages/optax/_src/wrappers.py:544, in masked.<locals>.init_fn(params)
    541 if isinstance(params, _state_utils._ParamsPlaceholder):  # pylint:disable=protected-access
    542   return MaskedState(inner_state=inner.init(params))
--> 544 mask_tree = mask(params) if callable(mask) else mask
    545 masked_params = mask_pytree(params, mask_tree)
    546 return MaskedState(inner_state=inner.init(masked_params))

TypeError: Transformer.__call__() missing 1 required positional argument: 'y'

Probably a known Optax oddity: they check to see if certain values are callable, and if they are, they call them. This takes precedence over the pytree-ness of an object.
Wrap your masks/gradients/etc. into a length-1 list to defeat the callable check.

Should I raise an issue on optax repo regarding this? This seems very limiting and unnecessary IMHO

Wrap your masks/gradients/etc. into a length-1 list to defeat the callable check.
This didn't work btw

@patrick-kidger IMO it would be good if you can take a look at the issue and the corresponding PR raised in Optax for this issue. They fixed it, but it broke the updates workflow of adamw w/o mask. I am suggesting this because there isn't going to be a new release of optax anytime soon, so it will be worth fixing them now

What are you proposing that Equinox does differently?

What are you proposing that Equinox does differently?

Sorry for being not very clear in my earlier comment. I am not suggesting anything to change on the Equinox side. I am asking if you can share some thoughts in thread(issue) I opened on the Optax side.


Updated for structure renaming in SDL3

Is SDL_Event still compatible?
EDIT: I tested quakespasm and seems to work, so far...

Yes, we copy the rest of the payload after the timestamp, so it should be fine.


SSH Permission issue with copy id to node

Hello, I am getting permission issue with the copy id from the ACS to node server.
getting below ERROR
ssh-copy-id<EMAIL_ADDRESS>/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/ansible/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
<EMAIL_ADDRESS>Permission denied (publickey).

Follow the steps clearly:
Become root user "sudo -i"
enable passwordbaseauth in "/etc/ssh/sshd_config" file
restart ssh "service sshd restart"
create user "adduser username"
make as sudo user "visudo"
login to user "su username"
install ansible in added user
generate keys "ssh-keygen"
copy keys into node "ssh-copy-id username@nodeip"
install python in node apt-get install python -y if node is ubuntu and yum install python -y if node is RedHat/Centos

Thanks, Issue Resolved


Fix/host deployer command remove unused libguestfs

https://github.com/yunionio/container-images/pull/8

https://github.com/yunionio/cloudpods/pull/18001


Subversion support

Contribution Type: new feature
Primary Area: builder
Description of change: We use Subversion and PHPCi in our projects so I have added Subversion support

Nice! Welcome addition.
I wonder if it's possible to get rid of the "ssh wrapper" shell script?

I was doing it in analody with git plugin

I was doing it in analody with git plugin

Thanks for explaining. I reviewed this without looking at that implementation. Also, I'm not sure it is possible, just that I wondered if it would be possible (which could be cleaner).
Thanks a lot though for taking the time writing this!

PHP Mess Detector

File
Start
End
Message

PHPCI/Model/Build/SubversionBuild.php
137
137
Avoid unused parameters such as '$builder'.

PHPCI/Model/Build/SubversionBuild.php
137
137
Avoid unused parameters such as '$cloneTo'.

PHP Code Sniffer

File
Line
Message

PHPCI/Model/Build/SubversionBuild.php
39
Spaces must be used to indent lines; tabs are not allowed

PHPCI/Model/Build/SubversionBuild.php
42
Whitespace found at end of line

PHPCI/Model/Build/SubversionBuild.php
59
Whitespace found at end of line

PHPCI/Model/Build/SubversionBuild.php
63
Spaces must be used to indent lines; tabs are not allowed

PHPCI/Model/Build/SubversionBuild.php
63
Inline control structures are not allowed

PHPCI/Model/Build/SubversionBuild.php
64
Spaces must be used to indent lines; tabs are not allowed

PHPCI/Model/Build/SubversionBuild.php
100
Spaces must be used to indent lines; tabs are not allowed

PHPCI/Model/Build/SubversionBuild.php
100
Inline control structures are not allowed

PHPCI/Model/Build/SubversionBuild.php
101
Spaces must be used to indent lines; tabs are not allowed

@Block8/phpci-contributors Anyone got access to an SVN repo to test this? Maybe @REBELinBLUE? :)

Would The GitHub SVN API work?
https://help.github.com/articles/support-for-subversion-clients/

Must work. I tested with our local repository, but i can test github also.

@Block8/phpci-contributors - Has anyone had chance to test this?

@dancryer I'm not using SVN, sorry, but I will try to set-up a dev area in the next days.

@minderm I made a few changes to get this working for me, but I've merged it now. :)
Can you check it still works for you?

@dancryer where i can see changes?

The new plugin is on master, so you could just pull from master and test it that way...
I changed the clone URL to pull from trunk and/or a specific branch:
https://github.com/Block8/PHPCI/commit/35a6d1f5773a81d9836b45cf5bc704ac53aaee4e#diff-4644a9b985228c8adc9551c411a69814R28
and then changed it so you could build a specific revision:
https://github.com/Block8/PHPCI/commit/35a6d1f5773a81d9836b45cf5bc704ac53aaee4e#diff-4644a9b985228c8adc9551c411a69814R104


Ambiguity on Apps coverage by policy

The page is not clear on whether Safe Links protection for O365 apps applies to all users or just licensed users or just users who are in active policies.  We have conflicting statements:
"Safe Links protection for Office 365 apps is applied to all users in the organization who are licensed for Defender for Office 365, regardless of whether the users are included in active Safe Links policies or not."
"Global Safe Links settings: These settings are configured globally, not in Safe Links policies. But, the settings apply only to users who are included in active Safe Links policies. These settings include: Safe Links settings for Office 365 apps"
And then in the situations that explain if a user is covered or not, it indicates the user does need to be in an active policy to get coverage for O365 apps.  If this is now indeed the case, can we get the line updated or removed that says O365 apps are covered for licensed users regardless of whether they're in an active policy?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 8112b7a9-8f21-18b3-03da-f8c02b05f239
Version Independent ID: a441f1d1-5844-ecb9-ba44-95b94714e4e8
Content: Safe Links - Office 365
Content Source: microsoft-365/security/office-365-security/safe-links.md
Product: m365-security
Technology: mdo
GitHub Login: @chrisda
Microsoft Alias: chrisda

@ianwright-msft, the update for stating that Safe Links for Office aps works for all licensed users (not just members of Safe Links polices) was added recently.
I thought I scrubbed the topic for conflicting references, but it looks like I missed one. That offending statement now says:

Global Safe Links settings: These settings are configured globally, not in Safe Links policies. These settings include:

Basically, what happening is Safe Links for Office 365 apps is all licensed users. The "Block the following URLs" list for Safe Links applies to both email (which requires membership in a Safe Links policy) and Office 365 apps (which does not).

@ianwright-msft Hope this update is helpful for you. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


adding new fbm node with simplex noise

Example of usage

@Calinou sounds good to me, but I guess it up to to Rod. @RodZill4 should I change it over to FBM Noise now that I'm at it?

Sounds like a good idea.


exception vectors go to .data

seems that exception code goes to .data section:
.word 0x3a7db1e6, 0xd412cc8d, 0x735721c1, 0x881570db, 0x2f9b3971, 0x825922ad, 0xb5f05d35, 0xc1ae9a38
.align 4;
.align 5
_user_stack_start:
.rept 4999
.4byte 0x0
.endr
_user_stack_end:
.4byte 0x0
_kernel_start: .align 12
smode_program:    slt        t2, t0, t1
c.beqz     a4, smode_program_stack_p
smode_program_stack_p:addi       sp, sp, -52
sll        s3, s2, s7
sw         ra, 4(sp)
sw         t0, 8(sp)
sw         s9, 12(sp)
mulhsu     s5, a2, ra
sw         a2, 16(sp)
sw         t3, 20(sp)
sw         t1, 24(sp)
c.andi     a3, 16
diag.exe:     file format elf32-littleriscv
Sections:
Idx Name          Size      VMA       LMA       File off  Algn
0 .text         00011a38  00000000  00000000  00001000  21
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .text.init    000000da  00011a38  00011a38  00012a38  20
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .data         00039e22  00012000  00012000  00013000  212
CONTENTS, ALLOC, LOAD, DATA
3 .tohost       00000048  0004be40  0004be40  0004ce40  26
CONTENTS, ALLOC, LOAD, DATA
It should be nice to get things in correct sections to be able to move them around with linker:
.text, .data. .stack .init, .handlers
Also what is the mechanism to define multiple data sections and their addresses? ( we have several memory regions  with different characteristics - internal data, instructions, I/O, external normal memories and I/O regions,)
We would like to have several text and data sections be placed in these "RTL/TB defined" addresses.

This issue should be gone for the bare program mode.
For the data section address,  the generated program is intended to be used for core level verification rater than SOC level, so it doesn't have any notion of memory space partition. I think this can be added by implement custom load/store instruction stream. For example, you can add  label for each memory region, and use load/store to access these regions based on the region label + region address offset.

We do core level verification , but the core includes internal memories, memory mapped interrupt controller we need to verify. L/S unit needs stimuli  with mixed targets ...

we also have a minimum MMU/MPU logic which defines memory characteristics based on address -
the LS transaction types differ depending it's I/O or just regular memory and we need to test these characteristics. The CPU RTL  has various parameters, which define where these internal memories reside, so we have to tune code/data locations accordingly.

Does the core support virtual address translation?

It doesn’t, but we have plans for future versions. We’re also planning multithreaded cores with amo instructions for synchronization.
From: taoliug<EMAIL_ADDRESS>Sent: Friday, September 6, 2019 4:27 PM
To: google/riscv-dv<EMAIL_ADDRESS>Cc: Alexander Grobman<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [google/riscv-dv] exception vectors go to .data (#129)
CAUTION: This email originated from outside of Western Digital. Do not click on links or open attachments unless you recognize the sender and know that the content is safe.
Does the core support virtual address translation?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/google/riscv-dv/issues/129?email_source=notifications&email_token=AK5G543IONKTZQF5RAUOHADQILDJ5A5CNFSM4IULECIKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6EDIRA#issuecomment-529019972, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AK5G544DXNOGHPODWFYEEC3QILDJ5ANCNFSM4IULECIA.

Right now the the program generate many data pages with label : data_page_{idx}. The default setting is 40 4KB data pages. One easy way to achieve your goal is to link these pages to the various regions in your memory map, so that existing load/store instruction can access different regions naturally. Another way to do it to name the data pages in a more meaningful way. Like
{
region_0_name : 4KB
region_1_name:  16KB
region_2_name:  512B
....
}
In your link script, you can link each region to corresponding address. This will complicate the page table setup though.

Don’t they all belong to the same .data section? As far as I know linker operates with sections, not labels. If you prepend your data pages with “.section dataN”, these pages can be relocated by linker to any address independently –
Interesting useful feature could be to use the generator to select physical addresses for these pages …
( I think, there is special .section format to define start address, like .org XXXX command)
From: taoliug<EMAIL_ADDRESS>Sent: Friday, September 6, 2019 4:36 PM
To: google/riscv-dv<EMAIL_ADDRESS>Cc: Alexander Grobman<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [google/riscv-dv] exception vectors go to .data (#129)
CAUTION: This email originated from outside of Western Digital. Do not click on links or open attachments unless you recognize the sender and know that the content is safe.
Right now the the program generate many data pages with label : data_page_{idx}. The default setting is 40 4KB data pages. One easy way to achieve your goal is to link these pages to the various regions in your memory map, so that existing load/store instruction can access different regions naturally. Another way to do it to name the data pages in a more meaningful way. Like
{
region_0_name : 4KB
region_1_name: 16KB
region_2_name: 512B
....
}
In your link script, you can link each region to corresponding address. This will complicate the page table setup though.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/google/riscv-dv/issues/129?email_source=notifications&email_token=AK5G543FRCJQS4UHCMMMFXTQILELFA5CNFSM4IULECIKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6EDZRQ#issuecomment-529022150, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AK5G547T2IJVFOYEFFAVLO3QILELFANCNFSM4IULECIA.

Let me give a try for the custom region setting. Use .org might be a better idea as it reduce the complexity of the link script.
{
data_section_0_name ,0x0001_0000, 4KB,   instruction
data_section_1_name ,0x0002_0000, 16KB, data
data_section_2_name ,0x0003_F000, 16KB, data
....
}

Link script can use  something like  {data* } => .data to put all dataN sections to one output .data section to emulate current behavior ( I don’t remember exact syntax).
From: taoliug<EMAIL_ADDRESS>Sent: Friday, September 6, 2019 4:53 PM
To: google/riscv-dv<EMAIL_ADDRESS>Cc: Alexander Grobman<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [google/riscv-dv] exception vectors go to .data (#129)
CAUTION: This email originated from outside of Western Digital. Do not click on links or open attachments unless you recognize the sender and know that the content is safe.
Let me give a try for the custom region setting. Use .org might be a better idea as it reduce the complexity of the link script.
{
data_section_0_name ,0x0001_0000, 4KB, instruction
data_section_1_name ,0x0002_0000, 16KB, data
data_section_2_name ,0x0003_F000, 16KB, data
....
}
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/google/riscv-dv/issues/129?email_source=notifications&email_token=AK5G544K5LKJPS3MYWSM5RLQILGMFA5CNFSM4IULECIKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6EE54I#issuecomment-529026801, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AK5G544YSIHTMWCDZ64IKEDQILGMFANCNFSM4IULECIA.

The main complexity comes from setting up page tables for these scattered data pages. Especially if we want to inject error in the page table entry and do error recovery. I need to think about a clean way to do it. Right now the assumption is that all pages are equal size and continuously allocated in memory space. I think it makes sense to allow user customize the page location/size/access_type.

I agree it’s not simple ..  we have 4 data pointers in our tests – one for internal data memory, another for external “normal” , one – for I/O type external and one for our internal I/O. Our test gen mixes L/S instructions with all these pointers in the instruction streams .    Limitation is that we  had to reserve 4 GPRs for these pointers and accesses can go to 4KB windows only.
To check address aliasing effects it may be not sufficient, especially if the CPU includes data cache . ( we don’t have DC, though)
Other L/Ss with random addresses can be created with a sequence, setting up data pointer, but then it’s too deterministic, one more possibility is to get data pointers from memory tables – to check L/L or L/S dependencies
From: taoliug<EMAIL_ADDRESS>Sent: Friday, September 6, 2019 5:28 PM
To: google/riscv-dv<EMAIL_ADDRESS>Cc: Alexander Grobman<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [google/riscv-dv] exception vectors go to .data (#129)
CAUTION: This email originated from outside of Western Digital. Do not click on links or open attachments unless you recognize the sender and know that the content is safe.
The main complexity comes from setting up page tables for these scattered data pages. Especially if we want to inject error in the page table entry and do error recovery. I need to think about a clean way to do it. Right now the assumption is that all pages are equal size and continuously allocated in memory space. I think it makes sense to allow user customize the page location/size/access_type.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/google/riscv-dv/issues/129?email_source=notifications&email_token=AK5G54ZZLFME7UM6A5ZUL7TQILKOTA5CNFSM4IULECIKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6EG3SY#issuecomment-529034699, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AK5G54YLD2IKQMIZ5ZNV5DTQILKOTANCNFSM4IULECIA.

to my original complain - when you place code(exception handlers in this case)  to data sections it confuses some tools
objdump for ex - it won't disassemble data sections. You can always place it in the code, by prepending it with .text  - assembler collects all .text  code from source to one .text section in obj file
you can have sections in the source file as layered cake:
.text
some code
.data
some data
.text
another code
.data
another data
at output all .text will be collected together and and all .data together too, forming one .text and one .data

yes, this issue should have been fixed by this change.
https://github.com/google/riscv-dv/commit/68243ccb1cfbe35f48f4bdcadc1be99a0ba58a0d#diff-f4e7ea3a932515dd6de98542c6c9754bR177
.text
user program
.data
user data
.text << this is missing
kernel program
.data
kernel data

why it is section text.init and not just .text?
.macro init
.endm
.section .text.init <<<< ????
.globl _start
_start:

I think this is inherited from riscv-tests, it's used by link script to link this section to beginning of the program. Maybe for your use case, you want it to be .text so that you can have your known init section?

Yes, I had to change manually this one to .text ..
From: taoliug<EMAIL_ADDRESS>Sent: Friday, September 6, 2019 6:31 PM
To: google/riscv-dv<EMAIL_ADDRESS>Cc: Alexander Grobman<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [google/riscv-dv] exception vectors go to .data (#129)
CAUTION: This email originated from outside of Western Digital. Do not click on links or open attachments unless you recognize the sender and know that the content is safe.
I think this is inherited from riscv-tests, it's used by link script to link this section to beginning of the program. Maybe for your use case, you want it to be .text so that you can have your known init section?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/google/riscv-dv/issues/129?email_source=notifications&email_token=AK5G542Q2GEOWMJ47V62RELQILR3FA5CNFSM4IULECIKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6EJTOY#issuecomment-529045947, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AK5G54YSH32SBLVR7K2AQLDQILR3FANCNFSM4IULECIA.

With above changes,  now each memory region as it's own section, You can link them to match the memory map.  Memory region can be configured in the config class:
https://github.com/google/riscv-dv/blob/master/src/riscv_instr_gen_config.sv#L79
For the external memory, I'd suggest to specify a small range for simulation purpose, otherwise it might take a long time to randomly init the memory region.
[Nr] Name              Type             Address           Offset
Size              EntSize          Flags  Link  Info  Align
[ 0]                   NULL<PHONE_NUMBER>000000  00000000
0000000000000000<PHONE_NUMBER>000000           0     0     0
[ 1] .text             PROGBITS<PHONE_NUMBER>000000  00001000
000000000000a2ac<PHONE_NUMBER>000000  AX       0     0     4096
[ 2] .tohost           PROGBITS<PHONE_NUMBER>00b000  0000c000
0000000000000048<PHONE_NUMBER>000000  WA       0     0     64
[ 3] .region_0         PROGBITS<PHONE_NUMBER>00c000  0000d000
0000000000001000<PHONE_NUMBER>000000  WA       0     0     1
[ 4] .region_1         PROGBITS<PHONE_NUMBER>00d000  0000e000
0000000000004000<PHONE_NUMBER>000000  WA       0     0     1
[ 5] .region_2         PROGBITS<PHONE_NUMBER>011000  00012000
0000000000002000<PHONE_NUMBER>000000  WA       0     0     1
[ 6] .region_3         PROGBITS<PHONE_NUMBER>013000  00014000
0000000000000200<PHONE_NUMBER>000000  WA       0     0     1
[ 7] .region_4         PROGBITS<PHONE_NUMBER>013200  00014200
0000000000001000<PHONE_NUMBER>000000  WA       0     0     1
[ 8] .user_stack       PROGBITS<PHONE_NUMBER>014200  00015200
0000000000009c40<PHONE_NUMBER>000000  WA       0     0     64
[ 9] .kernel_stack     PROGBITS<PHONE_NUMBER>01de40  0001ee40

any idea, why am I getting region sections with zero data?
.pushsection .region_0,"aw",@progbits;
region_0:
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000

Because there are three data patterns for the data section
https://github.com/google/riscv-dv/blob/master/src/riscv_instr_pkg.sv#L616
typedef enum bit [1:0] {
RAND_DATA = 0,
ALL_ZERO,
INCR_VAL
} data_pattern_t;

Is the data pattern randomly selected?

One more thing
can you add _finish: label to the _exit, something like this:
_exit:
_finish:
j write_tohost

one more idea:
print a sequence name before and after it is injected as a comment into the generated source

Hi All
I was following this thread, and wondering if the best method is the tohost/fromhost idea.
I cannot recall whom, but I am pretty sure there has been talk regarding dropping the whole tohost/fromhost interface, in which case the ecall would seem the best approach.
If we were to simply follow the linux syscall style, we could test the syscall number, eg exit()
it would be trivial then to write a traphandler which interrogates the syscall number and does the appropriate action
@agrobman can I ask what is your execution environment which need to have the specific labels in the elf file to detect an END-OF-TEST scenario ?
Thx
Lee

One more thing
can you add _finish: label to the _exit, something like this:
_exit:
_finish:
j write_tohost

Can you extend riscv_asm_program_gen::gen_program_end to add this? I don't want to add TB specific codes in the upstream code.

I am closing this issue for now as I believe the original issue is solved. Please file a different issue for other feature requests. Thanks.

one more idea:
print a sequence name before and after it is injected as a comment into the generated source

This is already implemented:
                  slt        a4, a6, a3
                  lbu        a6, 33(ra) #end riscv_hazard_instr_stream_5
                  la         s9, region_4+319 #start riscv_hazard_instr_stream_11
                  lh         t2, 59(s9)

@eroom1966 , _finish label is used by our RTL verification environment .
we don't like ecall/syscall as end of test because we need to verify this instruction in randoms by itself .
Also some benchmarks use syscall to interact with host - we utilize this interface when run these benchmarks on the RTL model ..


responsive

Description
Updated Mobile Responsiveness
Fixes #1
Type of change
Please delete options that are not relevant.

[X ] Bug fix (non-breaking change which fixes an issue)
[X ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Using Chrome Dimensions on different screen sizes
Checklist

[X] My code follows the style guidelines of this project
[X] I have performed a self-review of my code
[X] I have commented my code, particularly in hard-to-understand areas
[X] I have made corresponding changes to the documentation
[X] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

Good work, but please check on pr name, make the name match the issue you are solving, use emojis and lastly, dont delete existing code in a file

Okay. Thanks
On Mon, Oct 23, 2023 at 8:38 AM Japheth Nyaranga @.***>
wrote:

Good work, but please check on pr name, make the name match the issue you
are solving, use emojis and lastly, dont delete existing code in a file
—
Reply to this email directly, view it on GitHub
https://github.com/italanta/elewa-website-html/pull/235#issuecomment-1774468637,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A5WD5GR3UAABSABT3VBM4CDYAX7DRAVCNFSM6AAAAAA5V5C7HOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONZUGQ3DQNRTG4
.
You are receiving this because you authored the thread.Message ID:
@.***>


Don't pass UserProfile object to client_put().

This was in AdminCreateUserTest.test_create_user_backend().
For end to end tests we are logged in, and we need to verify
that our decorators add UserProfile to the parameters of
the view on our behalf, so that we don't get false positives.
In an upcoming commit, we will want to be able to serialize
the parameters for client_put to produce url coverage reports,
so that is another reason not to pass in the UserProfile
object.  (That was how this was discovered.)

Automated message from Dropbox CLA bot
@showell, it looks like you've already signed the Dropbox CLA. Thanks!

Merged, thanks @showell!


Start the Syntax structured editing library

This is a rather large patch since there are a lot of "new nodes" so I would direct your attention first to:

RawSyntax.{cpp,h}
SyntaxData.{h.cpp}
Syntax.{h.cpp}
TokenSyntax.{h,cpp}
SyntaxBuilder.{h,cpp}
Trivia.{h,cpp}

If you find anything unclear, I'm happy to answer any questions about the underlying architecture.
As for testing, there are already some unit tests in place but I'll be adding more tonight as well as a harness to run through the round-trip tests, which prove that parsing and reprinting the new syntax tree doesn't lose information. That will be a separate commit regardless, however.
Please hold off on triggering swift-ci tests – I'm still adding some testing infrastructure on this branch.

@swift-ci Please smoke test

The Linux test needs to update some TypeAliasDecl constructor calls.

Corresponding LLDB change: https://github.com/apple/swift-lldb/pull/149. We'll merge at the same time.