Processor cores not displayed correctly

Processor Information (dmidecode):

Socket Designation: U3E1
Type: Central Processor
Family: Core i9
Manufacturer: Intel(R) Corporation
Signature: Type 0, Family 6, Model 183, Stepping 1
Flags:

FPU (Floating-point unit on-chip)
VME (Virtual mode extension)
DE (Debugging extension)
PSE (Page size extension)
TSC (Time stamp counter)
MSR (Model specific registers)
PAE (Physical address extension)
MCE (Machine check exception)
CX8 (CMPXCHG8 instruction supported)
APIC (On-chip APIC hardware supported)
SEP (Fast system call)
MTRR (Memory type range registers)
PGE (Page global enable)
MCA (Machine check architecture)
CMOV (Conditional move instruction supported)
PAT (Page attribute table)
PSE-36 (36-bit page size extension)
CLFSH (CLFLUSH instruction supported)
DS (Debug store)
ACPI (ACPI supported)
MMX (MMX technology supported)
FXSR (FXSAVE and FXSTOR instructions supported)
SSE (Streaming SIMD extensions)
SSE2 (Streaming SIMD extensions 2)
SS (Self-snoop)
HTT (Multi-threading)
TM (Thermal monitor supported)
PBE (Pending break enabled)

Version: 13th Gen Intel(R) Core(TM) i9-13900HX
Voltage: 1.4 V
External Clock: 100 MHz
Max Speed: 5400 MHz
Current Speed: 4851 MHz
Status: Populated, Enabled
Core Count: 24
Core Enabled: 24
Thread Count: 32
Characteristics:

64-bit capable
Multi-Core
Hardware Thread
Execute Protection
Enhanced Virtualization
Power/Performance Control

cpuid:

Name: 13th Gen Intel(R) Core(TM) i9-13900HX
Vendor String: GenuineIntel
Vendor ID: Intel
PhysicalCores: 16
Threads Per Core: 2
Logical Cores: 32
CPU Family 6 Model: 183 Stepping: 1
Features: ADX,AESNI,AVX,AVX2,AVXVNNI,BHI_CTRL,BMI1,BMI2,CETIBT,CETSS,CLMUL,CMOV,CMPXCHG8,CX16,ERMS,F16C,FLUSH_L1D,FMA3,FSRM,FXSR,FXSROPT,GFNI,HRESET,HTT,HYBRID_CPU,IA32_ARCH_CAP,IA32_CORE_CAP,IBPB,IDPRED_CTRL,KEYLOCKER,LAHF,LZCNT,MD_CLEAR,MMX,MOVBE,MOVDIR64B,MOVDIRI,NX,OSXSAVE,POPCNT,PSFD,RDRAND,RDSEED,RDTSCP,RRSBA_CTRL,SERIALIZE,SHA,SPEC_CTRL_SSBD,SSE,SSE2,SSE3,SSE4,SSE42,SSSE3,STIBP,STOSB_SHORT,SYSCALL,SYSEE,VAES,VMX,VPCLMULQDQ,WAITPKG,X87,XGETBV1,XSAVE,XSAVEC,XSAVEOPT,XSAVES
Microarchitecture level: 3
Cacheline bytes: 64
Frequency:<PHONE_NUMBER> Hz
Boost Frequency:<PHONE_NUMBER> Hz

Threads Per Core is not going to be accurate.
But it does seem like there is something fishy with the latest Intels:
=== RUN   TestMocks/GenuineIntel00B06A2_RaptorLakeP_04_CPUID.txt
    mockcpu_test.go:180: Opening GenuineIntel00B06A2_RaptorLakeP_04_CPUID.txt
    mockcpu_test.go:183: Name: 13th Gen Intel(R) Core(TM) i9-13900H
    mockcpu_test.go:185: Max Function:0x20
    mockcpu_test.go:187: Max Extended Function:0x80000008
    mockcpu_test.go:188: VendorString: GenuineIntel
    mockcpu_test.go:189: VendorID: Intel
    mockcpu_test.go:190: PhysicalCores: 10
    mockcpu_test.go:191: ThreadsPerCore: 2
    mockcpu_test.go:192: LogicalCores: 20
    mockcpu_test.go:193: Family 6 Model: 186 Stepping: 2
    mockcpu_test.go:194: Features: ADX,AESNI,AVX,AVX2,AVXVNNI,BHI_CTRL,BMI1,BMI2,CETIBT,CETSS,CLMUL,CMOV,CMPXCHG8,CX16,ERMS,F16C,FLUSH_L1D,FMA3,FSRM,FXSR,FXSROPT,GFNI,HRESET,HTT,HYBRID_CPU,IA32_ARCH_CAP,IA32_CORE_CAP,IBPB,IDPRED_CTRL,KEYLOCKER,LAHF,LZCNT,MD_CLEAR,MMX,MOVBE,MOVDIR64B,MOVDIRI,NX,OSXSAVE,PCONFIG,POPCNT,PSFD,RDRAND,RDSEED,RDTSCP,RRSBA_CTRL,SERIALIZE,SHA,SPEC_CTRL_SSBD,SSE,SSE2,SSE3,SSE4,SSE42,SSSE3,STIBP,STOSB_SHORT,SYSEE,TME,VAES,VMX,VPCLMULQDQ,WAITPKG,X87,XGETBV1,XSAVE,XSAVEC,XSAVEOPT,XSAVES
    mockcpu_test.go:195: Microarchitecture level: 3
    mockcpu_test.go:196: Cacheline bytes: 64
    mockcpu_test.go:197: L1 Instruction Cache: 32768 bytes
    mockcpu_test.go:198: L1 Data Cache: 49152 bytes
    mockcpu_test.go:199: L2 Cache: 1310720 bytes
    mockcpu_test.go:200: L3 Cache: 25165824 bytes
    mockcpu_test.go:201: Hz:<PHONE_NUMBER> Hz
    mockcpu_test.go:202: Boost:<PHONE_NUMBER> Hz

Total Cores: 14
no of Performance-cores: 6
no of Efficient-cores: 8
Total Threads: 20

