Linux Kernel

Linux Kernel
Dictionary general meaning - a central or essential part.
Linux is the kernel: the program in the system that allocates the machine's resources to the other programs that you run. The kernel is an essential part of an operating system, but useless by itself; it can only function in the context of a complete operating system. Linux is normally used in combination with the GNU operating system: the whole system is basically GNU with Linux added, or GNU/Linux. All the so-called “Linux” distributions are really distributions of GNU/Linux.
Many users do not understand the difference between the kernel, which is Linux, and the whole system, which they also call “Linux”. The ambiguous use of the name doesn't help people understand. These users often think that Linus Torvalds developed the whole operating system in 1991, with a bit of help.
Programmers generally know that Linux is a kernel. But since they have generally heard the whole system called “Linux” as well, they often envisage a history that would justify naming the whole system after the kernel. For example, many believe that once Linus Torvalds finished writing Linux, the kernel, its users looked around for other free software to go with it, and found that (for no particular reason) most everything necessary to make a Unix-like system was already available.

Objectives:

[ ] Understand Linux

[ ] File system #65
[ ] Startup Process

[ ] Contribute to Linux

Resources

[ ] - https://www.kernel.org

[ ] - https://developer.ibm.com/technologies/linux/articles/l-linux-kernel

[ ] - https://en.wikipedia.org/wiki/Linux_kernel

[ ] - https://en.wikipedia.org/wiki/Linux_startup_process

[ ] - https://www.kernel.org/doc/html/latest/process/howto.html#documentation

[ ] - https://www.collabora.com/news-and-blog/blog/2020/07/14/introduction-to-linux-kernel-initcalls

[ ] - https://kernelnewbies.org/Documentation/Subsystems

[ ] Linux System Programming: Talking Directly to the Kernel and C Library Second Edition

[ ] Understanding the Linux Kernel, Third Edition 3rd Edition by Daniel P. Bovet (Author), Marco Cesati

[ ] Linux Kernel Development 3rd Edition by Robert Love

[ ] Unikernels

[ ] https://google.github.io/security-research/pocs/linux/bleedingtooth/writeup

Interrupts:
Interrupts are a crucial part of how computers process data.
Interrupts are an essential part of how modern CPUs work. For example, every time you press a key on the keyboard, the CPU is interrupted so that the PC can read user input from the keyboard. This happens so quickly that you don't notice any change or impairment in user experience.
Moreover, the keyboard is not the only component that can cause interrupts. In general, there are three types of events that can cause the CPU to interrupt: Hardware interrupts, software interrupts, and exceptions. Before getting into the different types of interrupts, I'll define some terms.
https://opensource.com/article/20/10/linux-kernel-interrupts

Processes
Interrupts:
Interrupts are a crucial part of how computers process data.
Interrupts are an essential part of how modern CPUs work. For example, every time you press a key on the keyboard, the CPU is interrupted so that the PC can read user input from the keyboard. This happens so quickly that you don't notice any change or impairment in user experience.
Moreover, the keyboard is not the only component that can cause interrupts. In general, there are three types of events that can cause the CPU to interrupt: Hardware interrupts, software interrupts, and exceptions. Before getting into the different types of interrupts, I'll define some terms.
https://opensource.com/article/20/10/linux-kernel-interrupts

Processes
Interrupts:
Interrupts are a crucial part of how computers process data.
Interrupts are an essential part of how modern CPUs work. For example, every time you press a key on the keyboard, the CPU is interrupted so that the PC can read user input from the keyboard. This happens so quickly that you don't notice any change or impairment in user experience.
Moreover, the keyboard is not the only component that can cause interrupts. In general, there are three types of events that can cause the CPU to interrupt: Hardware interrupts, software interrupts, and exceptions. Before getting into the different types of interrupts, I'll define some terms.
https://opensource.com/article/20/10/linux-kernel-interrupts

Different Types of Kernels
There are, of course, different ways to build a kernel and architectural considerations when building one from scratch. In general, most kernels fall into one of three types: monolithic, microkernel, and hybrid. Linux is a monolithic kernel while OS X (XNU) and Windows 7 use hybrid kernels. Let’s take a quick tour of the three categories so we can go into more detail later.
Microkernel
A microkernel takes the approach of only managing what it has to: CPU, memory, and IPC. Pretty much everything else in a computer can be seen as an accessory and can be handled in user mode. Microkernels have a advantage of portability because they don’t have to worry if you change your video card or even your operating system so long as the operating system still tries to access the hardware in the same way. Microkernels also have a very small footprint, for both memory and install space, and they tend to be more secure because only specific processes run in user mode which doesn’t have the high permissions as supervisor mode.
Pros
Portability
Small install footprint
Small memory footprint
Security
Cons
Hardware is more abstracted through drivers
Hardware may react slower because drivers are in user mode
Processes have to wait in a queue to get information
Processes can’t get access to other processes without waiting
Monolithic Kernel
Monolithic kernels are the opposite of microkernels because they encompass not only the CPU, memory, and IPC, but they also include things like device drivers, file system management, and system server calls. Monolithic kernels tend to be better at accessing hardware and multitasking because if a program needs to get information from memory or another process running it has a more direct line to access it and doesn’t have to wait in a queue to get things done. This however can cause problems because the more things that run in supervisor mode, the more things that can bring down your system if one doesn’t behave properly.
Pros
More direct access to hardware for programs
Easier for processes to communicate between eachother
If your device is supported, it should work with no additional installations
Processes react faster because there isn’t a queue for processor time
Cons
Large install footprint
Large memory footprint
Less secure because everything runs in supervisor mode
Hybrid Kernel
Hybrid kernels have the ability to pick and choose what they want to run in user mode and what they want to run in supervisor mode. Often times things like device drivers and filesystem I/O will be run in user mode while IPC and server calls will be kept in the supervisor mode. This give the best of both worlds but often will require more work of the hardware manufacturer because all of the driver responsibility is up to them. It also can have some of the latency problems that is inherent with microkernels.
Pros
Developer can pick and choose what runs in user mode and what runs in supervisor mode
Smaller install footprint than monolithic kernel
More flexible than other models
Cons
Can suffer from same process lag as microkernel
Device drivers need to be managed by user (typically)
Where Are the Linux Kernel Files?

The kernel file, in Ubuntu, is stored in your /boot folder and is called vmlinuz-version. The name vmlinuz comes from the unix world where they used to call their kernels simply “unix” back in the 60’s so Linux started calling their kernel “linux” when it was first developed in the 90’s.
When virtual memory was developed for easier multitasking abilities, “vm” was put at the front of the file to show that the kernel supports virtual memory. For a while the Linux kernel was called vmlinux, but the kernel grew too large to fit in the available boot memory so the kernel image was compressed and the ending x was changed to a z to show it was compressed with zlib compression. This same compression isn’t always used, often replaced with LZMA or BZIP2, and some kernels are simply called zImage.
The version numbering will be in the format A.B.C.D where A.B will probably be 2.6, C will be your version, and D indicates your patches or fixes.

In the /boot folder there will also be other very important files called initrd.img-version, system.map-version, and config-version. The initrd file is used as a small RAM disk that extracts and executes the actual kernel file. The system.map file is used for memory management before the kernel fully loads, and the config file tells the kernel what options and modules to load into the kernel image when the it is being compiled.
Linux Kernel Architecture
Because the Linux kernel is monolithic, it has the largest footprint and the most complexity over the other types of kernels. This was a design feature which was under quite a bit of debate in the early days of Linux and still carries some of the same design flaws that monolithic kernels are inherent to have.
One thing that the Linux kernel developers did to get around these flaws was to make kernel modules that could be loaded and unloaded at runtime, meaning you can add or remove features of your kernel on the fly. This can go beyond just adding hardware functionality to the kernel, by including modules that run server processes, like low level virtualization, but it can also allow the entire kernel to be replaced without needing to reboot your computer in some instances.
Imagine if you could upgrade to a Windows service pack without ever needing to reboot…

What if Windows had every driver available already installed and you just had to turn on the drivers you needed? That is essentially what kernel modules do for Linux. Kernel modules, also known as a loadable kernel module (LKM), are essential to keeping the kernel functioning with all of your hardware without consuming all of your available memory.
A module typically adds functionality to the base kernel for things like devices, file systems, and system calls. LKMs have the file extension .ko and are typically stored in the /lib/modules directory. Because of their modular nature you can easily customize your kernel by setting modules to load, or not load, during startup with the menuconfig command or by editing your /boot/config file, or you can load and unload modules on the fly with the modprobe command.
Third party and closed source modules are available in some distributions, like Ubuntu, and may not be installed by default because the source code for the modules is not available. The developer of the software (i.e. nVidia, ATI, among others) do not provide the source code but rather they build their own modules and compile the needed .ko files for distribution. While these modules are free as in beer, they are not free as in speech and thus are not included by some distributions because the maintainers feel it “taints” the kernel by providing non-free software.
A kernel isn’t magic, but it is completely essential to any computer running properly. The Linux kernel is different than OS X and Windows because it includes drivers at the kernel level and makes many things supported “out of the box”. Hopefully you will know a little bit more about how your software and hardware works together and what files you need to boot your computer.
--- Source: https://www.howtogeek.com/howto/31632/what-is-the-linux-kernel-and-what-does-it-do