https://www.intel.com/content/www/us/en/products/sku/232135/intel-core-i913900h-processor-24m-cache-up-to-5-40-ghz/specifications.html
Problem seem to be:
func physicalCores() int {
	v, _ := vendorID()
	switch v {
	case Intel:
		return logicalCores() / threadsPerCore()

So some work will have to be put into changing the detection of this, and maybe some additional information on slow/fast cores.


"Settings" in German translation does not fit the Sidebar

The German word for settings – "Einstellungen" – is too long for the sidebar so it sticks out. You could always just change the font size, it should still be large enough.

What about removing the word and use an icon? Here a mockup in combination with a mute sound button from https://github.com/meetfranz/franz/issues/162

And with a mute notification button:

I like the idea.

Fixed in #252


Error after reboot

ℹ Computer information

PowerToys version: <IP_ADDRESS>
PowerToy Utility:
Running PowerToys as Admin:
Windows OS Version: Microsoft Windows NT 10.0.19042.867

📝 Provide detailed reproduction steps (if any)

Configured to run at startup

Error showed after reboot
2021-03-19.txt

Missing --- "C:\Program Files\PowerToys\modules\launcher\Images\app.dark.png'."
Error Msg at start.txt

…
✔ Expected result
What is the expected result of the above steps?
❌ Actual result
What is the actual result of the above steps?
📷 Screenshots
Are there any useful screenshots? WinKey+Shift+S and then just paste them directly into the form

@doccrocker
thank you for reporting the issue.
When di you install 0.33.1?

@doccrocker
can you go to C:\Program Files\PowerToys\modules\launcher\Images\ and check if these four images are all missing?

can you also check ``C:\Program Files\PowerToys\modules\launcher\Plugins\Microsoft.Plugin.Program\Images` and check if it contains these images?

Installed on same day as report.  After install, restarted computer and error popped up.  Just for fun I restarted system today and got same error message.
I suspect you are just missing the png file in Images.  Would be nice if it's that simple
Steve
3356 Brassie Terrace
The Villages, FL 32163
c-248-417-6212
h-352-633-7233
@.***
"There's two theories to arguin' with a woman.
Neither one works."- Will Rogers
"Anyone who considers protocol unimportant has never dealt with a cat" - L. Long

From: Enrico Giordani @.>
Sent: Friday, March 19, 2021 3:53 AM
To: microsoft/PowerToys @.>
Cc: Steve C @.>; Mention @.>
Subject: Re: [microsoft/PowerToys] Error after reboot (#10321)
@doccrockerhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fdoccrocker&data=04|01||0e7286567b794e37e7bf08d8eaac0c96|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637517371947636554|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=D2b8YeFLDlaMgjr53y8hp2Xy3%2BRO35Fys1sKnIawyno%3D&reserved=0
thank you for reporting the issue.
When di you install 0.33.1?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2FPowerToys%2Fissues%2F10321%23issuecomment-802628396&data=04|01||0e7286567b794e37e7bf08d8eaac0c96|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637517371947646554|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=2bSNriGlAti5nQKhymbt4y86KO8EYPbEDKAkDNt94uw%3D&reserved=0, or unsubscribehttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FALKDTQ2C2W7ZSRWVRZT235DTEL7GTANCNFSM4ZOGRVRA&data=04|01||0e7286567b794e37e7bf08d8eaac0c96|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637517371947646554|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=ejhKme8AxvyrCG5KodxGXG7MQJWlotxu7RvSHhQS4v4%3D&reserved=0.

@doccrocker
can yo check the two folders I listed in my previous comment?
Thanks.

the 4 images are missing from C:\Program Files\PowerToys\modules\launcher\Images\   There are 31 images present in this folder
the 10 images are present in C:\Program Files\PowerToys\modules\launcher\Plugins\Microsoft.Plugin.Program\Images
Steve
3356 Brassie Terrace
The Villages, FL 32163
c-248-417-6212
h-352-633-7233
@.***
"There's two theories to arguin' with a woman.
Neither one works."- Will Rogers
"Anyone who considers protocol unimportant has never dealt with a cat" - L. Long

From: Enrico Giordani @.>
Sent: Friday, March 19, 2021 4:08 AM
To: microsoft/PowerToys @.>
Cc: Steve C @.>; Mention @.>
Subject: Re: [microsoft/PowerToys] Error after reboot (#10321)
@doccrockerhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fdoccrocker&data=04|01||946cdcead1b34468bb4408d8eaae2c21|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637517381067008174|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=5Rkc7U4SON%2FVXSZrLHd7TYi0DFmutmgiheKGvBHUaFI%3D&reserved=0
can you go to C:\Program Files\PowerToys\modules\launcher\Images\ and check if these four images are all missing?
[image]https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fuser-images.githubusercontent.com%2F3206696%2F111749725-79808280-8892-11eb-96ae-3c22659a1621.png&data=04|01||946cdcead1b34468bb4408d8eaae2c21|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637517381067018173|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=k96w50v1has4ZlQUaZzjkg7pruLpNxQgMreZH8KGI4Q%3D&reserved=0
can you also check C:\Program Files\PowerToys\modules\launcher\Plugins\Microsoft.Plugin.Program\Images and check if it contains these images?
[image]https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fuser-images.githubusercontent.com%2F3206696%2F111749598-4fc75b80-8892-11eb-918f-74df7477f687.png&data=04|01||946cdcead1b34468bb4408d8eaae2c21|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637517381067018173|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=i69u3eGzK4r1tti7dv0pN69AUbOPMFALz%2BhkzW36S%2FQ%3D&reserved=0
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2FPowerToys%2Fissues%2F10321%23issuecomment-802636545&data=04|01||946cdcead1b34468bb4408d8eaae2c21|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637517381067028165|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=LADnb3oilaBWaPmHYs7C9ZYs2UGzRGYwBSaRji9CDSQ%3D&reserved=0, or unsubscribehttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FALKDTQ67PY3FIFTJDQEW363TEMA7RANCNFSM4ZOGRVRA&data=04|01||946cdcead1b34468bb4408d8eaae2c21|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637517381067028165|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=xQvruVxX4tHr2rTtZsYELroqc8ZI8LmjZ%2FwF9sZjF4Q%3D&reserved=0.


live <= main

josh updates

Learn Build status updates of commit 90d1bbd:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error: GitBranchDeletedOrForcePushed]

Cannot sync git repo to specified commit because ref +refs/pull/790/merge has been deleted or has been force pushed.
 If this is pull request, please ensure it is mergeable (no merge conflict) and open (not closed).

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Learn Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings or suggestions unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel


Threshold option does nothing

I'm not 100% sure if I'm using the 'threshold' option correctly, but I can't seam to get it to work no matter what I pass to it.
Here's my task:
gulp.task('zip-html', ['html'], function() {
    gulp.src(['../../public/**/*.html', '../../public/**/*.xml'])
        .pipe(gzip({
            gzipOptions: {
                threshold: 152,
                level: 9
            }
        }))
        .pipe(gulp.dest('../../public'))
});

I have a couple of very small files ~50 bytes that I don't want compressed since they end up larger than pre-compression. I've tried passing everything:
threshold: 152
threshold: '1kb'
threshold: true

But nothing seams to have any effect and the task compresses all src files.

Hey, @okiii. Sorry for the confusion.
threshold is separate from gzipOptions. threshold gets used by the gulp-gzip plugin itself, while gzipOptions are forwarded to the zlib module.
See if this works:
{
  threshold: 152,
  gzipOptions: {
    level: 9
  }
}

Awesome that worked great. Thank you @jstuckey :smiley:
Sorry for the noobish misunderstanding!

No worries! Glad to help.


Auto create multiple cursor depending on find results

I would like to be able to create multiple cursors that are automatically placed depending on the results of the find feature.
Let's consider the following content

Now, when I search for a word, for example "imperdiet", it finds 6 results. It would be an awesome feature to be able to auto place cursors in all those positions automatically. For example I could click with Alt key down (or any other key binding that is set to create an additional cursor) somewhere in the text input field and be able to auto place cursors in all the lines. Let's do Alt+Click after letter "m" => "im|perdiet". At this point we will have cursors in all those places:

To make the feature more discoverable, you could add a button that places the link at the beginning or end of the found text (maybe this way could work also with regex).

The command Select All Occurrences of Find Match already does this. On Windows the shortcut is Ctrl+Shift+L

Ahh nice, I guess I can close this. Thanks


Hotswap kind of broken by this signal-switching code

Directly related to https://github.com/elm-lang/core/issues/132
The same code breaks when hotswapping. To reproduce:

run code below in debug mode in elm-reactor 0.3
change something (for example image dimensions)
the hotswap will usually happen, but the script seems blocked (animations will stop, no more response to arrow keys)

module Bugs where

import List ((::), foldr, length, drop, head)
import Signal (Signal, (<~), (~), constant, foldp, map2)
import Graphics.Element (..)
import Keyboard
import Debug
import Text (centered, fromString)

slides = [
  constant <| centered <| fromString "use arrow keys to go forward/backward",
  constant <| fittedImage 100 500 "https://raw.githubusercontent.com/elm-lang/elm-lang.org/master/resources/shells.jpg",
  constant <| fittedImage 700 500 "https://raw.githubusercontent.com/elm-lang/elm-lang.org/master/resources/book.jpg",
  constant <| centered <| fromString "edit something while looking at this in elm-reactor, the script will stop"
  ]

lastSlide = length slides - 1
updateSlide {x,y} current =
  let nextSlide = case x of
        -1 -> current - 1
        1 -> current + 1
        _ -> current
  in clamp 0 lastSlide nextSlide

chooseSlide: Int -> (List a -> a)
chooseSlide page = drop page >> head

-- signals

displaySlide: Int -> Signal Element
displaySlide page = drop page slides |> head

currentSlide = foldp updateSlide 0 Keyboard.arrows

main = applyMany (chooseSlide <~ currentSlide) slides

-- debug
slideWatch = Debug.watch "slide" <~ currentSlide

-- taken from elm-signal-extra

combine : List (Signal a) -> Signal (List a)
combine = foldr (map2 (::)) (constant [])

applyMany : Signal (List a -> b) -> List (Signal a) -> Signal b
applyMany fs l = fs ~ combine l

Rephrased and added detail in this new issue: #127


Add Strict to modules

Fixes #2283
Modules that cause performance decrease when added the Strict pragma, found so far (tested on sum-to-n):
Kore.Attribute.Parser: aprox. 3 seconds
Kore.Attribute.Smtlib: more than 3 minutes
Review checklist
The author performs the actions on the checklist. The reviewer evaluates the work and checks the boxes as they are completed.

[ ] Summary. Write a summary of the changes. Explain what you did to fix the issue, and why you did it. Present the changes in a logical order. Instead of writing a summary in the pull request, you may push a clean Git history.
[ ] Documentation. Write documentation for new functions. Update documentation for functions that changed, or complete documentation where it is missing.
[ ] Tests. Write unit tests for every change. Write the unit tests that were missing before the changes. Include any examples from the reported issue as integration tests.
[ ] Clean up. The changes are already clean. Clean up anything near the changes that you noticed while working. This does not mean only spatially near the changes, but logically near: any code that interacts with the changes!

I fixed the errors. For the record, what I did was,
git checkout master -- kore/src/Kore/Attribute/{Simplification,Trusted}.hs
# Now those two files no longer have errors, but the Strict pragmas are missing.
# So, I add the pragmas to those files and run:
./nix/fourmolu.sh
git commit -am 'Format with fourmolu'

Add {-# LANGUAGE NoStrict #-} to Driver.hs.
Add Strict to package.yaml and remove it from all the files.


Update Footer to Display Dynamic Year

Description:
Currently, the year displayed in the Footer component is hardcoded as "2023". To ensure the year is always up to date, we need to make it dynamic.
Proposed Changes:
Modify the Footer component to use JavaScript to retrieve the current year dynamically.
Update the displayed year in the footer to reflect the current year.
These changes will ensure that the year displayed in the Footer is always accurate and does not require manual updates.

can I work on this?

I have solved the issue. Could you assign me for this. Adding a dynamic date is simple but important change to be made.Cause our attention will be on big issues and we miss the simple details. I have added date object and replaced hardcoded text with date variable. Here is the image,

Can I work over this Issue?


firebase-admin-go using hashicorp library which MPL licensed.

firebase-admin-go using hashicorp library which MPL licensed. Can we use some other MIT or apache licensed library.

Looks like the only hashicorp dependency in the dependency graph is github.com/hashicorp/golang-lru and it is not a direct module used by the admin-sdk. I think it is coming from google.golang.org/api module. Could you file an issue in that repo, please? That way the relevant teams should be able take a look. Thanks!


Litespeed Cache compatibility error

Image optimization in Litespeed Cache does not work with WP Stateless. I get a fatal error when I "Pull images"
I have contacted Litespeed and their response was:
“Please contact WP stateless, the error is on their file, but I think it might be due to our v3 that changed some API, please attach this link (https://wordpress.org/support/topic/changes-to-api-and-cli/) to them as well.”
Fatal error: Uncaught Error: Class 'LiteSpeed_Cache' not found
in /home/luderior/public_html/wp-content/plugins/wp-stateless/lib/classes/compatibility/lite-speed-cache.php on line 84
Call stack:
wpCloud\S\LSCacheWP::sync_image()
wp-includes/class-wp-hook.php:287
WP_Hook::apply_filters()
wp-includes/class-wp-hook.php:311
WP_Hook::do_action()
wp-includes/plugin.php:478
do_action()
wp-content/plugins/litespeed-cache/src/img-optm.cls.php:926
LiteSpeed\Img_Optm::pull()
wp-content/plugins/litespeed-cache/src/img-optm.cls.php:1865
LiteSpeed\Img_Optm::handler()
wp-content/plugins/litespeed-cache/src/router.cls.php:707
LiteSpeed\Router::handler()
wp-content/plugins/litespeed-cache/src/core.cls.php:276
LiteSpeed\Core::proceed_action()
wp-content/plugins/litespeed-cache/src/core.cls.php:224
LiteSpeed\Core::after_user_init()
wp-includes/class-wp-hook.php:287
WP_Hook::apply_filters()
wp-includes/class-wp-hook.php:311
WP_Hook::do_action()
wp-includes/plugin.php:478
do_action()
wp-settings.php:540
require_once()
wp-config.php:89
require_once()
wp-load.php:37
require_once()
wp-admin/admin.php:34

Hello @AlexIacoban
The fix will be included in the next release.
Fixed on issue 491.

This has been fixed in 3.0


⚠ Ingot has degraded performance

In 5cc695a, Ingot (https://www.ingot.cloud/css/general.css) experienced degraded performance:

HTTP code: 200
Response time: 8191 ms

Resolved: Ingot performance has improved in 17404d9 after 9 minutes.


UI updates phase 2

This branch is based on #1147

adds package:mdc_web as a dependency
switches to a material menu using package:mdc_web
removes "test code" checkbox in favor of just an icon
customize the theme the recommended way (by using Sass instead of CSS variables)
Adds ripple animations to tabs and buttons by using package:mdc_web to initialize them
changes "Your code" tab to just "Dart"
makes buttons title-case (instead of uppercase)

fixes #981
This makes progress toward #1127 but there are some remaining UX questions and minor cleanup

changes "Your code" tab to just "Dart"

Was this recommended by UXR?

changes "Your code" tab to just "Dart"

Was this recommended by UXR?

No, but this matches the HTML embed style, and the old style and is more concise. I also think it might be important for newcomers to understand what language Flutter is written in

staged here: https://20190716t104417-dot-dart-pad.appspot.com/experimental/embed-new-flutter.html

@RedBrogdon PTAL


License

I forked your repository to use as an exercise1, and after I started working on it, realized that it does not have a license. Would you consider adding an open source license to this?
1Basically, I'm just improving existing code and possibly extending some, for fun/learning. Your codebase was small and complete, so it fit what I needed perfectly.

Hello Peter,
This project was made when I just started my journey in Game Development during 2nd year in my college. I followed tutorials from this personhttps://www.youtube.com/user/makinggameswithben/videos on youtube and at the same time tried to implement some newly learnt Design Patterns during that time I learnt in college.
Regarding your question,
Would you consider adding an open source license to this?
Sure, Why not?
Just tell me the license that suits you the most and I will update it.
Happy Coding!!
P.S.: You might find the code not optimized, inconsistent or buggy since it was just the start of my game development journey and a newbie in Design Patterns.
Regards,
Plaban

From: Peter L. Adams<EMAIL_ADDRESS>Sent: 03 November 2019 23:04
To: Plaban9/Game_ASCIIRogueLike<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Subject: [Plaban9/Game_ASCIIRogueLike] License (#3)
I forked your repository to use as an exercise1, and after I started working on it, realized that it does not have a license. Would you consider adding an open source license to this?
1Basically, I'm just improving existing code and possibly extending some, for fun/learning. Your codebase was small and complete, so it fit what I needed perfectly.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/Plaban9/Game_ASCIIRogueLike/issues/3?email_source=notifications&email_token=AFODWB4FPLRCAR2VU7FQ3ITQR34RJA5CNFSM4JIMIW62YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HWOWHBQ, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AFODWBYCPSHF5IEWZQO36N3QR34RJANCNFSM4JIMIW6Q.

Thank you, Plaban. I think the MIT license makes sense here.
I definitely understand it not being perfect. Part of the appeal is digging into where I could improve a an existing project. I appreciate you responding - thanks again.

Hi Peter,
I updated the license to MIT as per your requirement.
Regards,
Plaban


ACLEW vs SRVK DiViMe repositories

I'm wondering what the policy is on making changes to these, and where people should assume the best-working version should come from. For example, I've fixed bugs, and those are in the SRVK version, which we've been treating as the 'Development' version. But people might clone the ACLEW version, thinking that it is the most stable, when in fact it is missing the latest bugfixes.
This also applies to documentation: the README has internal links that point to hard-coded URLs for the ACLEW/DiViMe repository. Should they stay that way, and we assume general users get their system from this location, and only developers use SRVK versions?
And lastly, a big difference: we were told we cannot distribute LDC tools, and so removed the SRVK repository's copy of the LDC tool, and removed mentions of it from the documentation README. This was a 'wait for formal permission' situation. If that hasn't changed, just wanting to note that ACLEW repository for DiViMe still mentions and contains LDC content.

More 'gotchas': the ACLEW DiViMe pulls several tools from my personal repositories, and shouldn't.
The ACLEW Vagrantfile installs tools we don't use, and have removed (LIUM diarization, Festival/FestVOX)

To add to that, it had been suggested to us that we should have a versioning system, explaining to users which are stable versions and their features. Versioning would also allow replication.
Re hardcoded urls, that is probably bad form.
LDC tools are still not available.
I don't think it's so bad to be pulling from your own repo, is it? Unless this obscures who is the author of the tool...

we have copies of the tools' repos under SRVK/DiViMe - would rather the URLs to clone them do not contain "riebling" in the Vagrant provisioning script. They were only meant to be temporary to get code out of folders and into repository form.
I think there's a way to fix the hard URLs in the README to refer to the README itself, rather than full HTTP URLs.

I think it is most natural to have a “development” and “main” branch in the same repository. Then by default people would get the stable main branch, but they could also get the more experimental features.
I think it is fine to pull from “riebling” content, as long as it does not simply obfuscate who the original author is, but these repositories could also be in SRVK. The important point is that by using a repository, we can version them, and make sure that even if we make changes down the road, an earlier version can be installed and referenced. To this point, we should see if we can easily print versioning information for each included repository into a log file.

On Aug 15, 2018, at 12:09 PM, riebling<EMAIL_ADDRESS>wrote:
we have copies of the tools' repos under SRVK/DiViMe - would rather the URLs to clone them do not contain "riebling" in the Vagrant provisioning script. They were only meant to be temporary to get code out of folders and into repository form.
I think there's a way to fix the hard URLs in the README to refer to the README itself, rather than full HTTP URLs.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/srvk/DiViMe/issues/18#issuecomment-413227854, or mute the thread https://github.com/notifications/unsubscribe-auth/AEnA8ShjhL8n3YowELmuY6xxGnN4EPUdks5uRDmQgaJpZM4V-NsZ.

Hi,
Are there any updates on wether we should keep the aclew/DiViMe repository ?
If we decide to keep it as stable (vs srvk/DiViMe = dev), I made a pull request on it to catch the latest bugfix and make it a "stable" version.
Otherwise, we could indeed have a dev and main branch on srvk/DiViMe, but does that mean we should also do this for each of the tools ? Maybe make releases on github of "stable" version of the tools (yunitator, noiseme etc..) so that the stable version of the srvk/DiViMe can point directly to "frozen" version of the tools.
If the latter solution is validated by everyone, we could already make a first release of each of the tools and of the DiViMe, do you agree ?

I think by now we have gotten confused about the options and their pro/con list:

having a single repo where the main branch is what people pull and there are as many development branches as desired

pros:

single link that is always valid,
easy for us to push and pull;

cons:

difficult to cite specific versions,
difficult for users to realize there are different versions and how they differ,
risk of pushing to main something that is not fully incorporated (eg contains a new tool that is being incorporated and has not been documented or tested)

having one repo being the public one and another the dev one (currently in place);

pros:

single link that is always valid,
even easier for us to push and pull (no need to remember to relevel)
lower risk of pushing to public a half-baked version

cons:

difficult to cite specific versions,
difficult for users to realize there are different versions and how they differ,

actually using a release system

pros:

single link that is always valid
easier for users to understand there are versions and they differ
lowest risk of pushing to public a half-baked version
easier to cite

cons:

we need to learn how to do this

In view of this, my preference would be option 3 > 2 > 1. Something not taken into account (because I don't know how it works) is the question of weight. I'm installing divime in a totally new machine and it took 3 minutes to clone divime. I'm surprised about this, since it's essentially a few text files. So I suspect there may already be some historical garbage (in a very short use history - it's been only 6 months, right?) that seeped in there.

there must be aftifacts left over from things that used to be in Git (maybe the ACLEW repository, maybe from even longer ago) that never get deleted (a problem with Git). We could get it to be smaller by starting fresh (git init) with just the few text files and couple test audios, though we'd be losing the history of the project and issues.
I tested, it looks like the size is currently 107M but if we delete all the Git overhead/history it shrinks down to 1.8M in size, as you noted, essentially a few text files.

I was thinking of the concept of "doing a release" - maybe we can think of it in terms of pulling a stable set of changes from the SRVK 'Dev' repository into the ACLEW 'Release' repository. So in fact we just 'did a release' with https://github.com/aclew/DiViMe/pull/8. Yay! (I'll have to look into the size history of ACLEW's repository now, maybe it's leaner and meaner :) )

Who knew it was as simple as clicking the Releases link? Not us, having never done so ;) :)

Hmm I don't see the release:
https://github.com/aclew/DiViMe/releases
https://github.com/srvk/DiViMe/releases
Also, where did we land on aclew vs srvk? I'd vote for the public releases being linked to aclew since it's the grant that is currently active for this.

Correct, no release tags have been created yet.
I'd have said something, and we'd probably have been notified.
Want to just choose things as they stand right now, or is there a
more meaningful milestone? I suppose timing with Interspeech is memorable enough!

@riebling Can you please make two releases:
1.0 return to Interspeech submission date (circa March) and release
1.1 fast forward to today; the new things in 1.1 are: 2 more SAD/VAD tools, several bug fixes

Turns out 'doing a release' may be more complicated than just tagging a single repository.
The Vagrantfile pulls in code from several repositories. We might need to also:

Add version/release Tags to each repository brought in by the VM provisioning process
Edit Vagrantfile in some way that it can be back-dated, such that each repository it pulls from, it gets a specified version

yes, that is not a bad idea, simply to make sure every sub-module has a defined state as well. probably a few extra keystrokes, but not a showstopper?

During testing I realized that if a person clones the SRVK/DiViMe repository, they get the head branch of the Vagrantfile which provisions all v1.0 tagged tools. As a result, the tools are not up-to-date with respect to the Vagrantfile, which is ahead of v1.0.
I think for the SRVK/DiViMe repo to truly be the Dev repository, it's Vagrantfile should pull from the head (Dev) branch for all included tools.
Maybe it should work like this: for a person to get a stable Release v1.0 version of DiViMe they should either:

Explicitly clone that version from SRVK repo with `git clone http://github.com/srvk/DiViMe --branch v1.0"
Make the ACLEW repo be the same as v1.0, have users clone from ACLEW and get the "stable v1.0 release"

(and if we implement either of those 2 strategies, then remove the --branch v1.0 from the head version of Vagrantfile in SRVK/DiViMe so that it gets all the head versions of tools)

I think the most intuitive way is to tell people to clone a "stable release version" of a repository, rather than point to two different repositories. in this way, we can even support multiple stable releases in a single repository.


Upgrade to gpiozero 1.4 on Jessie breaks gpiozero

Sorry to cross post this from StackExchange, but I figured this would be useful here, too:
On a stock Jessie install, gpiozero works. E.g.
>>> from gpiozero.devices import pin_factory
>>> print(pin_factory)
<class 'gpiozero.pins.rpigpio.RPiGPIOPin'>

I then upgrade to gpiozero 1.4 with
sudo apt update
sudo apt full-upgrade

Which I'd like because the pinout command is super useful, and gpiozero is among the upgrade:
The following packages will be upgraded:
  bind9-host debconf debconf-i18n debconf-utils gtk2-engines-pixbuf
  libbind9-90 libc-ares2 libdns-export100 libdns100 libdvdnav4 libgcrypt20
  libgnutls-deb0-28 libgnutls-openssl27 libgtk2.0-0 libgtk2.0-bin
  libgtk2.0-common libirs-export91 libisc-export95 libisc95 libisccc90
  libisccfg-export90 libisccfg90 liblwres90 libsmbclient libtiff5 libwbclient0
  perl perl-base perl-modules python-gpiozero python3-gpiozero python3-thonny
  rpi-chromium-mods samba-common samba-libs xarchiver

But although pinout works (it's so cool!) nothing else does, e.g.
>>> from gpiozero.devices import pin_factory
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name pin_factory

And none of my python code with
from gpiozero import ...

Which used to work does either. Any ideas? Thanks in advance!

I'm afraid pin_factory moves in 1.4 to become a class attribute of Device. In other words, import Device from gpiozero and you can then access the current pin factory as Device.pin_factory. For example:
from gpiozero import Device

a_pin = Device.pin_factory.pin(2)

However, there's rarely a need to do this now as the other major change is that instead of devices accepting either a pin specification (e.g. 2) or a Pin instance, they only accept a pin specification, but have the ability to accept an overridden pin_factory. In other words, if previously you did something like this:
device = SomeDevice(my_factory.pin(2))

It now becomes:
device = SomeDevice(2, pin_factory=my_factory)

It is a breaking change (for which I take the blame), but I hope I can justify it. The major reasons behind the change are as follows:

It was impossible under the old system to specify different pin factories for boards with fixed pin specifications (e.g. RyanteckRobot). One could do so for a single board by changing the default pin factory, but changing factories implicitly closed the old one so it was impossible to have, e.g. two remote separate remote factories for two boards. Incidentally, switching factories no longer closes the old factory in 1.4.
There were some tricky object life-time issues associated with having the pin factory as a global (particularly when multiple pin factories were instantiated; these weren't obvious in 1.3 but came up during 1.4 development when the pin reservation system was introduced to support sharing of pins for things like SPI).

I can only apologize for not getting the design right first time, but API design is a trickier thing than many imagine. Unfortunately there was no easy way to support both APIs in 1.4, and given the pins API was marked unstable (in 1.3.x) I felt we could get away with a breaking change (that warning is removed in 1.4; the pins API is now committed to being stable).
You can find lots of examples of playing around with pin factories in the new remote GPIO recipes chapter of the docs.

And none of my python code with from gpiozero import ...

None? Does import gpiozero work?
As Dave said, some advanced functionality changed between 1.3 and 1.4 but we'd been relatively quiet about publicising those features until now (as they're now stable).

I've just run an upgrade and import gpiozero works fine. I guess it comes down to some pin factory stuff that got changed. Good to hear you've been using it - sorry for the bc break, but I hope you find the new syntax easier to work with.

Ah, I read that section and didn't quite get it, now I do :) So this works now for sure:

from gpiozero import Device
print( Device.pin_factory )
<gpiozero.pins.rpigpio.RPiGPIOFactory object at 0x765d6c50>

But this, which worked before, still doesn't. I think I still use integers for pins. What happens now is that it sits for a while and then outputs 1.0 regardless of what's in front of the HC-SRO4. Any ideas?

from gpiozero import DistanceSensor
ultrasonic = DistanceSensor(echo=17, trigger=4)
ultrasonic.distance

That will be related to #385 and #435. I think it's buggy in Python 3 but not Python 2, unfortunately. Nothing specific to DistanceSensor changed in v1.4.
FYI you're using > (blockquote) for your code. You probably want to use backticks (```) instead. Single backticks for inline code, 3 backticks (optionally followed by the word python) for a nested code block.


Better map-write fusion

In the following program, the map and write is not fused:
fun main(n: int): [n]bool =
  let is_open = replicate n False
  loop (is_open) = for i < n do
    let js = map (*i+1) (iota n)
    let flips = map (fn j =>
                       if j < n
                       then !is_open[j]
                       else True -- Doesn't matter.
                    ) js
    in write js flips is_open
  in is_open

Oh yeah, fusing this would be invalid, because the is_open array would be written while it is being read.  Carry on!


✨ Added support for FW 8.50

This one is for those who are stuck on FW 8.50 and cannot update due to broken BD! (Nice move Sony 🤦♂)
I need testers on other 8.xx firmware versions to see what else could these offsets support.

great work!

Thank you!! Can you do 8.03 please?

Has this been tested?

 Still looking...
pppoe0: lcp TO(ack-sent) rst_counter = 10
pppoe0: ipcp TO(ack-sent) rst_counter = 10
sppp:sppp_cp_input:2117: TERM_REQ received. proto(lcp) state(opened)
pppoe0: lcp TO(stopping) rst_counter = 0
pppoe0: lcp TO(req-sent) rst_counter = 10

Fatal trap 12: page fault while in kernel mode

8.50 jailbreak finally? If you can jailbreak the 8.XX, it should be possible to update the fw to 9.00, basically using the jailbreak as a stepping stone.

Funny how it was the very last one. Testing now...

Funny how it was the very last one. Testing now...
Were you able to test it?

@fabianlanza Nah, looking for testers. I'd appreciate if you do.

@fabianlanza Nah, looking for testers. I'd appreciate if you do.

@iMrDJAi Let me see If I have a friend

@fabianlanza Nah, looking for testers. I'd appreciate if you do.

@iMrDJAi Let me see If I have a friend

@iMrDJAi  had no luck finding someone :(

can you do 11.50 please?

can you do 11.50 please?

 You updated, you gotta wait a year or 2

@fabianlanza Nah, looking for testers. I'd appreciate if you do.

@iMrDJAi Let me see If I have a friend

@iMrDJAi had no luck finding someone :(

I have an 8.03, I can test on that when available.

@fabianlanza Nah, looking for testers. I'd appreciate if you do.

You can count me in.
I have a 8.xx slim console too with broken bd.
I gonna check what 8.xx fw this console has when i arrive home.

can you do 11.50 please?

to be rude but you can leave

This code has offset issues. They will be fixed soon.
Will not pass "waiting for stage1 to resume"
And takes alot of tries for the code execution yo be triggered

So yeah, I checked every single offset more than once, I verified all gadgets, and they all seem correct. There is no reason why this shouldn't, unless...
There is one single possibility left. I noticed that FIRST_GADGET offset was from the .data section of the kernel. This could be the reason since .data is where executable code lives.

PPPwned! 🎉

PPPwned! 🎉

Was it tested?

@rafaelflromao Zecoxao just tested it for me.
Still need testers on other 8.xx FWs, probably they have the same offsets.

I didn't find the first 8 offsets, if someone can help - 8.03
`# FW 8.03
class OffsetsFirmware_803:
PPPOE_SOFTC_LIST = 0xffffffff843ed9f8 #NEED
KERNEL_MAP = 0xffffffff84468d48 #NEED

SETIDT = 0xffffffff82512c40 #NEED

KMEM_ALLOC = 0xffffffff8257be70 #NEED
KMEM_ALLOC_PATCH1 = 0xffffffff8257bf3c #NEED
KMEM_ALLOC_PATCH2 = 0xffffffff8257bf44 #NEED

MEMCPY = 0xffffffff824714b0 #NEED

MOV_CR0_RSI_UD2_MOV_EAX_1_RET = 0xffffffff823fb949 #NEED

SECOND_GADGET_OFF = 0x3b

# 0xffffffff82245f1d : jmp qword ptr [rsi + 0x3d]
FIRST_GADGET = 0xffffffff82245f1d

# 0xffffffff82c72e66 : push rbp ; jmp qword ptr [rsi]
PUSH_RBP_JMP_QWORD_PTR_RSI = 0xffffffff82c72e66

# 0xffffffff823b3311 : pop rbx ; pop r14 ; pop rbp ; jmp qword ptr [rsi + 0x10]
POP_RBX_POP_R14_POP_RBP_JMP_QWORD_PTR_RSI_10 = 0xffffffff823b3311

# 0xffffffff8293bb06 : lea rsp, [rsi + 0x20] ; repz ret
LEA_RSP_RSI_20_REPZ_RET = 0xffffffff8293bb06

# 0xffffffff826aeada : add rsp, 0x28 ; pop rbp ; ret
ADD_RSP_28_POP_RBP_RET = 0xffffffff826aeada

# 0xffffffff8267b46f : add rsp, 0xb0 ; pop rbp ; ret
ADD_RSP_B0_POP_RBP_RET = 0xffffffff8267b46f

# 0xffffffff8287c1c6 : ret
RET = 0xffffffff8287c1c6

# 0xffffffff82652d81 : pop rdi ; ret
POP_RDI_RET = 0xffffffff82652d81

# 0xffffffff82212728 : pop rsi ; ret
POP_RSI_RET = 0xffffffff82212728

# 0xffffffff82482342 : pop rdx ; ret
POP_RDX_RET = 0xffffffff82482342

# 0xffffffff82233677 : pop rcx ; ret
POP_RCX_RET = 0xffffffff82233677

# 0xffffffff82293727 : pop r8 ; pop rbp ; ret
POP_R8_POP_RBP_RET = 0xffffffff82293727

# 0xffffffff8279b42f : pop r12 ; ret
POP_R12_RET = 0xffffffff8279b42f

# 0xffffffff8223711d : pop rax ; ret
POP_RAX_RET = 0xffffffff8223711d

# 0xffffffff822008df : pop rbp ; ret
POP_RBP_RET = 0xffffffff822008df

# 0xffffffff82bb35ba : push rsp ; pop rsi ; ret
PUSH_RSP_POP_RSI_RET = 0xffffffff82bb35ba

# 0xffffffff82529060 : mov rdi, qword ptr [rdi] ; pop rbp ; jmp rax
MOV_RDI_QWORD_PTR_RDI_POP_RBP_JMP_RAX = 0xffffffff82529060

# 0xffffffff82b7124e : mov byte ptr [rcx], al ; ret
MOV_BYTE_PTR_RCX_AL_RET = 0xffffffff82b7124e

# 0xffffffff8232e9ac : mov rdi, rbx ; call r12
MOV_RDI_RBX_CALL_R12 = 0xffffffff8232e9ac

# 0xffffffff8232e7e7 : mov rdi, r14 ; call r12
MOV_RDI_R14_CALL_R12 = 0xffffffff8232e7e7

# 0xffffffff823d049e : mov rsi, rbx ; call rax
MOV_RSI_RBX_CALL_RAX = 0xffffffff823d049e

# 0xffffffff825dc638 : mov r14, rax ; call r8
MOV_R14_RAX_CALL_R8 = 0xffffffff825dc638

# 0xffffffff82cb305a : add rdi, rcx ; ret
ADD_RDI_RCX_RET = 0xffffffff82cb305a

# 0xffffffff8266f467 : sub rsi, rdx ; mov rax, rsi ; pop rbp ; ret
SUB_RSI_RDX_MOV_RAX_RSI_POP_RBP_RET = 0xffffffff8266f467

# 0xffffffff82b82393 : jmp r14
JMP_R14 = 0xffffffff82b82393`

@Cardoso17 You can reach me out on PS5 R&D Discord and I'll will help you figuring it out.
Well, now we know that 8.50 offsets don't cover 8.0x.

@Cardoso17:
SETIDT = 0xffffffff82249dd0

KMEM_ALLOC = 0xffffffff8221b3f0
KMEM_ALLOC_PATCH1 = 0xffffffff8221b4bc
KMEM_ALLOC_PATCH2 = 0xffffffff8221b4c4

MEMCPY = 0xffffffff8245e1c0

MOV_CR0_RSI_UD2_MOV_EAX_1_RET = 0xffffffff82660609

Not sure about the data offsets, though

8.00
800k.txt:0xffffffff82c72e66 : push rbp ; jmp qword ptr [rsi]
800k.txt:0xffffffff823b3311 : pop rbx ; pop r14 ; pop rbp ; jmp qword ptr [rsi + 0x10]
800k.txt:0xffffffff8293bb06 : lea rsp, [rsi + 0x20] ; repz ret
800k.txt:0xffffffff826aeada : add rsp, 0x28 ; pop rbp ; ret
800k.txt:0xffffffff8267b46f : add rsp, 0xb0 ; pop rbp ; ret
800k.txt:0xffffffff82200431 : ret
800k.txt:0xffffffff82652d81 : pop rdi ; ret
800k.txt:0xffffffff82212728 : pop rsi ; ret
800k.txt:0xffffffff82482342 : pop rdx ; ret
800k.txt:0xffffffff82233677 : pop rcx ; ret
800k.txt:0xffffffff82293727 : pop r8 ; pop rbp ; ret
800k.txt:0xffffffff8279b42f : pop r12 ; ret
800k.txt:0xffffffff8223711d : pop rax ; ret
800k.txt:0xffffffff822008df : pop rbp ; ret
800k.txt:0xffffffff82bb35ba : push rsp ; pop rsi ; ret
800k.txt:0xffffffff82529060 : mov rdi, qword ptr [rdi] ; pop rbp ; jmp rax
800k.txt:0xffffffff82b7124e : mov byte ptr [rcx], al ; ret
800k.txt:0xffffffff8232e9ac : mov rdi, rbx ; call r12
800k.txt:0xffffffff8232e7e7 : mov rdi, r14 ; call r12
800k.txt:0xffffffff823d049e : mov rsi, rbx ; call rax
800k.txt:0xffffffff825dc638 : mov r14, rax ; call r8
800k.txt:0xffffffff82cb305a : add rdi, rcx ; ret
800k.txt:0xffffffff8266f467 : sub rsi, rdx ; mov rax, rsi ; pop rbp ; ret
800k.txt:0xffffffff82b82393 : jmp r14

No one on 8.51 to test?

No one on 8.51 to test?

8.52 exists, 8.51 does not (afaict)

@TheOfficialFloW I guess at this point you may merge this PR. We can always add alias to 8.52 later.

@iMrDJAi What's your name in discord?

I'm trying to get this offsets for 8.03

FW 8.03
#define kdlsym_addr_Xfast_syscall
#define kdlsym_addr_printf
#define kdlsym_addr_sysent

#define kdlsym_addr_amd_syscall_patch1
#define kdlsym_addr_amd_syscall_patch2
#define kdlsym_addr_amd_syscall_patch3
#define kdlsym_addr_amd_syscall_patch4

#define kdlsym_addr_copyin_patch1
#define kdlsym_addr_copyin_patch2

#define kdlsym_addr_copyout_patch1
#define kdlsym_addr_copyout_patch2

#define kdlsym_addr_copyinstr_patch1
#define kdlsym_addr_copyinstr_patch2
#define kdlsym_addr_copyinstr_patch3

@Cardoso17 Test these https://github.com/TheOfficialFloW/PPPwn/pull/47

@iMrDJAi finally tested and worked perfectly!! Awaiting now for no bd update
Thank you!


Node20 Support

GitHub Actions is deprecating support for Node16 and encouraging a migration to Node20. Running the current version of setup-firefox results in the following warning:
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: browser-actions/setup-firefox@v1. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.

Closed by https://github.com/browser-actions/setup-firefox/pull/520


Typings (e.g. run and dom but probably others) don't work as expected

I was reviewing the egghead course and tried to add typings since the files are *.ts. Starting with the latest dependencies, "strict": true in tsconfig.json, and the counter example:
function main(sources) {
  // see link for full implementation
  return {
    DOM: vdom$
  };
}

run(main, {
  DOM: makeDOMDriver('#app')
});

My intuition was it should just work with a single annotation on main:
function main(sources: {DOM: DOMSource}) {

The first problem is run's types don't match because makeDOMDriver returns its concrete type (MainDOMDriver) instead of interface. I ran into this with with XStream's MemoryStream as well. Not ideal but easy to fix.
function main(sources: {DOM: MainDOMSource}) {

The next problem is run expects main to handle undefined. The signature is easy to fix.
function main(sources?: { DOM?: MainDOMSource }) {

How main should recover from missing sources is less clear. Not ideal but fixable with non-null assertions e.g. sources!.DOM!.select.
The final problem is main returns Stream<VNode> but run expects the driver's stream to be either FantasyObservable | undefined | void | null. null seems like a logic error. void and undefined are synonyms already inferred by Driver. Stream is not a FantasyObservable because the latter expects subscribe to handle undefined. Not easy to fix.
The typings look impressive. They just appear underused. Converting the existing examples to TypeScript with as minimal annotations as possible would reveal these usability issues.

Possibly related: https://github.com/staltz/cycle-onionify/issues/69 I found that the bmi-typescript example fails to build with TypeScript 2.5 or newer.

Code
import { run } from '@cycle/run';
import { makeHTTPDriver } from '@cycle/http';

function main() {
    return {};
}

const drivers = {
  HTTP: makeHTTPDriver(),
};

run(main, drivers);

Error
Argument of type '{ HTTP: Driver<Stream<RequestInput>, HTTPSource>; }' is not assignable to parameter of type 'MatchingDrivers<{ HTTP: Driver<Stream<RequestInput>, HTTPSource>; }, () => {}>'.
  Type '{ HTTP: Driver<Stream<RequestInput>, HTTPSource>; }' is not assignable to type 'Drivers'.
    Property 'HTTP' is incompatible with index signature.
      Type 'Driver<Stream<RequestInput>, HTTPSource>' is not assignable to type 'Driver<void | Stream<any>, any>'.
        Types of parameters 'stream' and 'stream' are incompatible.
          Type 'void | Stream<any> | undefined' is not assignable to type 'Stream<RequestInput> | undefined'.
            Type 'void' is not assignable to type 'Stream<RequestInput> | undefined'.

Had to read https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md#3114-assignment-compatibility to understand ...
There is an issue (I think) between
https://github.com/cyclejs/cyclejs/blob/79c65de5d0b00cd60b4657691ac7cc99d59ce22f/run/src/types.ts#L23-L25
and
https://github.com/cyclejs/cyclejs/blob/79c65de5d0b00cd60b4657691ac7cc99d59ce22f/run/src/types.ts#L29-L31
Not sure if real problem or Typescript bug but
export type Drivers = {
  [name: string]: Driver<Stream<any>, any | void>;
};

works
but
export declare type Driver<Si, So> = {
  (stream?: Si | void, driverName?: string): So;
};

may be better

To do list after merging #852:

[ ] remove npm links from dependencies
[ ] remove rc versions from dependencies
[ ] release non-rc versions for each package


[enhancement] Do you need someone to add the descriptions?

I am currently was thinking on starting on my PDF idea but I noticed your descriptions are blank. Do you need someone to fill those blanks for ya? :+1:

Of course - feel free to do that! Open a PR and I'll gladly merge your descriptions...


flatpak: ~/.local/share/flatpak/repo: opening repo: opendir(objects): No such file or directory

Anyone using impermanence with flatpak?
I got:
flatpak install com.valvesoftware.Steam

error: While opening repository /home/bbigras/.local/share/flatpak/repo: opening repo: opendir(objects): No such file or directory

I tried with home.persistence and environment.persistence.

I haven't tried using flatpak with impermanence yet. Can you post a more detailed configuration, so I can attempt to reproduce it?

{
  services.flatpak.enable = true;
  users.users.bbigras.extraGroups = [ "flatpak" ];

  environment.persistence."/persist" = {
    directories = [
      "/var/lib/flatpak"
    ];
  };

  home.persistence."/persist/home/bbigras" = {
    directories = [
      ".cache/flatpak"
      ".local/share/flatpak"
    ];
  };
}

then run:
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install com.valvesoftware.Steam

Can you reproduce it?

Sorry I haven't responded earlier. I have now tried to reproduce this issue, but can't. At least with the code in #62. I don't know why that PR would have solved this; maybe it was solved prior to it or the issue was solved in flatpak :shrug:

On Debian 11 stable i am seeing the error in title also.
Here is the full output is here
after "apt install flatpak" and trying to "flatpak search XY".

I have the same error on Arch


Is https://explorer.solana.com working?

Is https://explorer.solana.com working?
I haven't been able to access for a few days.

Yes it is.

Yes it is.

Me and some people on solana discord have problem to connect on that site.
I can visit that site but just can see the black balnk.
Can you figure out the problem?
And the Phantom wallet works unproperly.
:(

It fixed! but still there is some probs.
I can see my token logo on mobile but not shown on labtop


Implements method getCIOStatementNamesByIds in BgeeDBUtils

In GitLab by @fbastian on Jul 14, 2015, 13:32
Add method getCIOStatementNamesByIds in BgeeDBUtils, similar to the other methods getXXXNamesByIds. Fix the issue #6 before, to use a code already refactored.
For an example of use of this method to be written, see method org.bgee.pipeline.expression.downloadfile.GenerateMultiSpeciesExprFile.generateMultiSpeciesExprFiles()

In GitLab by @vrechdelaval on Jul 20, 2015, 17:35
mentioned in commit 5d0099f43c083caa2efdac6193060291b6307c67


Example for allow to upload file with any size

hello Essen,
Here is the new PR for "allow to upload file with any size". Please check it out.
thanks,
/Robi

Hey, thanks for the PR. While it allows us to accept a file of any size, it is limited by the amount of memory available. I would prefer not to add an example like this. A better example would save to the file continuously and make sure the file is fully written and otherwise delete it. Closing, thanks!


cicd: skip codesql on forks

introduces an if statement into the codesql lint action
which skips the work if its taking place on a fork.
Signed-off-by: ldelossa<EMAIL_ADDRESS>

Likely needs some backport labels to older branches? :thinking:

Likely needs some backport labels to older branches? thinking

Yup. Just hit a failure in the codeql job on v1.10 backport #16686. I'll mark this for backport and pick it up into that PR. It seems we didn't have the codeql job before v1.10, so no need to backport to 1.9 or earlier.


[MM-10193] Enable to highlight CJK mention key

Summary
Enable to highlight CJK mention key in sentense.
Ticket Link
[Help Wanted] [MM-10193] Words that trigger mentions does not support Chinese · Issue #8642 · mattermost/mattermost-server
[MM-10193] Words that trigger mentions does not support Chinese - Mattermost
Checklist

[x] Added or updated unit tests (required for all new features)

Device Information
This PR was tested on: iOS 11.2, iPhone X Simulator
Screenshots

@migbot Please take a look, when you have the time


Fix issue 17075 ctRegex BacktrackingMatcher.prevStack: free(): invali…

Backtracking engine memory management was horribly broken in multiple ways.
This fixes the mentioned issue and a couple other subtle bugs.
Finally I can pass the test suite with memory chunk size of 1 state, so things are more robust.

Same stable problem will happen here

Ping @JackStouffer
CC @MartinNowak
This is important bugfix let's not allow it to slip through.

I think it's complaning because it's expecting { to begin on a newline after while(...).

I think it's complaning because it's expecting { to begin on a newline after while(...).

Then it has to be fixed not the code. It makes no sense to put {} on the new line just to appease the script.

I agree. But there's also these errors:
out/std_regex_package.d(43): Error: undefined identifier 'popFrontN'
out/std_regex_package.d(150): Error: undefined identifier 'Yes.keepSeparators'
out/std_regex_package.d(154): Error: undefined identifier 'Yes.keepSeparators'

I agree. But there's also these errors:

These existed on the stable branch and should be fixed separately if at all.

You're still missing a space between while and the opening (.

Btw, what's the feature somebody mentioned where reviewers can edit the PR themselves? That would be very useful here instead of having so many roundtrips back and forth. How does that feature work?

You're still missing a space between while and the opening (.

Aargh! Fixed.

Ah, finally style is passing...

Btw, what's the feature somebody mentioned where reviewers can edit the PR themselves? That would be very useful here instead of having so many roundtrips back and forth. How does that feature work?

http://wiki.dlang.org/Guidelines_for_maintainers#write-access-to-prs

But publictests is still running into this snag:
out/std_regex_package.d(43): Error: undefined identifier 'popFrontN'
out/std_regex_package.d(150): Error: undefined identifier 'Yes.keepSeparators'
out/std_regex_package.d(154): Error: undefined identifier 'Yes.keepSeparators'

But publictests is still running into this snag:

This test is needed to ensure that all public unittests in dlang.org really compile and don't show import errors to the user.
FWIW the style Makefile target is also intended to be run locally - unfortunately only for Posix systems at the moment.

Ah, so the problem is missing imports in a unittest block?

Ah, so the problem is missing imports in a unittest block?

Exactly - the script tries to simulate the execution on dlang.org by extracting all public unittests, putting them into a new file (one for each source file, slashes are replaced with underscores) and then subsequently trying to execute the extracted tests.

Hmm, finally figured out how to push commits to somebody else's PR.  That was rather non-obvious!

Woohoo, publictests passed!

OK, apparently too much of std.regex.internal.backtracking isn't covered by unittests.
Ping @DmitryOlshansky  (btw, I don't know how things are supposed to work after maintainers push commits to the PR; you may have to do a git pull to include the unittest fixes I pushed, otherwise circleCI may start complaining again.)

Hmm, now it's complaining about code coverage. What's going on?

At the moment I am just at my phone, so a couple of general general points:

CircleCi runs sth. similar to make - f posix.mak std/string.test for all files (i.e. with -cov) and then uploads the results To CodeCov
the test failures aren't required at the moment (so it's just a warning)
the browser extension (https://github.com/codecov/browser-extension) saves a couple of clicks as it marks non-covered lines with red in the diff view
code coverage doesn't with at CTFE

OK, apparently too much of std.regex.internal.backtracking isn't covered by unittests.

I don't buy it. The main reason is I think that coverage is compute by running the tests of the module in isolation. All tests of backtracking are hoisted out to tests.d so any addition of lines will negatively impact coverage in this model.

btw, I don't know how things are supposed to work after maintainers push commits to the PR; you may have to do a git pull

I am not sure about the process either, but it's essentially a force-push, so git pulling will set the local branch to the state of the remote branch.

I don't buy it. The main reason is I think that coverage is computed by running the tests of the module in isolation. All tests of backtracking are hoisted out to tests.d so any addition of lines will negatively impact coverage in this model.

FYI: The reason for this is that there was some weird, unexplainable behavior of the coverage feature that led to about 2K less covered lines when the test suite was ran with all tests in one go.
See: https://issues.dlang.org/show_bug.cgi?id=16397

OK, in that case, I'm just gonna push the merge button.  A bugfix for a serious bug as this one shouldn't be held up by these petty things.


Does the SX1278_hw_DelayMs function have to be used?

For example, the SX1278_hw_Reset function has SX1278_hw_DelayMs (100). Is this necessary?
__weak void SX1278_hw_Reset(SX1278_hw_t *hw) {
SX1278_hw_SetNSS(hw, 1);
HAL_GPIO_WritePin(hw->reset.port, hw->reset.pin, GPIO_PIN_RESET);
SX1278_hw_DelayMs(1);
HAL_GPIO_WritePin(hw->reset.port, hw->reset.pin, GPIO_PIN_SET);
SX1278_hw_DelayMs(100);    <--------- THIS
}
In addition to the SX1278_hw_Reset function, other functions also use the delay function, but is delay a required element?

It could be minimized. The period for holding reset line is required to be > 100 us, so fixing it to 1ms is fine. Although, the period after reset is indeed much smaller than what is in the code. The datasheet speaks about 5 ms. I think it would be safe to reduce it down to 10 ms.


Update to Pydantic 2 and FastAPI 0.100.0

From https://fastapi.tiangolo.com/release-notes/#01000:

Pydantic version 2 has the core re-written in Rust and includes a lot of improvements and features... In some cases, for pure data validation and processing, you can get performance improvements of 20x or more.

Cross-linking this comment from the dependabot PR so we don't lose it: https://github.com/replicate/cog/pull/1187#issuecomment-1631174754

Related to #1216

This will prevent use of packages (e.g. https://github.com/outlines-dev/outlines ) that have dependencies on pydantic and have upgraded to v2 in their most recent updates.

really need it ,specially when some  llm inference engine requires pydantic 2....
annoying conflicts.....

really need it ,specially when some llm inference engine requires pydantic 2.... annoying conflicts.....
@sinopec - could you give model examples for testing?

I deployed a model today that required pydantic==2.5.3. While we're waiting for the update to newer versions of pydantic and fastAPI, here are some possible workarounds. Choose one depending on the speed you require and how tightly integrated your code is with the incompatible versions of pydantic and fastAPI:
Supplemental venv
Create a virtual environment with venv to supplement the packages installed from cog.yaml
$ cog run bash
# python -m venv --system-site-packages venv_pydantic
# source venv_pydantic/bin/activate
# pip install pydantic==2.5.3

predict.py:
import subprocess
subprocess.check_call(["venv_pydantic/bin/python", "this_script_requires_pydantic2"])

Drawback: You can't easily pre-load your modelweights in setup().
Poetry

in cog.yaml, git clone your code and install it with poetry
cog.yaml:

python_packages:
  - poetry

run:
  - git clone myrepo.git && cd myrepo && poetry install

in predict.py:
import subprocess
subprocess.check_call("cd /myrepo && python -m poetry run python -m script.py".split())

Drawback: You can't easily pre-load your modelweights in setup().
Monkeypatching

You can Mock() or otherwise monkeypatch parts of incompatible libraries.
predict.py:

from unittest.mock import Mock

sys.modules['pydantic.computed_field'] = Mock()
sys.modules['pydantic_settings'] = Mock()
sys.modules['pydantic_settings'].BaseSettings = MyCustomSettings

This hack works best if the pydantic/fastAPI modules are imported but not essential for your code. The advantage is that you can use setup() to preload model weights.
For a more elaborate example see the texify cog demo. I used this method for texify because this way I didn't need to modify the original model code to make the cog demo work.

Summarizing here:

Upgrading pydantic also requires a fastAPI upgrade, which will bump the generated OpenAPI schemas from 3.0 to 3.1.
kin-openapi, which we use in cog and registry-proxy (potentially other places), does not support this: https://github.com/getkin/kin-openapi/issues/230, and has asked for sponsorship to update it
I attempted to switch to libopenapi: https://github.com/replicate/cog/pull/1539, but concluded its validation is not as good as kin-openapi

cc @nickstenning for the sponsorship
cc @dkhokhlov for coordination
Another issue for this: https://github.com/replicate/cog/issues/1336

I chatted to @yorickvP on Slack. Here's a quick summary of what we talked about:

I'm very happy in principle for us to sponsor kin-openapi but we'd need to contact the maintainer and understand whether that would actually get us what we need. The linked issue about sponsorship is several years old.
In practice we use kin-openapi with Replicate's own 3.1 spec without issue. It seems likely we can get away with it for most if not all Cog models.
We have a decent little library of test models/fixtures in this repo that we can use to test that hypothesis.

Same issue wtih pydantic 2, bumping this issue  magically expecting to be fixed.. :)

@micos7 the current effort is at https://github.com/replicate/cog/pull/1858


docs: Entity-Relational Modeling

Goal: General approach to design Web Agents by drawing analogies to Domain Modeling and Relational Databases
Some things to mention:
Similarities to Domain Modeling
Rule of thumb is to model all "nouns" as Web Agents similar to Domain Modeling.

Web Agents are like Domain Objects
Relationships between Domain Objects can be mapped using links between Web Agents (maybe a reference to the Group and Aggregate Agents)
Singleton Agents for Connecting to datasources like a topic from a message broker or for executing a query from a  table in a database

Similarities to Relational Databases

A table is like a Web Agent
Columns map to lanes in Web Agents
Foreign keys between tables can be mapped using links between Web Agents

Data tends to flow from the Base Web Agent to the Aggregate Web Agent

Closing this as the content here as been addressed in issue #97


NEW PATCH??!!

hello I just noticed that the bots dont come to you and i was wondering if it is possible to fix this i hope we can :(

@Butterflypanda
I am not making any bots. You contacting wrong person.
Most likely you need this project https://github.com/davidmann4/ogar-feeder-bot
Or ask person who made your bot for you.


Phantomjs Crashed.

The log told me to copy you the crash error log contents. Here is it. I was using it with phantomas. Since github is retaged and I can't attach a txt. Here you go.

You can upload it to any file sharing service or attach it as as image.
I stripped the crash dump from your comment to make it readable.

Life's too short Vitaly. I hope it helped anyways.
On 6 August 2015 at 17:43, Vitaly Slobodin<EMAIL_ADDRESS>wrote:

You can upload it to any file sharing service or attach it as as image.
I stripped the crash dump from your comment to make it readable.
—
Reply to this email directly or view it on GitHub
https://github.com/ariya/phantomjs/issues/13470#issuecomment-128398821.

@FamousCake just re-upload your crash dump (follow my advice). And we'll have a look.


Crash when rendering without url..

So when using the MobilePDFReader, I'm getting the following crash when I just provide the "data" parameter with the raw binary data for the PDF.
Uncaught TypeError: Cannot read property 'indexOf' of undefined
at Object.getFilenameFromUrl (pdf.js:9332)
at WrappedComponent.MobilePDFReader.setTitleUsingUrl (index.tsx:167)
at WrappedComponent.MobilePDFReader.open (index.tsx:122)
at WrappedComponent.MobilePDFReader.componentDidMount (index.tsx:264)
at commitLifeCycles (react-dom.development.js:19847)
at commitLayoutEffects (react-dom.development.js:22834)
at HTMLUnknownElement.callCallback (react-dom.development.js:188)
at Object.invokeGuardedCallbackDev (react-dom.development.js:237)
at invokeGuardedCallback (react-dom.development.js:292)
at commitRootImpl (react-dom.development.js:22572)
at unstable_runWithPriority (scheduler.development.js:653)
at runWithPriority$1 (react-dom.development.js:11061)
at commitRoot (react-dom.development.js:22412)
at finishSyncRender (react-dom.development.js:21838)
at performSyncWorkOnRoot (react-dom.development.js:21824)
at react-dom.development.js:11111
at unstable_runWithPriority (scheduler.development.js:653)
at runWithPriority$1 (react-dom.development.js:11061)
at flushSyncCallbackQueueImpl (react-dom.development.js:11106)
at flushSyncCallbackQueue (react-dom.development.js:11094)
at scheduleUpdateOnFiber (react-dom.development.js:21230)
at Object.enqueueSetState (react-dom.development.js:12661)
at ReportView../node_modules/react/cjs/react.development.js.Component.setState (react.development.js:471)
If I try to provide the url property, then the pdf doesn't display at all, because I assume the url is overriding the use of the data property. This problem doesn't occur with the PDFReader, only with the mobile version of the reader.

so passed, "data:application/pdf;base64," in for the URL, the MobilePDFReader is now displaying the PDF, but using the base64 as the title... LOL


Save settings on browser local storage

I think this is already the case? https://github.com/osrf/romi-dashboard/blob/d10808d31bf97700f8358323ebbeccc6d6b0111b/src/settings.ts#L33. Maybe there are bugs somewhere.

Whoops, sorry, I wrote this issue and forgot to complete it, actually is for the tutorial. I'll describe it tomorrow. It would be just a flag though, on the user first sign in

You're already doing something similar with the tourComplete variable

Addressed


Add -g to include debugging symbols for bugreport back traces

Add -g to CFLAGS and CXXFLAGS, to allow GIMP to collect back traces for the bug report dialog, and also knock back the optimisation from -O3 to -O2.

in the main release. GIMP is designed to create backtraces automatically if it crashes and present this all in a nice popup with instructions to file a bug - the bug reports we've received so far have been useless (to us and to upstream) due to the lack of backtrace.

Thanks :-)


Broken links in README.md documentation

There are broken links in README.md documentation.
I am fixing them now.

Fixed by Pull Request #4.


Simplify grid-visual for consistent cross-browser behaviour

The gradient style of grid-visual behaves inconsistent across browsers and currently has major rendering issues on Chrome. In the same time having the gutters painted creates a bit of confusion, where I think users expect the paint to be applied to the columns. (mainly when coming from a design tool like Sketch or Illustrator where the grid layout highlights the columns and not the gutters).
This mainly solves #539 but in the same time updates the grid-visual to a column-based painting rather than a gutter-based painting.
We basically go from this:

to this:

This update simplifies the grid-visual mixin by introducing the repeating-linear-gradient(...) property which allows us to consider the width of only a single column, instead of looping through each grid-column to create the linear-gradient(...). Also the calc() function has better cross browser integration and consistency when used within the repeating-linear-gradient property.

@CosminAnca so… I feel silly. I didn't even know repeating-linear-gradient was a thing! This is very cool. I will test it out tonight.


Review all Indexer overrides and reconcile with upstream changes

Acceptance Criteria

[ ] Indexers overrides are reconciled with upstream changes

NOTES
ref: GBH

No indexer overrides found


Location card address element

Let's swap the address element for something more generic since this is being used for external addresses.
Demo: http://jdrf.github.io/design-system/dist/components.html#cards
Address Ref: http://html5doctor.com/the-address-element/

@briansaycocie Both PRs look good to merge on my end. Waiting on any input from @fuhton as well and if none, we can get this merged in Monday.

Merged and reviewed. Closing.


Stop shipping the pods in the example project

There's a lot of diff when we edit the example project. We can instead generate the project and have the CI attempt to build and run the pods.

Hi @rockbruno, by generate the project, do you mean to use a tool like XcodeGen, or do you mean to create the project once and just hook it up in a way so that pods are being built by the CI?

Hey @ffittschen ! Yeah I mean something like XcodeGen, although in this case I think it's possible to do it with Swift Package Manager.

Cool, I'll create a PR tomorrow with XcodeGen, as I couldn't find a way to have application targets in a Package.swift – I saw the individual targets of the example, but no executable I could actually run on iOS.


🚀 Feature: Fetch GitHub repository collaborators and teams access roles to use for Backstage access permissions

🔖 Feature description
Collaborator and team access roles that are set on organization-owned GitHub repositories should be reflected in the read, write, create, delete permissions of entities that come from those repositories when authenticated by a GitHub App in Backstage.
🎤 Context
We are using a GitHub App and OAuth App for authentication and discovery to view and create organization-owned repositories in Backstage. It's possible to register collaborators when creating new GitHub repositories from a scaffolding template but there's no way to access that collaborator information once the repository is registered as an entity in Backstage. We would like to use the collaborators' access roles (default Read, Triage, Write, Maintain, Admin) set on our GitHub repositories on Backstage by default rather than having to either call the GitHub API on every page read to fetch repository collaborators and match them to GitHub groups automatically imported into Backstage or manually having to add those collaborators already set on GitHub to each catalog-info using dependsOn or other spec.
GitHub repository roles docs: https://docs.github.com/en/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/repository-roles-for-an-organization
✌ Possible Implementation
Here is an example of the implementation of this feature.
GitHub Repository Sample-Repo has the following teams set as collaborators:
Team 1 has "Maintain"
Team 2 has "Admin"
Team 3 has "Read"
Team 4 is not set as a collaborator on this repository
Since Teams 1, 2, and 3 are set as collaborators on the repository, they should all have read access to all entities (components, apis, etc) that come from Sample-Repo. Teams 1 and 2 should also have write access being Maintainers and Administrators. Since Team 4 is not set as a collaborator on this repository, entities from Sample-Repo should not be visible or accessible in the catalog.
👀 Have you spent some time to check if this feature request has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Are you willing to submit PR?
No, I don't have time to work on this right now

Hi @goodman-anne, thank you for opening the issue 🙌🏻
Our recommendation is to create a plugin module in the community-plugins repo or on another external repo as this is a very specific policy. Here is the our "modules" documentation for anyone interested in contributing. We're happy to provide feedback in a pull request 🙂:
https://backstage.io/docs/backend-system/building-plugins-and-modules/index#modules

@camilaibs
Thanks so much for the reply! A plugin module seems to be the way to go then.
I'm so sorry for the rudimentary question but I'm not very familiar with Backstage. In our case if we are trying to control permissions over entities in the catalog based on GitHub collaborators, would the plugin module extend the catalog backend like @backstage/catalog-backend-module-github or would it be from auth and we'd have to create some sort of custom resolver like https://github.com/backstage/backstage/issues/23829?

@goodman-anne most likely it would primarily be an integration with the permission system. I think a good starting point might be to explore how this was been implemented to forward permission decisions to OPA in https://github.com/Parsifal-M/backstage-opa-plugins?tab=readme-ov-file#plugins

@Rugvip thanks for the link! I'll check out these OPA docs and try to figure out how to make something like this work with the GitHub authentication already integrated in our backend. If you happen to think of any other similar implementations, I'm all ears.

I'm currently developing a plugin like this for @primait, I think that we'd be interested in publishing it to the community-plugins. No promises/ETA yet though

I don't have the time to open source our plugin at this time, but I can share our permission policy and give a quick overview of how we implemented it. Do note that I wouldn't call this a good implementation, but the best I could come up with at the time, while still learning how to use backstage.
class CustomPermissionPolicy implements PermissionPolicy {
  auth: AuthService;
  discovery: DiscoveryApi;

  constructor(auth: AuthService, discovery: DiscoveryApi) {
    this.auth = auth;
    this.discovery = discovery;
  }

  async handle(
    request: PolicyQuery,
    user: PolicyQueryUser,
  ): Promise<PolicyDecision> {
    if (isResourcePermission(request.permission, 'catalog-entity')) {
      const repos = githubID ? await this.getRepos(user.info.userEntityRef) : [];
      const rules = repos.map(r =>
        catalogConditions.hasAnnotation({
          annotation: 'github.com/project-slug',
          value: r,
        }),
      );

      return createCatalogConditionalDecision(request.permission, {
        anyOf: [
          catalogConditions.hasAnnotation({
            annotation:
              'access-control-allow-company-wide',
          }),
          // If entity is not annotated allow access by default
          {
            not: catalogConditions.hasAnnotation({
              annotation: 'github.com/project-slug',
            }),
          },
          ...rules,
        ],
      });
    }

    return { result: AuthorizeResult.ALLOW };
  }

The github.com/project-slug annotation is automatically added by the AnnotateScmSlugEntityProcessor. Note that by default this processor does not add that annotaion to every entity Kind
getRepos is a function that returns a list of repos the user has access to. We implement this with a plugin that on schedule calls octokit.rest.repos.listCollaborators on all github repos in our org and stores that data in a database, exposing it via an http API. When fetching we use the github.com/user-login annotation to map users to their github identities.
In an ideal world many improvements could be made, like creating a custom relation like hasGithubAccess between the user and all entities with the github.com/project-slug annotation, but this simple implementation works well.


Update Firefox to 43.0

see https://www.mozilla.org/en-US/firefox/43.0/releasenotes/

Thank you for the contribution. It was merged directly as f669ce9af8a0087d3cfb95e1d0fa450b121f3003 to keep commit history cleaner. Your contribution is still credited to you.


fix(controller): "agent task already running"

Fixes https://github.com/OpenDevin/OpenDevin/issues/1492.
Also fixes: https://github.com/OpenDevin/OpenDevin/issues/1492#issuecomment-2090316167  Will fix in a separate PR

@amanape should be fixed in the new commit!

Model: gpt-3.5-turbo
Agent: CodeActAgent
I can't seem to replicate this behavior every time. But the buttons don't seem react either now. I can't seem to pause, or restart. UI does not change. Anybody else can confirm?

@amanape, this seems to be a much more complex issue that involves the front end. How about i revert the attempted fix for "Current task state not recognized", and starts a separate PR for this? I can reproduce some of the behavior (e.g., reset button doesn't work, pause state propagate to the backend but UI does not change, etc), but I guess this will take more time to figure out.

🤔 this seems like a legit error to me--in what case do we get a START without getting a cancel first?

@rbren There seem to be more issues with the agent actions than appear on the surface. I'm not sure if it was due to recent merges or they were dormant for a while.
For example, I managed to achieve a ValueError: Task (state: TaskState.PAUSED) is not in a state to add user message error than resulted in an unpaused state in the FE and paused state in the BE. This also somehow ended up rendering the <LoadPreviousSessionModal> every message after.
I'll take a peek into the FE later today and see if I can find anything. Worth setting up tests for these too

@rbren This PR basically reverts changes I made at https://github.com/OpenDevin/OpenDevin/pull/1290. The reason I add that assert statement is we had a start_task_or_chat function - later your proposed PR break this down to start_task and some add_user_message function, but we forget to change the assert back :(


BFD for BGP sessions

Is your feature request related to a problem? Please describe.
Roadmap was updated 2 years ago and on last row is information about BFD as additional feature. Do you have some news about that?
Describe the solution you'd like
Implements BFD for BGP sessions.
Describe alternatives you've considered
There is no alternative (except BGP timers if failure happen)
Additional context
BFD for BGP sessions

Unfortunately this hasn't been implemented upstream, so it would require a separate implementation of BFD.. not impossible, but will require some significant work.


[SECURITY] POSTing without token

Hi,
It is not safe for javascript to POST without a CSRF/bearer token, the scripts should accomodate for it. Thank you.

As far as I can tell, the only JS-initiated POST request is equipped with with a non-form Content-type header, so a CSRF is prevented via a CORS Preflight.
See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#preflighted_requests for reference.

Hmm, what I'm trying to point out is that, POSTs can be sent and have an effect without having to load the editor UI first (to get the token).
Of course in the strict sense, the main focus of this library is to demonstrate the editor's capabilities, thus the token can be left to the developer. However, incorporating a token requires modifying the JS files, which creates a fork, not that good for developer experience if we are just looking to utliize this library.
I have coded up the authorization bearer tokens, but it is based on https://github.com/Lt-Mayonesa/wwwsqldesigner. Perhaps another approach is to allow specifying extra XHR headers when instantiating var d = new SQL.Designer();, this way, the token can be passed in and no modification of the JS files is needed.
Hope I'm making sense. Thank you.

Hmm, what I'm trying to point out is that, POSTs can be sent and have an effect without having to load the editor UI first (to get the token).

I see. The issue is not related to the JS app, but rather to the php-mysql backend implementation.
However, the currently provided backend does not perform any kind of authorization (it is literally open to anything), so I see little sense in performing a token validation in this case. Any attacker is free to POST any data to the backend - either via the app itself, or via custom HTTP requests.

I see. The issue is not related to the JS app, but rather to the php-mysql backend implementation.

Yes, I recognize that now. However, the backend alone cannot mitigate the attacks, it requires the JS to "play" its part too.
I can see a clear solution now, there is no need to validate any token, just allow specifying additional XHR headers during instantiation, this way, developers who need the authorization/security won't have to modify the JS files.
If you are open to this, I could file a PR. Thank you.


Required Flags

It would be really nice to have required flags and required arguments.  I'm mostly putting this here as a place holder to discuss although I would be willing to put some work in on this if we can talk about how we would like to implement it.
I was thinking the easiest would just add a new field to the struct called "Required".  Internally we could have some checking and fail if the required flag is not set.
type Flag interface {
    fmt.Stringer
    Required bool
    // Apply Flag settings to the given flag set
    Apply(*flag.FlagSet)
    getName() string
}

func (f *Flag) IsRequired() bool {
  return f.Required
}

+1

:+1:

:+1:

+1

@codegangsta I am going to go against the tide here: if a flag is required, it should be a positional argument. Having required flags in the package promotes this anti-pattern. The suggestion in https://github.com/codegangsta/cli/issues/85#issuecomment-48777510 covers the use case. Perhaps, some helper functions could be added to cover the required use case, as well as cases where certain flags are required when others are set.

I did check comment https://github.com/codegangsta/cli/issues/85#issuecomment-48777510, and for a StringFlag named "comment" I get :
fmt.Printf("comment : %#v\n", c.Generic("comment"))

#run app
./go run main.go
#result
comment : (*flag.stringValue)(0xc20802a9f0)

Is there any other way to check if flag is set ?
I wouldn't mind forking the code, adding 'required

I'd like to see a required flag that either automatically prints the command help when not present or prompts the user for the value.

Also looking for this feature.
As for @stevvooe positional arguments: This becomes unfriendly to the user if there are more than a few required parameters. Imaging a cli app that needs to connect to a database, like psql.  If these were to be positional arguments, then the user would have to remember what order to append these when running the CLI. Using required params has the added benefit of providing labels for the user. This is more user friendly.
ex:
$ psql localhost postgres postgres 5434
vs
$ psql -h localhost -d postgres -U postgres -p 5434

@bwiggs while I concede that this feature has some uses, your example of psql is slightly misleading because there are defaults for all of those flags, i.e. running psql with no args is the same as:
psql -h /var/run/postgresql -d jszwedko -U jszwedko -p 5432 (using my username as an example).
I think, wherever possible, flags with default values are a better approach than required flags, but I can imagine use cases (some of which have been described above) where there are no sensible defaults and the value must be provided by the user.
I'm happy to review any pull request introducing this behavior (see #155 for a possible start).
Thanks!

+1 to required flags

As for @stevvooe positional arguments: This becomes unfriendly to the user if there are more than a few required parameters. Imaging a cli app that needs to connect to a database, like psql.  If these were to be positional arguments, then the user would have to remember what order to append these when running the CLI. Using required params has the added benefit of providing labels for the user. This is more user friendly.

@bwiggs pointed it out, but I wanted to expand on what I said above. psql is a perfect example of great cli design. With no arguments, it does something. username, password, host and port are not required parameters in psql. The only positional parameter is the database and username, which are not required. I can configured my environment or .pgsql such that the correct configuration can be picked up.
There are use cases, such as mutually exclusive parameters. Most of the time, these are just easier to implement directly in the command itself, as there may be a lot of application logic to make that decision and emit the correct error.
My main issue with required options is that we too often see tools like this:
cmd subcmd --path foo

Why should I have to write --path when it could be provided by a positional parameter? One may ask, what about more required parameters? Consider a way to do it with less parameters. I've never enjoyed using a tool with more than 3 required parameters that I enjoyed using. Notice that 3 is well within the bounds of using positional arguments. In tools that require such a ridiculous number of parameters (and they do sometimes), more than half of them tend to be the same on each invocation. At that point, just make a configuration file or pull options from the environment.
Required options just tend to lead to bad CLI design.

+1

+1.
I understand that for many, CLI primarily means a tool used by a single developer on the command line.
However, please consider applications that are deployed using other means yet still take "command line" arguments. My use case is an application that hosts a micro-service with HTTP hooks and connections to databases. I have three required flags:
OPTIONS:
   --port                               REQUIRED <number> port to serve HTTP endpoints
   --redis-host                         REQUIRED <host:port> of Redis DB
   --mysql-dsn                          REQUIRED <user:pass@host/dbname> of MySQL DB

+1
Most CLI libraries for other languages do support required arguments to ease up burden of CLI development and focusing on real added value ;-)
https://commons.apache.org/proper/commons-cli/apidocs/index.html
http://jcommander.org/#Required_and_optional
https://pholser.github.io/jopt-simple/examples.html

+1

+1

My biggest argument in favor of this feature is that sometimes a command or subcommand may require many inputs. Allowing these inputs to be provided as the values of flags (as opposed to arguments) has a benefit in that no one needs to be aware of or honor a specific order in which they are entered. If one were to use flags in this manner, it follows that one would want the ability to define a flag as required.
+1

Agreed, #155 attempts to address this, but I haven't had the time to circle back around to finish the remaining issues with it.

+1

Github needs a way to put an unstar to project. Lack of --required and further opposition to this option deserves to be downvoted.

@sirkon This software is provided for free for yours (and everyone else's) benefit. There is nothing stopping you from contributing to the situation constructively by submitting a PR.

https://github.com/urfave/cli/pull/155
This MR is about to turn 3 years old.  We should organize a party.

❤
I'd love to see this feature added as there appears to be a pretty clear need. I unfortunately don't have the time lately to contribute it myself, but I'm happy to review PRs (I recommend starting from #155).

+1

Oh hi 👋  I just noticed the helpwanted tag! I use this packages quite extensively @ work, and just finished a PR (https://github.com/sirupsen/logrus/pull/977) to a package I use in a similar context. So I'd like to help with this!
I'll start from here https://github.com/urfave/cli/pull/155 👍 Via creating a branch off on the most recent commit, rebasing, and working through the review comments 🔧

I've started on this over here ~> https://github.com/urfave/cli/pull/819 feel free to drop me a comment if there's anything large that I've missed!

If anyone is interested in helping with this, come check out my PR here https://github.com/urfave/cli/pull/819. It's ready for review 👀

FYI for anyone that's only following this GitHub issue - I added this feature to the latest release https://github.com/urfave/cli/releases/tag/v1.21.0

@lynncyrin can we re-open this issue for the v2 branch? :)

@marwan-at-work we'll be bringing v2 up to date "automatically" via merging master into it. Open issues are generally reserved for unique instances of work, that won't happen via other means.
So for instance, there would be a "merge master into v2" issue - but not a "merge feature 1, feature 2, feature 3, ... into v2" set of issues. The idea is that the "merge feature" issues essentially duplicate the "merge master" issue.
So I just updated the V2 release tracker issue (https://github.com/urfave/cli/issues/826) to reflect the fact that nobody is currently working on bringing V2 up to date with master, and that we could use some help with that. If nobody picks it up, I'll work on it after I fix this issue https://github.com/urfave/cli/issues/850.


Link to PingAccess documentation is old version

The link to "Configure PingAccess for Azure AD to protect applications published using Microsoft Azure AD Application Proxy" (https://support.pingidentity.com/s/document-item?bundleId=pingaccess-52&topicId=agents/azure/pa_c_PAAzureSolutionOverview.html) is old (v5.2) and should be updated to the most recent version of the documentation (v6.0), here: https://docs.pingidentity.com/bundle/pingaccess-60/page/jep1564006742933.html
Additionally, the link to "listeners in PingAccess" should be updated from https://docs.pingidentity.com/bundle/pingaccess-52/page/reference/ui/pa_c_Listeners.html to https://docs.pingidentity.com/bundle/pingaccess-60/page/weh1564006737519.html

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

ID: a9dd280a-20a3-d0b7-6591-c38a0b2f3c8e
Version Independent ID: d066ade6-8b55-0b3e-3d13-6988c392e51e
Content: Header-based authentication with PingAccess for Azure AD Application Proxy
Content Source: articles/active-directory/manage-apps/application-proxy-configure-single-sign-on-with-ping-access.md
Service: active-directory
Sub-service: app-mgmt
GitHub Login: @msmimart
Microsoft Alias: celested

@stomilson Thank you for the feedback. This issue is being assigned to the content author to evaluate and update as appropriate.

#reassign:kenwith

@kenwith I agree with these changes so we are pointing to the latest links. It should be simple to swap them out with the suggested links. Thanks.

I have a PR updating header-based auth and it will publish soon and deprecate this article. I will confirm links in the updated article. Thank you for the feedback, it is much appreciated.
#please-close

Since we will be keeping the PingAccess article I updated the link. It will go live when the header-based auth article PR merges.