Where the kernel fits within the OS
To put the kernel in context, you can think of a Linux machine as having 3 layers:
The hardware: The physical machine—the bottom or base of the system, made up of memory (RAM) and the processor or central processing unit (CPU), as well as input/output (I/O) devices such as storage, networking, and graphics. The CPU performs computations and reads from, and writes to, memory.
The Linux kernel: The core of the OS. (See? It’s right in the middle.) It’s software residing in memory that tells the CPU what to do.

User processes: These are the running programs that the kernel manages. User processes are what collectively make up user space. User processes are also known as just processes. The kernel also allows these processes and servers to communicate with each other (known as inter-process communication, or IPC).

Code executed by the system runs on CPUs in 1 of 2 modes: kernel mode or user mode. Code running in the kernel mode has unrestricted access to the hardware, while user mode restricts access to the CPU and memory to the SCI. A similar separation exists for memory (kernel space and user space). These 2 small details form the base for some complicated operations like privilege separation for security, building containers, and virtual machines.
This also means that if a process fails in user mode, the damage is limited and can be recovered by the kernel. However, because of its access to memory and the processor, a kernel process crash can crash the entire system. Since there are safeguards in place and permissions required to cross boundaries, user process crashes usually can’t cause too many problems.

https://www.redhat.com/en/topics/linux/what-is-the-linux-kernel

https://www.kernel.org/doc/html/latest/filesystems/ramfs-rootfs-initramfs.html
What is ramfs?
Ramfs is a very simple filesystem that exports Linux’s disk caching mechanisms (the page cache and dentry cache) as a dynamically resizable RAM-based filesystem.
tmpfs:
One downside of ramfs is you can keep writing data into it until you fill up all memory, and the VM can’t free it because the VM thinks that files should get written to backing store (rather than swap space), but ramfs hasn’t got any backing store. Because of this, only root (or a trusted user) should be allowed write access to a ramfs mount.
A ramfs derivative called tmpfs was created to add size limits, and the ability to write the data to swap space. Normal users can be allowed write access to tmpfs mounts.
What is rootfs?
Rootfs is a special instance of ramfs (or tmpfs, if that’s enabled), which is always present in 2.6 systems. You can’t unmount rootfs for approximately the same reason you can’t kill the init process; rather than having special code to check for and handle an empty list, it’s smaller and simpler for the kernel to just make sure certain lists can’t become empty.
Most systems just mount another filesystem over rootfs and ignore it. The amount of space an empty instance of ramfs takes up is tiny.
If CONFIG_TMPFS is enabled, rootfs will use tmpfs instead of ramfs by default. To force ramfs, add “rootfstype=ramfs” to the kernel command line.
What is initramfs?
All 2.6 Linux kernels contain a gzipped “cpio” format archive, which is extracted into rootfs when the kernel boots up. After extracting, the kernel checks to see if rootfs contains a file “init”, and if so it executes it as PID 1. If found, this init process is responsible for bringing the system the rest of the way up, including locating and mounting the real root device (if any). If rootfs does not contain an init program after the embedded cpio archive is extracted into it, the kernel will fall through to the older code to locate and mount a root partition, then exec some variant of /sbin/init out of that.
https://wiki.ubuntu.com/Initramfs
initrd ( Initial ramdisk)
initrd is a scheme for loading a temporary root file system into memory, which may be used as part of the Linux startup process. initrd and initramfs refer to two different methods of achieving this. Both are commonly used to make preparations before the real root file system can be mounted.
Initramfs
Initramfs is used as the first root filesystem that your machine has access to. It is used for mounting the real rootfs which has all your data. The initramfs carries the modules needed for mounting your rootfs.
Now here is how the initramfs executes. The first process to get control is the init process. The init process procedurally invokes other scripts kept in the initrd. These scripts are kept in the scripts dir in your initramfs. The scripts dir is further divided into the following dirs:
init-top
init-premount
boot-top (your crypt scripts execute here - to ask the user password for eg)
boot-premount
boot
boot-bottom
init-bottom
Here boot is replaced by local or remote depending on whether your rootfs is local or remote. This is the script that actually mounts your rootfs on initramfs/root/. If everything goes right then the boot-bottom, init-bottom scripts are executed sequentially. init then gets the control back and does the following things:
moves the /sys from initramfs to /initramfs/root/sys (in your real rootfs)
moves /proc from initramfs to /initramfs/root/proc
calls run-init to run the real init in your real rootfs kept in /root. run-init does something like chroot to the real rootfs and then executes the init kept in /sbin/ or /bin or whatever user requested as a boot parameter.

init
In Unix-based computer operating systems, init (short for initialization) is the first process started during booting of the computer system. Init is a daemon process that continues running until the system is shut down. It is the direct or indirect ancestor of all other processes and automatically adopts all orphaned processes. Init is started by the kernel during the booting process; a kernel panic will occur if the kernel is unable to start it. Init is typically assigned process identifier 1.
In Unix systems such as System III and System V, the design of init has diverged from the functionality provided by the init in Research Unix and its BSD derivatives. Up until recently, most Linux distributions employed a traditional init that is somewhat compatible with System V, while some distributions such as Slackware use BSD-style startup scripts, and others such as Gentoo have their own customized versions.
Since then, several additional init implementations have been created, attempting to address design limitations in the traditional versions. These include launchd, the Service Management Facility, systemd, Runit and OpenRC.
https://en.wikipedia.org/wiki/Init

Kernel Module

Performance

[ ] https://help.eclipse.org/2021-03/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Freference%2Fref-menu-refactor.htm
[ ] https://perf.wiki.kernel.org/index.php
[ ]


MissingPluginException (MissingPluginException(No implementation found for method resizeOverlay on channel x-slayer/overlay))

Exception is thrown when at the last line of this code -
final status = await FlutterOverlayWindow.isPermissionGranted();

if (status) {
  await FlutterOverlayWindow.showOverlay(
    alignment: OverlayAlignment.bottomCenter,
    overlayTitle: "Call Ended",
    visibility: NotificationVisibility.visibilitySecret,
    overlayContent: "Call ended with $number",
  );

  await FlutterOverlayWindow.resizeOverlay(80, 120);

Working with this dependency -
  flutter_overlay_window:
    git:
      url: https://github.com/X-SLAYER/flutter_overlay_window.git
      ref: FULL_SCREEN

It has the same result on latest pub version

resizeOverlay need to be called from the overlay it self because they have different channels


[DRAFT] Next

Normally, it's not the way to go: But as Betterlockscreen is a mostly single-file project and I need feedback to keep thing working and changes depend each other I did my changes into one PR.

Change declaration of lockargs with "-n" as default because currently we always launch in "non-forking" mode. This makes lockargs also over-writable/extendable in config/hooks. (#188)
Add $dunst_enabled to let user in config (on runtime) determinate if dunst is enabled in current environment (#284)
Improve pre & post-Lock to call user-hooks (#245)
Fixed bug displaying keyboard-layout even when "--show-layout" is not present (#279)
Bugfix for displays set to higher DPI (thanks to @jeffmhubbard - #287)
Migrated suspend-command to config for easier adjustments (#137, #174)

Fixed the open points and shellcheck errors, to get these changes merged/released :)


Running on your own data

Hi there,
I haven't tested this repo yet, but I presume it would be something along the lines of just respecifying the number of classes and images, as well as your directory to images? I've not seen the model up on Tensorflow Hub yet, any ideas would be great!

I tried running this on my own data, but somehow it is just predicting a single class as the output. Any tips to debug this issue? (I have already tried playing around with the activation functions in the final and intermediate layers, and I am using one other dense layer over and above the nfnet model defined in nfnet.py)


the lyrics doesn't sync with the song nor there was the full song's lyrics, i would appreciate if you can fix that, and thanks for your amazing work

🧐 Have you read the FAQ and viewed similar issues?

[X] I have read the FAQ
[X] I have checked older issues, open and closed
[X] I did a clean install of SpotX as described in the FAQ

Сountry of your account
Algeria
What is your Spotify Plan?
Free
Do you have Spicetify installed?
Yes
ℹ Computer information
- Spotify: <IP_ADDRESS>9
- Windows: 10
- PowerShell: idk

📝 Description

...
📸 Screenshots
No response

duplicate #593


after installing, PATH modification doesn't persist in Mac OS X Yosemite

The first time I install nvm on my macbook it seems to work fine: I see the addition to my .bash_profile and my modified PATH. But if I open a new Terminal tab it seems that my PATH was somehow reverted to before NVM changed it. I'm running Yosemite 10.10.3.
Here's how I installed nvm:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | bash
nvm install 0.10
echo $PATH (works)
nvm current (works)
Open a new tab...
echo $PATH (no longer contains /Users/me/.nvm/v0.10.38/bin)
nvm current (says 'none')
Of course I can modify my PATH manually and whatnot, it's just kinda misleading because the install seems to have done this step for me, until I logout and node is no longer found. :o

This is non-intrusive by design. nvm alias default 0.10 will set it as the default for future shell sessions.
Either way, you'd never modify your PATH manually - nvm use 0.10 will use 0.10 for that shell session.

Ohh ok, sorry, I just figured that npm install would basically run alias behind the scenes - imo it's odd/confusing that by default future ssh sessions have no node configured.

That's true. I've considered changing that behavior in an upcoming version.

Cool, anyway thanks!

Keep in mind I designed nvm back in the early days of node when things were much more unstable than today.  Back then it didn't make sense to make anything default and I wanted to be as non-intrusive as possible.
If there is now a sane default node version, I'm fine with making an alias to that the default behavior. (though the recent io.js split and merger made things a little unstable)

My thinking is that whatever the first installed node version would automatically become the default, only if no default or nvmrc version is specified - since that seems to be the expected behavior from most users.

@ljharb Good point! I forgot to consider that nvm install will likely be run several times. If there were some way to check whether any version at all is installed, maybe then install could call alias instead of use after it installs node? I'm new to nvm so I'm not sure my use case is "most users" but maybe "most new users" at least. :)


Updated style linting to remove deprecations and a subset of typings …

…to remove deprecations.
Small updates to stay a little more current. I attempted to update the react typings, but had too many issues.

@cramhead thanks for the contribution.
However I'm not keen on the other changes for a few reasons:

You appear to have moved all the unit tests into a tests folder - this is not our practice at Rangle. We believe that all parts of a component should be co-located with it, including its unit tests.
I don't understand the reason for changing the unit tests to run on post-transpiled code - this makes coverage reports harder to understand.
The value of 'feature based layout' with redux is still something we're discussing internally and so far we're not sold on it.

Feature based layout is a natural fit for MVC. However one of the main strengths of redux is that it decouples state and actions from your UI.  In effect, in the general case, there's no such thing as a feature based reducer or feature based actions.
I can see a feature based layout making sense at the container and component level. I imagine a feature based folder containing:

the page container
any presentational components that are specific to that page (there should be relatively few of these)
reselectors for projects using re-select.

However I'm not convinced that it should include any of the following:

general-purpose presentational components (which should be most of the UI code)
reducers
action creators
sagas.

Items 5-7 in particular are best decoupled from the UI layer, of only to allow you to properly normalize your store and tune API calls towards network efficiency.

Sorry I didn't didn't realize the PR included anything more than the syntax lint stuff. The rest was just me experimenting with a different approach. Although, it great to have some of elements collocated, i.e. Constants, actions, and reducers, I think the developer losses many valuable insights. Valuable things like an overview of all action types and each reducer having complete control over is sub tree of state. Pluggable features would need to have isolated state trees to avoid a nightmare.
Sorry about the mistaken PR.


[DBZ-PGYB] Modify MBean regex to scrape proper metrics

Changes:

Providing JMX Exporter jar to KAFKA_OPTS to be further provided to java options.
Modifying metrics.yaml to include correct regex to be scraped as per Postgres connector.

Is there dependency on where the kafka connect worker will run?


User-Agent for TNS

Dear TNS group/bot owner.
We refer you to the following Newsfeed that was posted just now:
“User-Agent string must be provided to all scripted TNS requests”
Please make sure to add the User-Agent tns_marker json string to all your requests (API, curl, wget etc...) against the TNS.
Note that we made the required string available for copying/pasting on both your My Account page and the Bots' edit pages.
Examples are provided on both the Newsfeed post and on the Help page.
Do let us know if you have any questions.
Kind regards,
The TNS team.

https://www.wis-tns.org/content/tns-newsfeed#comment-wrapper-23710
Important notice: Please act before May 23rd!
As part of the efforts to control the traffic and the external bots that communicate with the TNS,
we ask that you provide a specific User-Agent string to all request headers that are being submitted to the TNS.
This includes both the calls within your API scripts and any curl/wget commands you might be using to access the TNS.
The User-Agent string you should provide is a small json of the following format, with either a bot or user details:
tns_marker{"tns_id":YOUR_BOT_ID, "type": "bot", "name":"YOUR_BOT_NAME"}
tns_marker{"tns_id":YOUR_USER_ID,"type": "bot", "name":"YOUR_USER_NAME"}
The specific user or bot details you should specify are already available for copying/pasting on your My Account page or the Bots' edit pages (section "User-Agent Specification").
It is certainly possible and also encouraged to include your Browser's UA string, on top of the tns_marker json string.
The revised sample codes, both python and php, will be available on the help page, as well as the example curl commands for using the APIs or downloading csv's.
e.g. for downloading the daily TNS objects csv:
curl -X POST -H 'user-agent: tns_marker{"tns_id":YOUR_BOT_ID,"type": "bot", "name":"YOUR_BOT_NAME"}' -d 'api_key=YOUR_API_KEY' https://www.wis-tns.org/system/files/tns_public_objects/tns_public_objec... > tns_public_objects_20210509.csv.zip
or with wget:
wget -U 'tns_marker{"tns_id":YOUR_BOT_ID,"type": "bot", "name":"YOUR_BOT_NAME"}' --post-data='api_key=YOUR_API_KEY' https://www.wis-tns.org/system/files/tns_public_objects/tns_public_objec...
Please note that from May 23 onwards, the scripted requests to the TNS may return an https error if failing to provide a User-Agent string.
Feel free to contact us if you have any questions on this issue.
The TNS team.

Dear TNS user (sorry if you've received this message twice - a separate email was sent to all Bot/Group owners).
This is a reminder to add the User-Agent header to all your scripted TNS requests, following the Newsfeed that was posted on May 11th:
“User-Agent string must be provided to all scripted TNS requests”
Please make sure to implement this ASAP, and before May 30 at the latest (we've extended the deadline by one week). There will not be an additional notice.
Failing to do so will cause your requests (All APIs, including the bulk AT/Classification reports, and any curl/wget requests etc...) to be rejected.
As mentioned, note that the required User-Agent json string is available for copying/pasting on both your My Account page and the Bots' edit pages.
Examples are provided on both the Newsfeed post and on the Help page. The Python/PHP sample codes now include this addition.
We apologise for any inconvenience, but this is required in order to activate important security layers.
Do let us know if you have any questions.
Kind regards,
The TNS team.

(I hope bot id is not a private information)
tns_marker{"tns_id":87994,"type": "bot", "name":"SNAD_bot"}


Relax elixir version dependency to >= 1.10

@fuelen! Already loving this project; it's making psql tuning and debugging a far nicer experience, especially where UUIDs are concerned.
This PR relaxes the elixir dependency for the project to allow for versions greater than or equal to 1.10, as it does not appear to depend on any of the new APIs in 1.12, but was logging a version warning on a project.
I tested that I was able to build the package using 10.10.2 and 10.12.3, but we may be able to go further back than 10.10, if that's desired. Thanks again for a great library!

Thank you! :heart:

@vanderhoop published v0.1.1


CoreLocation API?

Anyone consider to make CoreLocation API available in React Native?
so, we can use iBeacon and other things..

I don't think that anyone is working on it at the moment, would be nice if you could take a stab at it :)

We have geolocation support from CoreLocation (check out GeolocationExample.js), but not beacon support.

Thanks, I will try it out :)

@lenage - Looking forward to seeing what you come up with! Let us know on irc when you have something. Can you close this issue now?

Yes, i'm closing it :)

I've also been playing around with this FYI. Might have something in a few days...

Been looking toward this also. Let me know if you get to something :) +1

If you're looking for beacon support specifically, here's something I've been working on: https://github.com/geniuxconsulting/react-native-ibeacon

@frostney - awesome! can you submit a PR to add that to https://github.com/ericvicenti/react-native-community ?


Textfield Icon Position

Is your feature request related to a problem? Please describe.
While using the TextField Input from your repository i figured it there is right now only a way to display the Icon on the left side.

Describe the solution you'd like
I would like to introduce an optional parameter which sets the position of the Icon on the "left/right" side.
Additional context
Add any other context or screenshots about the feature request here.

I like this idea. It should be pretty easy to implement.
Once the TextInput's base style is flex, we can probably just change the order of the elements based on the given property.
https://github.com/themesberg/flowbite-react/blob/dadd5b9c2a9298281a56bc85ce8e47319c941da2/src/lib/theme/default.ts#L384

So, @myasteiner, in this case, we can have two "addon" per field, right? So it would be something like:
<TextInput rightIcon={<MyRightIcon />} leftIcon={<MyLeftIcon /> ... />

Let me ask another thing... Do we want to somehow interact with those add-ons? By clicking or something?
<TextInput rightIcon={<MyRightIcon onClick={doSomething} />} leftIcon={<MyLeftIcon /> ... />

I created a draft PR for this one, still gotta do some tests, so it doesn't crash anything else, but should be easy like this to implement.
Might be something for you to consider to refactor in a future approach to make it easier and more generic

Added some examples to the docs and tested it so far :)
@rluders


Web Component:- Locale Modal:- There is no space between geo cards on locale modal

Issue Description:- In locale modal components there is no spacing between geo cards.
Steps to reproduce the issue

Enter url in the browser.
Select 'Locale Modal' component.
Observe if there is spacing between cards.

OS:- Win 10, Mac, iOS 12, 13 Android 8,9
Browsers:- Chrome, Safari, Firefox, Edge, UC
URL:- http://ibmdotcom-web-components-canary.mybluemix.net/?path=/story/components-locale-modal--default

Added blocker https://github.com/carbon-design-system/ibm-dotcom-library/issues/3482 to this issue, as that should resolve the issue with the styling.
@RobertaJHahn Moving this to the next release.
cc: @ariellalgilmore

airtable updated.


agg.median ignores the scope origin

Steps to reproduce

Using the tutorial right after creating the cube:
m["works"] = tt.agg.sum(m["Amount.MEAN"], scope=tt.scope.origin(lvl["Sale ID"]))
m["works"]._required_levels # ['Sale ID@Sale ID@Hierarchies']

m["does not work"] = tt.agg.median(m["Amount.MEAN"], scope=tt.scope.origin(lvl["Sale ID"]))
m["does not work"]._required_levels # []

Environment

atoti: 0.4.1
Python: 3.8.3
Operating System: linux

These functions are also impacted: var, std, quantile. There may be others.

I don't think this is an issue. It's normal that median does not have a required level since it's a full aggregation.
I'm actually surprised that sum does. It's probably a bug with th _required_levels attributes (likely ignores transmits = false)

Yes I got surprised by the difference between the required levels but the aggregation works correctly, taking the scope into account.

NamedMeasure._required_levels no longer return the levels if they are not transmitted.


Add arbitrary data to generated package.json

Add some way to include JSON data that will be merged into the generated package.json. This could be something like merging fields from the local package.json or taking JSON data from a command.
Related to #60

Done & done.


option for memory use limits or limits for number of keys

Can you add option for memory use limits or limits for number of keys?

Is this related to #2371 ?

This is not related to #2371 . I would just like to be able to limit memory use.

@grimnight Yes this is not related.
A couple of questions come to mind for a feature like this. When memory usage limits are reached how should etcd handle new writes? Expiring TTLs -- should we let them expire and risk losing data?

+9000 to main memory limits, it's a common concept in most databases and I was puzzled that it wasn't configurable in etcd. I'd prefer having etcd swap to disk when it hits the limit, if that's not possible, flip to read-only and spam the logs with memory limit reached for each write. Just my 2c.

Any update on this? Currently etcd2 use 90M or 18% of my memory (512MB Digital Ocean node)

@klausenbusk What is the problem with 90M memory usage?

@xiang90 It a large portion of the memory, when the nodes is only 512MB. Before I restarted etcd it was 136MB, I was testing something.

@klausenbusk If you want to limit the memory usage, you can always limit the number of keys yourself; we can set a hard limit too to avoid you adding more keys into etcd. However etcd will keep ALL data in memory.

I only have < 30 keys, but I refresh some of them very often. The 3 db nodes alone do around ~ 140 "refresh" every minute, then I also have some other node, but around ~ 200 "refresh" per minute.

@kalabiyau etcd keeps internal history events for watch/replication etc.. Also etcd2 is not memory efficient and it is improved with our new v3 backend.


Introduce simpler withSmartTags in place of the TaggedLogger

The original implementation of TaggedLogger became heavy, stateful and opinionated. We've since reconsidered this approach and instead simplified it greatly to just a function call withSmartTags doing away with all the stateful builders etc.
For this draft PR I have left the tests as similar as possible by introducing a TestTaggedLogger at the bottom allowing them to remain largely unchanged. I wanted to do this to prove the new approach satisfied those tests.
I'll convert these tests over to withSmartTags before merging this PR.

Closing since this was merged in https://github.com/cashapp/misk/commit/8cffeac185c4b16bee379acfd112670656588d36


facedetect: switch to opencv4

Motivation for this change
opencv2 is essentially EOL and has security concerns
No formal tests, so tested this on some images myself.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[x] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Notify maintainers
cc @rycee

Yep, seems to work just fine! Rebased to master in 8361442cf73c13f9d8464a1c403032c63af19355. Thanks for the fix 👍


[Snyk] Upgrade react-native from 0.75.2 to 0.75.3

Snyk has created this PR to upgrade react-native from 0.75.2 to 0.75.3.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 1 version ahead of your current version.

The recommended version was released on 22 days ago.

Issues fixed by the recommended upgrade:

Issue
Score
Exploit Maturity

Cross-site ScriptingSNYK-JS-SEND-7926862
176
No Known Exploit

Cross-site ScriptingSNYK-JS-SERVESTATIC-7926865
176
No Known Exploit

Release notes

Package name: react-native

0.75.3 - 2024-09-11Changed

Infra: Remove resolution and add commander as devDependency for the monorepo (cf7b9b9486 by @ cipolleschi)
CLI: Bump CLI to 14.1.0 (6a08c38263 by @ cipolleschi)

Fixed

TypeScript: Allow readonly array type for transform property (c16defaff2 by @ tjzel)

Android specific

Autolinking: Fix autolinking issues for Pure C++ TurboModules (833c3a2cf5 by @ hsjoberg)
Renderer: Don't use mGapBetweenPaths if not drawing a border (8501b6396b by @ knappam)
Image: Make getUri and isResource open (8c81ffa60a by @ shubhamguptadream11)
RGNP: Remove unnecessary dependency on gradle-tooling-api-builders - serviceOf failure (1067798a7e by @ cortinico)

iOS specific

Infra: Include x86_64 slice when building for visionOS simulator
(05dec917f2 by @ okwasniewski)
Infra: Support bundle install from outside the ios folder using --project-directory (b22970e3cf by @ blakef)
Codegen: Codegen will start looking for codegen-enabled dependencies from the project root. (46d17efa62 by @ dmytrorykun)

Hermes dSYMS:

Debug
Release

You can file issues or pick requests against this release here.

To help you upgrade to this version, you can use the Upgrade Helper ⚛.

View the whole changelog in the CHANGELOG.md file.

0.75.2 - 2024-08-20Added
Android specific

codegen: Add support for handling com.facebook.react.bridge.Dynamic as parameter for TurboModules (45cd81706d by @ cortinico)

Changed
Android specific

ReactRootView: Replaced mLastHeight with mVisibleViewArea.height() since mLastHeight value is not getting updated. For width we are already using mVisibleViewArea.width() (603eb94dd9 by @ shubhamguptadream11)

Removed
iOS specific

RCTBaseTextInputView: UIReturnKeyDefault (26aff664c0 by @ elencho)

Fixed

codegen: scripts require yargs<PHONE_NUMBER> by @ tido64)

Android specific

ImageSource: open for inheritance (02d9979c32 by @ cortinico)

Hermes dSYMS:

Debug
Release

You can file issues or pick requests against this release here.

To help you upgrade to this version, you can use the Upgrade Helper ⚛.

View the whole changelog in the CHANGELOG.md file.

    from react-native GitHub release notes

[!IMPORTANT]

Check the changes in this PR to ensure they won't cause issues with your project.
This PR was automatically created by Snyk using the credentials of a real user.
Max score is 1000. Note that the real score may have changed since the PR was raised.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:

🧐 View latest project report
📜 Customise PR templates
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

Fixed in https://github.com/JairajJangle/react-native-visibility-sensor/commit/65f87ec4bd9932a2710bd2f4b2ee07d1328988de


Kibana not connecting to Elasticsearch with username and password

We tried running the container as
docker run -e ELASTICSEARCH_URL='http://a.b.c.d:9200'
                   -e ELASTICSEARCH_USERNAME='elastic'
                   -e ELASTICSEARCH_PASSWORD='secret!'
                   -p <IP_ADDRESS>:5601:5601 -d kibana:5.2.0

When we browse Kibana UI we see<EMAIL_ADDRESS>   Authentication Exception
we can reach ES by curl directly just fine
$ curl -u elastic:secret! http://a.b.c.d:9200/_cat/indices?v

Inside container variables are set just fine.
$ docker exec <cont name> bash -c 'echo "$ELASTICSEARCH_URL,$ELASTICSEARCH_USERNAME,$ELASTICSEARCH_PASSWORD"'

http://a.b.c.d:9200,elastic,secret!
But if we look at
$ docker exec <cont name> bash -c 'cat /etc/kibana/kibana.yml'

elasticsearch.url: 'http://a.b.c.d:9200' => this is fine
#elasticsearch.username: "user" . => This is not set
#elasticsearch.password: "pass" . => This is not set

This image is officially deprecated in favor of upstream's images (see https://www.elastic.co/guide/en/kibana/current/_pulling_the_image.html).
For more information, please see docker-library/elasticsearch#160, docker-library/docs#842, and docker-library/docs#945.

This image has been deprecated in favor of the official kibana image provided and maintained by elastic.co. The upstream images are available to pull via docker.elastic.co/kibana/kibana:[version] like 5.4.2. The images found here will receive no further updates once the 5.6.0 release is available upstream. Please adjust your usage accordingly.
Elastic provides open-source support for Kibana via the elastic/kibana GitHub repository and the Docker image via the elastic/kibana-docker GitHub repository, as well as community support via its forums.

Thanks!


nuget updates

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+1.8%) to 2.29%

Totals

Change from base Build<PHONE_NUMBER>:
1.8%

Covered Lines:
6

Relevant Lines:
204

💛  - Coveralls


fix f5_key and f5_certificate create methods

should be calling self.content= not content=

This module is based on SOAP and is deprecated. I am closing this PR.


fix for issue #271

fix for issue #271

There is an issue with the dxdx derivative and the arcos function, that has to be fixed before merging.

Will we need to change things back when things are fixed in Pennylane?

I think, no further adjustments are necessary. But we have to wait until the PennyLane issue is fixed to be sure.


Automatic updating via the app doesn't work

Version
1.10.1
Details
I am currently on version, 1.9.13, when I open the app it downloads the new version 1.10.1, I press install, the app closes itself and nothing happens.
When I open the app again, it's still on the same version 1.9.13 and downloading again the update etc. in a loop.
I remember I had this issue on previous release too and I had to clean install the version (manually download and install the new update).
It seems it's the same issue wth this #323, I don't know how @ToxiClay managed to fix it 🤔
I am on Windows 11 with Windows Desktop Runtime 7.0.8 (x64).
Steps to reproduce

Open the app with previous version.
It will automatic download the new version.
Press Install.
Wait...nothing happens.
Open it again.
Same loop.

Hmm, are you sure you're on 1.9.13 and not 1.9.12? Because the latter was the version with the broken auto-update.
Anyway, try going to %localappdata%/Onova/YoutubeDownloader and copy-paste Log.txt (or Onova.log, I forget which way it's called) here.

https://github.com/Tyrrrz/YoutubeDownloader/issues/323
This is coming around again, I see. It happened to me again, too, on the update from 1.9.13 to 1.10.1.

Anyway, try going to %localappdata%/Onova/YoutubeDownloader and copy-paste Log.txt (or Onova.log, I forget which way it's called) here.

Oho. We got 'em, boys.
16-Jul-2023 22:06:39.961> Onova Updater v<IP_ADDRESS> started with the following arguments:
- UpdateeFilePath = C:\Users\Omega\Downloads\YoutubeDownloader\YoutubeDownloader.dll
- PackageContentDirPath = C:\Users\Omega\AppData\Local\Onova\YoutubeDownloader\1.10.1
- RestartUpdatee = True
- RoutedArgs =
16-Jul-2023 22:06:39.964> Waiting for updatee to exit...
16-Jul-2023 22:06:39.965> Copying package contents from storage to the updatee directory...
16-Jul-2023 22:06:40.021> System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\Omega\Downloads\YoutubeDownloader\runtimes\win-x86\native\WebView2Loader.dll'.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
   at Onova.Updater.Utils.DirectoryEx.Copy(String sourceDirPath, String destDirPath, Boolean overwrite)
   at Onova.Updater.Updater.ApplyUpdate()
   at Onova.Updater.Updater.Run()

Here's our trouble:

16-Jul-2023 22:06:40.021> System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\Omega\Downloads\YoutubeDownloader\runtimes\win-x86\native\WebView2Loader.dll'.

Up to and including 1.9.13, that folder was not included in the releases, which caused the auto-update to snap in half.
1.10 and 1.10.1 include that folder, and so, going forward, auto-updates should behave as expected.

Thanks a lot for the logs, I've identified the issue. It's an old (but different from the existing issues) problem that was inadvertently exposed by the recent changes.

As a crude test, can you please replace the Onova.dll file in the app directory with the file from this archive? And then try running the app again and let it update.
Onova.zip


increase the coverage

coverage is currently 27% increase it to at least 80%

I unassigned myself for this issue as discussed previously.


Hello

Hello,
I have reading the source code of the example and it seems you are using a property called "keyEventsEnabled". What is this for? The documentation does not talk about it.
Thank you very much in advance.
Cheers,
Joan

That's to emulate keypress events so you don't have to have access to a physical gamepad; you can use your keyboard.
Yeah, sorry about that; the docs are basically non-existent. When we have time, we will update the docs, or if anyone else wants to, we'd appreciate any help. Thank you!

Thank you very much for your reply.
I think I understand now. First, I thought it was for some platforms that fire keyboard events in their browser when the gamepad is used (as for example Nintendo DSi, Nintendo Wii, many SmartTV's, etc.). But this seems different. Correct me if I am wrong, please.

Yeah, that's correct. I'll keep this issue open (I've retitled the issue so it's properly tracked). Thanks for filing! And, let me know if you have any additional issues.

Thank you very much for all. Maybe I could do the complete documentation if you want but I would need some more information to create it.

Thanks for the offer. By no means should you feel obligated, but feel free to open a PR any time.

That is ok. I will do it if I find some time. Thank you very much. See you!


Add open file feature in chat

Description ✏
Closes https://github.com/trypear/pearai-app/issues/351
by vincent0426
Closes #xxx
What changed? Feel free to be brief.

Bullet points are helpful.
Screenshots are helpful (if applicable).

Checklist ✅

[ ] I have added screenshots (if UI changes are present).
[ ] I have done a self-review of my code.
[ ] I have manually tested my code (if applicable).

from https://github.com/trypear/pearai-submodule-archive/pull/226

Thanks!!

THANKS G @vincent0426 (if u are in the discord lmk ur username! or ping me directly)


Using helm chart, unable to deploy with oauth pre-configured

Description
Using helm: v3.15.3, gitea chart: v10.4.0
The values.yaml file contains:
---
gitea:
  oauth:
    - name: 'gitea-oidc'
      existingSecret: gitea-oidc
      autoDiscoverUrl: 'https://git.fervid.us/.well-known/openid-configuration'

Resulting log in configure-gitea container:
Wait for redis to become avialable...
gitea-redis-cluster-headless.gitea.svc.cluster.local (<IP_ADDRESS>:6379) open
Admin account 'gitea_admin' already exist. Running update to sync password...
gitea_admin's password has been successfully updated!
...password sync done.
no ldap configuration... skipping.
No oauth configuration found with name 'gitea-oidc'. Installing it now...
Command error: auth source is not activated

Deployment stops there. I wasn't able to locate any related issues or locate docs on the topic.
Gitea Version
1.22.1
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Screenshots
No response
Git Version
2.46.0
Operating System
k8s
How are you running Gitea?
Simple helm deployment. existing secret for oauth key/secret.
Database
None

Thanks for this report, as it is about the helm-chart could you open this issue in the helm tracker: https://gitea.com/gitea/helm-chart ?


wallet_market_sell breaking API change

The point of wallet_market_sell command is not having to care whether your order is placed on the bid or ask side of the market.  For absolute prices, you always use the higher-is-better price (0.02 if your order is converting XTS -> USD, 50 if your order is converting USD -> XTS).
However, currently relative prices do not use higher-is-better!  So the API call doesn't meet its purpose and is inconsistent with itself.
This should be fixed, but it is obviously a breaking API change.  Since the command is only live in DVS, breaking API changes should not be too disruptive.  But we want to hold off including wallet_market_sell on mainnet until this is fixed.

@theoreticalbts Do I need to disable this command for BTS 0.6.0? Or is it not necessary since nothing involving relative orders will be made live until 0.7.0 ?

You should either disable it, or incorporate the patch I'm going to have in a few minutes (currently compiling).

On second thought, forget I said that.  The change only affects interpretation of relative order price, so as long as relative orders are disabled, the change won't matter.

On third thought, disable it in 0.6.0 because I still want to tweak the API for regular bid / ask.

Disabled.

Relative orders have been abandoned and the command has never been enabled on mainnet (and it is re-enabled in DevShares now); assuming this can be closed.


string property in multipart/form-data body appears as array in example request

Hello, I think I found a bug in the visualizer.
I have a key property which is supposed to be a string in my  multipart/form-data request body:
info:
  version: "0"
servers:
  - url: https://example.com
openapi: 3.0.3
paths:
  /test:
    post:
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                key:
                  type: string
                  example: Hello World
              required:
                - key

However, the elements library displays the example string as an array instead of a simple string.

Same here.
How should I can send object using StopLight TryIt?


Constrained Optimization - penalty within tell method

I have run some tests and as noted in a previous issue, sometimes the constraint is not taken into consideration in a optimization problem, but with my tests I think i have found a quick hotfix for the problem.
https://drive.google.com/file/d/1tC47DbiA1qYN2m5bZyR_flvflat4Knrc/view?usp=share_link
In this link I show four plots with the same function. The left plots show the result the optimizer gives considering the function (the center is the ideal point except when constrained, which was the case in both simulations). The upper plots show the solution with the modification i am about to discuss and the down plots show the original nevergrad code.
It seems evident for me that the modification has some positive effects on the result given.
For clarification:
function minimized: x1^2+x2^2
constraint applied: max(0, 2-x1)
penalty style = default [1e5, 1, 0.5, 1, 0.5, 1]
algorithms tested: ["NGO",        "NGOpt",        "NGOptBase",        "NGOpt4",        "NGOpt8",        "NGOpt10",
"NGOpt15",        "NGOpt16",        "NGOpt36",        "NGOpt39",   'AvgMetaRecenteringNoHull',    'HullAvgMetaRecentering',    'HullAvgMetaTuneRecentering',    'MetaRecentering',    'MetaTuneRecentering',
"CMandAS2",    "DiscreteDoerrOnePlusOne",    "ChoiceBase",    "CmaFmin2"]
The solution:
Go to nevergrad/optimzation/base.py
In line the tell method definition, change the lines:
if isinstance(loss, float) and (
self.num_objectives == 1 or self.num_objectives > 1 and not self._no_hypervolume
):
self._update_archive_and_bests(candidate, loss)
    if constraint_violation is not None:
        if penalty_style is not None:
            a, b, c, d, e, f = penalty_style
        else:
            a, b, c, d, e, f = (1e5, 1.0, 0.5, 1.0, 0.5, 1.0)

        violation = float(
            (a + np.sum(np.maximum(loss, 0.0)))
            * ((f + self._num_tell) ** e)
            * (b * np.sum(np.maximum(constraint_violation, 0.0) ** c) ** d)
        )
        loss += violation

to:
    if constraint_violation is not None:
        if penalty_style is not None:
            a, b, c, d, e, f = penalty_style
        else:
            a, b, c, d, e, f = (1e5, 1.0, 0.5, 1.0, 0.5, 1.0)

        violation = float(
            (a + np.sum(np.maximum(loss, 0.0)))
            * ((f + self._num_tell) ** e)
            * (b * np.sum(np.maximum(constraint_violation, 0.0) ** c) ** d)
        )
        loss += violation

    if isinstance(loss, float) and (
        self.num_objectives == 1 or self.num_objectives > 1 and not self._no_hypervolume
    ):
        self._update_archive_and_bests(candidate, loss)

basically inverting the order of these operations seems to resolve the problem without damaging other functionalities.

Pull request for this just now.
Makes sense.

0.13.0 merged. Issue presumably solved.


Link to repo from UI?

Seems kind of missing. It'll be nice if it "open source" linked here.

The link to the repo from UI can be found under the chat input.


Add init command to forge

Which component is your feature related to?
Forge
Feature Request
Add a command/flag to forge that will create a new project using https://github.com/foundry-rs/starknet_forge_template
Note: we cannot use snforge init because first argument is used to filter test by their name. Some possible solutions: add a flag like --init, add a separate command like snforge-init, etc.

Should we consider snforge test and snforge init? Command abstraction may be helpful in the future.

Should we consider snforge test and snforge init? Command abstraction may be helpful in the future.

We can discuss it, but I though that not requiring the user to pass any other command after snforge to run tests is quite practical - realistically the user want's to just run tests 99% of the time.


Furnace test reflects black spheres?

Because the number of surface bounces were lowered from 10 to 3 after #354

Fixed in #374


Add release notes to releases

Hi,
It would be great to have release notes, or just git commits messages history for the release, added to the releases publications.
Would better show developers work, project dynamism and help us follow evolution directly in our mail boxes
Thanks in advance
Stay well and cool
TY
J

It's tricky. None of the changes for the latest release are relevant outside of the architecture where we host diagrams.net. It's all logging and back-end changes so when pushed to this repo the release looks kinda pointless.


micro: riscv32_mcu build failed with undefined references

System information

OS Platform and Distribution: Ubuntu 18.04
TensorFlow installed from: source
TensorFlow version: 298534b745db43b2ad18256ed781bd2f142e5bc7
Python version: 2.7.15+/3.6.8
Installed using virtualenv? pip? conda?: pip3

Describe the problem
TF Lite for micro, riscv32 build fails with undefined references.
make -f tensorflow/lite/experimental/micro/tools/make/Makefile TARGET=riscv32_mcu TARGET_ARCH=riscv32 hello_world_bin
/home/ehirdoy/src/tensorflow/tensorflow/lite/experimental/micro/riscv32_mcu/debug_log.cc:18: undefined reference to __wrap_puts' exit.c:(.text.exit+0x2e): undefined reference to __wrap__exit'
sbrkr.c:(.text._sbrk_r+0x12): undefined reference to __wrap__sbrk' writer.c:(.text._write_r+0x16): undefined reference to __wrap__write'
closer.c:(.text._close_r+0x12): undefined reference to __wrap__close' lseekr.c:(.text._lseek_r+0x16): undefined reference to __wrap__lseek'
readr.c:(.text._read_r+0x16): undefined reference to __wrap__read' fstatr.c:(.text._fstat_r+0x14): undefined reference to __wrap__fstat'
isattyr.c:(.text._isatty_r+0x12): undefined reference to `__wrap__isatty'
Provide the exact sequence of commands / steps that you executed before running into the problem
export PATH="$PATH:./tensorflow/lite/experimental/micro/tools/make/downloads/riscv_toolchain/bin"
make -f tensorflow/lite/experimental/micro/tools/make/Makefile clean
make -f tensorflow/lite/experimental/micro/tools/make/Makefile TARGET=riscv32_mcu TARGET_ARCH=riscv32 hello_world_bin
Any other info / logs
make.log

I write patches which fix this bug.
This pull request to fix is  https://github.com/tensorflow/tensorflow/pull/33972
Hi @ehirdoy @Zielasko
Could you have a try of these patches pls? If it works, pls have a support click.
Best,

Thank you for writing a fix @zhoupeng .
I tried to write a workaround in an older version of this repository that let me compile the hello world example and a few examples i have written myself, but they didn't behave correctly.
Using your version lets me compile and successfully run the hello world example on a risc-v simulator with the expected output.
(Using make -f tensorflow/lite/experimental/micro/tools/make/Makefile TARGET=riscv32_mcu hello_world to build the executable)
Unfortunately I still can't build the micro_speech, magic_wand or person_detection examples for
riscv32_mcu.
For the magic_wand example it cant find __wrap_malloc and __wrap_free .
person_detection fails with the error
person_detection section `.bss' will not fit in region `ram'
[...]
section .stack VMA [0000000080003800,0000000080003fff] overlaps section .bss VMA [00000000800002b8,0000000080012d87]
[...]
region `ram' overflowed by 0 bytes

I have yet to test my own models.
Also, trying to build a linux version of the hello world example with the __dso fix gives me this error:
multiple definition of __dso_handle'`

Hi @Zielasko , Thanks for your response. Sorry for late reply, I am not convenient to handle mail in time, because on a travel of RISC-V tech forum.
1)For the .bss' will not fit in region ram error:
Set the MEMORY.ram option with a larger value in the link script can fix.
The ram option is in the link script tensorflow.git/tensorflow/lite/experimental/micro/tools/make/downloads/sifive_fe310_lib/bsp/env/freedom-e300-hifive1/flash.lds.
In my case, I only try to set ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 128K (Maybe 64K or 32K is enough for some examples bug I didn't try)
2)__dso_handle missing problem. Thanks for response, very helpful.
This problem may only exists on non-Linux target (riscv32_mcu,Windows ...), I will submit a new version patch adding target OS check.
Before the new patch, If you try to build a linux version, you can try to comment __dso_handle  by replacing void* __dso_handle;
with // void* __dso_handle;, in tensorflow.git/tensorflow/lite/experimental/micro/arduino/abi.cc,
Hi @nkreeger @gbaned @rockyrhodes, sorry for  late, thanks @nkreeger for your detail review I will submit a new version patch, catching up on this Fridays after my RISC-V tech forum journey.

Closing since the associated PR has been merged. Feel free to reopen if necessary. Thanks!


Pull gradient barriers from file

No need to re-process gradient barriers on a fresh database, load from file.
But it does make sense that the primary Makefile processes everything and other scripts automatically running updates manipulate the process by downloading from file... consider following this pattern in the modelled crossings section too.

processing the gradient barriers 1x on db setup is no big deal. Closing


[BUG] Incompatible bdist_wheel.universal and requires-python behaviors build misleading "py2" package

setuptools version
setuptools==68.1.2
Python version
Python 3.12.3
OS
Ubuntu Linux 24.04
Additional environment information
No response
Description
Packages built with bdist_wheel.universal seem to promote py2 usage even when combined with project.requires-python = ">= 3". Could that be changed to stop implying py2 compatibility and/or have better docs & messaging to clarify how it works?
The option name bdist_wheel.universal sounds pretty generic for something that triggers such arcane behavior, and it's not super clear from docs whether universal is supposed to have any meaning anymore after py2 EOL.
Note: Originally reported at https://github.com/pypa/build/issues/806, was told to report here instead.
Expected behavior
When I build packages that explicitly don't support python 2, I'd like to avoid PyPI saying simultaneously that it's a "Python 2" distribution and that it requires Python 3:
I think that entails removing the "py2" from the wheel filename.
How to Reproduce

Clone https://github.com/insanum/gcalcli/tree/4dabc51664aad65db282668769e85db83a057bb5
Run python -m build
Look at the output filenames and/or a preview of the published project on TestPyPI

Output
From python -m build:
Successfully built gcalcli-4.4.0.tar.gz and gcalcli-4.4.0-py2.py3-none-any.whl

From published https://pypi.org/project/gcalcli/4.4.0/#files:
Built Distribution
gcalcli-4.4.0-py2.py3-none-any.whl (43.2 kB see hashes))
Uploaded about 8 hours ago (Python 2) (Python 3)

Requires: Python >=3.8

Related: #1633 for python_requires handling.

Since setuptools doesn't support Python 3.7 and earlier, would it maybe make sense to deprecate this option and make it a no-op?

That would suit me fine. Possibly a no-op that spits out a warning suggesting to clean up the unused option?
I've removed it from my project configs already, but by now sunk quite some time into understanding what it does after inheriting an old config that still had it set.

@henryiii, I think that is the best thing to do.
In theory someone could try to use that option to package Python code that is compatible with old versions of Python to support old systems, but since Python 2.7 itself reached EoL, that does not make much sense to me.
We can also put a call to action in the warning to contact us if the user needs this option.

Since setuptools doesn't support Python 3.7 and earlier, would it maybe make sense to deprecate this option and make it a no-op?

I should say that when Setuptools dropped support for Python 2, it was dropping support for running under Python 2 but not necessarily dropping support for targeting Python 2. That is, one might build a wheel on Python 3.13 that targets Python 2.7. I note also that Python 2.7 is still supported by PyPy and Jython and IronPython (to the extent that those implementations are supported).
I personally don't have any projects targeting Python 2, although I do still use projects that rely on it (Moneydance uses Jython). I do also have backports that if they ever needed a security fix might need to target Python 2 (seems unlikely at this stage). I would not be surprised if there were other environments out there that still target it.
I think the OP's issue is a case of the user holding it wrong. "universal" means "build me something that works on Python 2 and Python 3". If the user is indicating universal, it should indicate Python 2. I learned this early on when I first released my packages for Python 3 only, but they still had the .py2 designation. At first I was dismayed, but then I realized all I needed to do was remove the universal config from my projects and everything was fine.
By deprecating universal, we're deprecating targeting Python 2, and that seems fine. Users can pull an older setuptools if needed to target Python 2.

I think the OP's issue is a case of the user holding it wrong. "universal" means "build me something that works on Python 2 and Python 3".
…
At first I was dismayed, but then I realized all I needed to do was remove the universal config from my projects and everything was fine.

Yup, I mostly agree with that, just with the misfeature that nothing told me I was doing it wrong or how to do it right. So to close this out, could someone just toss a warning into the build somewhere saying "consider removing universal, conflicts with requires-python"?


Separate Meshery Operator and MeshSync

Tasks

[ ] separate code
[ ] update CI workflow to accommodate

If I am not wrong the pkg directory contains meshsync code & informers right? @kalradev

@leecalcote Is the task one was finished by @kalradev ?
https://github.com/layer5io/meshsync/commit/1a1d5dff736470aad65f8b5ed6ada66e289fdd83#diff-e0ce1a7f3f76d7bfda0ffdae6e0226aa63b3009c4c4a770c321876aecad0a6c1

Code has been added to the Meshsync repo. But we have to remove it from this package.
@kumarabd, where should these files go?

https://github.com/layer5io/meshery-operator/blob/master/pkg/meshsync/controller.go
https://github.com/layer5io/meshery-operator/blob/master/pkg/broker/nats/controller.go

https://github.com/layer5io/meshery-operator/pull/97 - It is solved with this PR. Closing this issue.


Checkout does not allow to register as a customer

Currently checkout process in Sunrise only allows to checkout as a guest or as a registered user. There is no possibility to create a customer account during the checkout process.

Where do you want to add the step to register?
If it should be after the payment step, you could override the method https://commercetools.github.io/commercetools-sunrise-java/javadoc/com/commercetools/sunrise/shoppingcart/checkout/payment/SunriseCheckoutPaymentController.html#handleSuccessfulAction-com.commercetools.sunrise.shoppingcart.checkout.payment.CheckoutPaymentFormData-io.sphere.sdk.carts.Cart-io.sphere.sdk.carts.Cart- to redirect to the register page which can be just a normal Play controller or a custom SunriseFrameworkController.
There is also the possibility to integrate this with the checkout address form, so override com.commercetools.sunrise.shoppingcart.checkout.address.SunriseCheckoutAddressController#getFormDataClass to use your form class with a checkbox to register and override com.commercetools.sunrise.shoppingcart.checkout.address.SunriseCheckoutAddressController#doAction to also save the customer.


[Feature - UI] Show relaunch button in the UI even for currently running executions

Motivation: Why do you think this is important?
In some cases it's desired for users to launch the same LP using different values for a specific input. Currently while the execution is running, the relaunch button is hidden.
Goal: What should the final outcome look like, ideally?
The relaunch button is visible & usable even when the execution is still underway.
Describe alternatives you've considered
Script it, just painful
Flyte component

[ ] Overall
[ ] Flyte Setup and Installation scripts
[ ] Flyte Documentation
[ ] Flyte communication (slack/email etc)
[ ] FlytePropeller
[ ] FlyteIDL (Flyte specification language)
[ ] Flytekit (Python SDK)
[ ] FlyteAdmin (Control Plane service)
[ ] FlytePlugins
[ ] DataCatalog
[ ] FlyteStdlib (common libraries)
[X] FlyteConsole (UI)
[ ] Other

fixed by lyft/flyteconsole#93
Available in flyteconsole v0.11.0


Analyzer CLI ignores analysis_options.yaml in some cases?

analyzer:
 strong-mode: true
 errors:
   unused_element: error
   unused_import: error
   unused_local_variable: error
   dead_code: error

   # Allow importing .template.dart files without an analyzer error.
   uri_has_not_been_generated: ignore

The last line is the important one - AngularDart now has a requirement where users import a generated file in user code, and that breaks when you use the analyzer CLI to analyzer your source base (such as on travis).
I consider this a P1/potential blocker for AngularDart 4x being released externally.

I don't think this has continued to be a problem.


corrected grammar and spelling in README.md

Changes Proposed
I added some missing articles and corrected “NodeJS” to the official spelling “Node.js” ☺
Check List

[x] Added articles

[x] Corrected spelling

[x] The title of my pull request is a short description of the changes

Thank you!


contextMenus permission is not needed

Hi @hasantayyar,
The contentMenus permission is used to offer a "Clear all notifications" option on the badge icon in the menu bar. Without the permission then that option becomes unavailable. The option is something we want to have there, so we do not currently want to remove that permission.
Here's some screenshots to show the feature,
With contextMenus

Without contextMenus

If you do not require this feature and want to disable the permission, you can feel free to fork this repository and manually add a version of the extension without it. All other features should work fine.
Thanks,
Rich


unable to generate user_meta when inviting

Hello, can you advise me with this.
Whenever i try to invite user as team member, it generates the user but doesnt generate user_meta.
it gives me the following message
Exception in UserService.php line 184:
We were unable to generate your profile, please try again later.

Ashish

Did you set your mail_driver to log in your dev env? if your mail settings are not done it will fail to complete the setup

here is my mail driver section
MAIL_DRIVER=log
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

Same thing with user registration as well
Exception in UserService.php line 184:
We were unable to generate your profile, please try again later.

Just go into the user service and dd the error message. It will point you in the right direction.

@mlantz
Thanks for this man.
Conversation with you always teaches me new things.
What actually happened was i had added few fields in the user_meta and they were not set to 'NULL' so they could accept empty records.
Thanks alot.

:) no problem happy to help

hay, @mlantz
Now im getting another exception when i invite user, from the UserController@getInvite
HttpException in Handler.php line 133:
This action is unauthorized.

It's likely an admin action but you're trying to do it with a 'member' level account, review the routes you'll see the permission statements in there

This is my route for this specific action.
Route::group(['prefix' => 'admin', 'namespace' => 'Admin', 'middleware' => 'admin'], function () {
        Route::get('users/invite', 'UserController@getInvite');
        Route::post('users/invite', 'UserController@postInvite');
}

Below is my screenshot of my role_user table

not sure what am i missing :(

Hmmm, I'm not too sure take a look at the log and see if you can find something that would be blocking it, try disabling the middleware temporarily if need be

Were you able to figure out what was wrong?


https:dev starts with wrong proxy

Brief bug description
When starting the app with https:dev and localhost:3000 taken, it creates a wrong HTTPS proxy
What went wrong?
Repro steps
Have localhost:3000 used by another process
Start https:dev
It makes proxy to localhost:3000 but later starts the site on localhost:3002 (or whatever is available)

Expected behavior
The proxy is created to a port that is actually used to run the site
Test environment
Windows

Thank you for the feedback. It seems the Next's npm run dev command tries other ports when the 3000 port is used, but the proxy is hard coded to redirect to the 3000 port.
That being said, I don't think it's worth complicating the command to make it work in this scenario. You can just run the two commands in parallel yourself (npm run dev, npm run https:proxy -- --target 3002). But we will make it clearer in the readme and have the https:dev fail when the port 3000 is in use.


input-bar-modification

Personally I think it looks nicer with the padding of the input box being reduced, (text is closer to the left of the input box now), [change on line 275]. However, there is a vector in the input box which has to be removed so that the letters typed by the user aren't covered by it, [change on lines 265-269].

This is what it would look like after the changes are applied.

This css relies on an incorrect css map. I recommend waiting till its up to date

@harbassan

Hello! @i0pt1mal @harbassan
I agree with you, but the vector does not get removed, so i think there is an issue..

Yeah, I noticed today that it was back.  They changed the name of the vector. Give me a bit to find the new name of it.

For me it was actually there right after the commit, i commented the issue on the commit 7 days ago but no one noticed it, then i switched here.

I'm new to github, so correct me if I'm wrong, but looks like I'll have to create a new pull req. I'll do it soon.

Yeah i think so, my level in css is "0", i tried to find the vector,

Is it this one?

Yeah that's the one, if you want to open a pull req urself then you can patch the user.css. it's around line 270, just take the class and make its opacity 0. That's how I did it anyway.

Done.


Wink Aros Fix

Wink Aros set_operation_mode had a typo.  Corrected and tested locally with an Aros Unit.
  File "/usr/local/lib/python3.5/dist-packages/homeassistant/components/climate/wink.py", line 417, in set_operation_mode
    self.wink.set_operation_mode('auto_eco')
AttributeError: 'WinkAirConditioner' object has no attribute 'set_operation_mode'

Can you also change the test case in api_tests.py line 293 to set_operation_mode. That should fix the error here.

Think I've got those all in.

They should all be combined in to one pull request. Make the changes I mentioned on this branch and just do another git push.

Coverage remained the same at 93.899% when pulling 6f2abca7f372359eb0e990f6c89d7681e15da198 on geekofweek:patch-2 into 788e9e54abb2bdf8587f461ea33bf3d85e4f2edf on python-wink:master.

Ok, think I got it right this time.

:+1:


BUG make sure to specify no openmp for some mac osx builds properly

Codecov Report

Merging #2095 into master will decrease coverage by 0.03%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #2095      +/-   ##
==========================================
- Coverage   30.67%   30.63%   -0.04%
==========================================
  Files          72       72
  Lines        5836     5836
  Branches      583      583
==========================================
- Hits         1790     1788       -2
  Misses       3970     3970
- Partials       76       78       +2

Impacted Files
Coverage Δ

src/objective/regression_obj.cc
89.26% <0%> (-1.13%)
:x:

Continue to review full report at Codecov.

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


Migrate files from /Docs and minor fixes

Signed-off-by: maxwolfs<EMAIL_ADDRESS>

This branch is now built with preview deployment on the gh-pages-staging branch to:
https://docs-staging.scs.community/


How to change the width of the Toast?

Greetings,
react-native, react and native-base version
"native-base": "^2.4.2",
"react": "^16.2.0",
"react-native": "^0.52.3",

Expected behaviour
I would like to make the Width of the toast 100% in ios
Actual behaviour
Width of the toast is 100% in Android whereas in ios ToastContainer is adding 20pt on each side
Screenshot of emulator/device

Is the bug present in both ios and android or in any one of them?
ios
Any other additional info which would help us debug the issue quicker.
ToastContainer.js
getToastStyle() {
return {
position: "absolute",
opacity: this.state.fadeAnim,
width: "100%",
elevation: 9,
paddingHorizontal: Platform.OS === "ios" ? 20 : 0,
top: this.state.position === "top" ? this.getTop() : undefined,
bottom: this.state.position === "bottom" ? this.getTop() : undefined
};
}

@rajgour Well this is not bug!
NativeBase Toast is as per design guidelines, hence takes complete width for Android and not for iOS
You can go ahead customizing NativeBase components as per your project requirement.
To have full width Toast for iOS, you need to modify this line: https://github.com/GeekyAnts/NativeBase/blob/master/src/basic/ToastContainer.js#L29
This is will result in Toast with some borderRadius. To have Toast similar to Android, you can set borderRadius to zero here: https://github.com/GeekyAnts/NativeBase/blob/master/src/theme/components/Toast.js#L17

Is there a way to customize it with variables? I don't see the ToastContainer.js in the components. Can you give me an example?

@rajgour

As I said previously,

NativeBase Toast is as per design guidelines, hence takes complete width for Android and not for iOS

Hence no readily available variables in this case.

I don't see the ToastContainer.js in the components.

Check links shared in previous comment.

I can make changes to make it more customizable by adding props.

Yes you can fork it to have your type of component


fix: common fields rule (#747)

Related to #714
Fixes #747

Codecov Report

Merging #750 into master will decrease coverage by 0.11%.
The diff coverage is 69.69%.

@@             Coverage Diff              @@
##             master     #750      +/-   ##
============================================
- Coverage     86.43%   86.31%   -0.12%
- Complexity      954      964      +10
============================================
  Files           167      167
  Lines          2573     2580       +7
  Branches        348      354       +6
============================================
+ Hits           2224     2227       +3
+ Misses          187      186       -1
- Partials        162      167       +5

Impacted Files
Coverage Δ
Complexity Δ

...ver/src/main/java/de/zalando/zally/rule/Context.kt
79.16% <66.66%> (ø)
16 <4> (ø)
:arrow_down:

...zalando/zally/rule/zalando/CommonFieldTypesRule.kt
73.07% <70.83%> (-21.66%)
23 <21> (+9)

.../de/zalando/zally/util/ast/MethodCallRecorder.java
78.48% <0%> (+2.53%)
27% <0%> (+1%)
:arrow_up:

Continue to review full report at Codecov.

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

Now, the rule also checks all the nested properties recursively. @tkrop please have another look

:+1:


Multiparty DM state incorrect

Describe the bug, optionally with screenshots
Multiparty DM shows one member both as joined and as being pending twice. The member in the mixed state was the last to join the DM.
https://drive.google.com/file/d/1tUd-rfNwMZVSHEsQksQwiZWDIf_BhtbI/view?usp=sharing

Duplicate of #2408, @arthyn will be in touch to debug 1:1


Failed to get crumb, status 404, statusText: Not Found

Bug Report
Describe the bug
I'm receiving the Failed to get crumb, status 404, statusText: Not Found error when calling quote on any symbol.

Minimal Reproduction
await yahooFinance.quote('AAPL')
Environment
Browser or Node: Node
Node version: 20.15.1
Npm version: 10.8.3
Library version : 2.13.2
Additional Context
This started yesterday evening, and it's only happening on a server that's running on render. It works fine when running the code locally.
I updated the library to the latest version but the issue still persists.

Update: It got fixed by itself one day later. Still not sure if it's stable.


A plain repository could have push mirrors

Push mirrors could be added to a plain repository but not only pull mirror repositories.

This has been implemented.


[bug report ]  Can not import local data on NEO/USDT BINANCE

Note: for support questions, please join our Discord server

I'm submitting a ...
[ ] bug report

Action taken (what you did)
I have try to import the local data but there is bugs when running this processs. Further more, i have added my binance key and secret key too

Actual result (unexpected outcome)
This is the error on server:

N:\WorkingCodes\trading_bot\gekko\exchanges\binance.js:35
  if (!error || !error.message.match(recoverableErrors)) {
                               ^

TypeError: Cannot read property 'match' of undefined
    at Trader.retry (N:\WorkingCodes\trading_bot\gekko\exchanges\binance.js:35:32)
    at Trader.bound [as retry] (N:\WorkingCodes\trading_bot\gekko\node_modules\lodash\dist\lodash.js:729:21)
    at Trader.process (N:\WorkingCodes\trading_bot\gekko\exchanges\binance.js:70:19)
    at bound (N:\WorkingCodes\trading_bot\gekko\node_modules\lodash\dist\lodash.js:729:21)
    at Request.request [as _callback] (N:\WorkingCodes\trading_bot\gekko\node_modules\binance\lib\rest.js:52:21)
    at Request.self.callback (N:\WorkingCodes\trading_bot\gekko\node_modules\request\request.js:188:22)
    at emitTwo (events.js:126:13)
    at Request.emit (events.js:214:7)
    at Request.<anonymous> (N:\WorkingCodes\trading_bot\gekko\node_modules\request\request.js:1171:10)
    at emitOne (events.js:116:13)
RECEIVED ERROR IN IMPORT<PHONE_NUMBER>67971
Child process has died.

Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, etc)
I am running gekko on window 10 x64 and followed the guide on gekko document, everything just fine till i try to import local data to do backtest.

Binance recently change their API, check #1568 for the fix.


raise not found error on DELETE of authentications

DELETE /api/authentications/:id should raise a not found for invalid authentications. It is currently sending back a 204 as if it's a success due to the catching of the exception and returning it as an action result.
This is inconsistent with other areas of the API where DELETE returns a not found for invalid records.
BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1476869
@miq-bot add_label bug, api
@miq-bot assign @abellotti

hmm, for action returns signatures, don't we always return that signature ?  i.e. if the 4th out of 10 resources in a bulk operation does not exist do we return a not found for the whole lot or just the 4th resource (i.e. as it is done now)

@abellotti this isn't for bulk operations, it's just for DELETE. Bulk operations will remain the same, which is just returning the action response. But for DELETE it is acting as if the resource was found due to the action response, which it is not, and this change corrects that.