Raw advertising data

Hi,
Is it possible to use an ESP32 to scan and gather raw advertising data?

I would like to store this raw BLE advertising data in a database.
The data is from a Air Mentor Pro and contains PM2.5,PM10,CO2,TVOC, TEMP and humidity data.
Is there an example program to scan for raw data? or should i switch over to esp idf?
Kindly regards Han

Lets start from a joke:
https://github.com/nkolban/esp32-snippets/tree/master/BLE/scanner
I think its oldest ble code that mr. Neil posted.
Now more serious. With this example and few more lines of code you have all you need:
https://github.com/nkolban/esp32-snippets/blob/master/cpp_utils/tests/BLETests/SampleScan.cpp
I thought its done, but it requires to add few more lines here:
https://github.com/nkolban/esp32-snippets/blob/master/cpp_utils/BLEAdvertisedDevice.cpp#L237

Sorry to ask i am quite new to the ESP board, but it seams that you use the ESP IDF environment to write code for the board and net like me the Arduino IDE.
Wat is by the way the best environment to write code for the ESP8266 and the ESP32 including all kind of sensors?
regards Han

From my point of view both are good. And arduino can library for less common sensors. I will make required changes so you can get and use raw advertising data, i already have it was required for my other (abandoned) project, i just need to prepare PR.

Great thanks for your help. I am looking forward to it

Added in PR #507

I found a solution and it seems to work fine; i still have to cleanup the code
class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks {
void onResult(BLEAdvertisedDevice advertisedDevice) {
CapAddress = advertisedDevice.getAddress().toString().c_str();
CapData = String(advertisedDevice.toString().c_str()).substring(String(advertisedDevice.toString().c_str()).indexOf("data:")+6);
CapName = advertisedDevice.getName().c_str();
Serial.println(" CO2 : " + String(strtoul(CapData.substring(4,8).c_str(),0,16)));
Serial.println(" PM2.5 : " + String(strtoul(CapData.substring(8,12).c_str(),0,16)));
Serial.println(" PM10 : " + String(strtoul(CapData.substring(12,16).c_str(),0,16)));
Serial.println(" CO : " + String(strtoul(CapData.substring(16,18).c_str(),0,16)));
Serial.println(" O3 : " + String(strtoul(CapData.substring(18,20).c_str(),0,16)));

You choice, code is ready anyway.

@HanvanHulst this issue seems solved, could you please close it to keep the issue list clean?
@chegewara


Account log in

When you press the button to sign into account, it comes up with a GitHub page saying that the requested file is not available at this link/location and I cant sign kn.

Can you provide some screen?


Update PULL_REQUEST_TEMPLATE.md

Add some useful reminders to the checklist.

Fixes #IssueNumber
Changes proposed:

[ ] Add
[ ] Delete
[ ] Fix
[ ] Prepare

Sorry! Wrong repository...


port checks from the AFDKO comparefamily tool to FontBakery

As Thomas Phinney mentioned in the TypeCon 2018 MFDOS meeting: it would be great to include checks from the AFDKO comparefamily tool in FontBakery.
Here's a link to the code in GitHub:
https://github.com/adobe-type-tools/afdko/blob/develop/python/afdko/comparefamily.py

We have this issue in the AFDKO repo:
https://github.com/googlefonts/fontbakery/issues/1992
I'm happy to work with you all to port the checks from the AFDKO into a FontBakery specification.

A first step here would be to list all the available checks giving them a short name as well as a longer rationale description. With that we can decide which id to use for each check. But they should probably be called something like adobe.com/check/keyword
Then we can write the boilerplate for these new checks and start refactoring snippets of the code into the boilerplate.
And finally we'd ideally expect code-tests to ensure the checks work properly I can help with that as well.

@cjchapman Please take a look at the example of porting a check from AFDKO into FontBakery that I have just pushed on pull request #2064
Please let me know if you have doubts on the code-style and architecture.

Also we should write code-tests. I may take some time to also write an example of that here later next week.

@cjchapman
Also, it is important to understand the rationale behind these check routines. For instance, the first one that I ported is lacking a description of why 63 is the longest allowed string length for name id 18 and also why the strings should be unique in their first 32 characteres.
Which specific software requires that? What kind of problem is know to be caused by fonts that do not respect those requirements? We should be collecting this kind of info and placing it in the "rationale" field of the @check decorator.

SingleTest 1: Length overrun check for name ID 18. Max 63 characters, must be unique within 31 chars.
SingleTest 2: Length overrun check for name ID's 1,2, 4, 16, 17. Max 63 characters.
SingleTest 3: Check that name ID 4 (Full Name) starts with same string as Preferred Family Name, and is the same as the CFF font Full Name.
SingleTest 4: Version name string matches release font criteria and head table value
SingleTest 5: Check that CFF PostScript name is same as name table name ID 6.
SingleTest 6: Check that Copyright, Trademark, Designer note, and foundry values are present, and match default values.
SingleTest 7: Checking for deprecated CFF operators.
SingleTest 8: Check SubFamily Name (name ID 2) for  Regular Style, Bold Style, Italic Style, and BoldItalic Style.
SingleTest 9: Check that no OS/2.usWeightClass is less than 250
SingleTest 10: Check that no Bold Style face has OS/2.usWeightClass of less than 500
SingleTest 11: Check that BASE table exists, and has reasonable values (rationale: BASE table is necessary for users who are editing in a different script than the font is designed for.)
SingleTest 12: Check that Italic style is set when post table italic angle is non-zero, and that italic angle is reasonable.
SingleTest 1:
SingleTest 1:
SingleTest 1:
SingleTest 1:
SingleTest 1:
SingleTest 1:
SingleTest 1:
SingleTest 1:
SingleTest 1:

And these are all of the "family tests":

Family Test 1: Verify that each group of fonts with the same nameID 1 has maximum of 4 fonts.
Family Test 2: Check that the Compatible Family group has same name ID's in all languages except for the compatible names 16,17,18, 20, 21 and 22.
Family Test 3: Check that the Compatible Family group has same Preferred Family name (name ID 16)in all languagesID 16 in all other languages.
Family Test 4: Family-wide 'size' feature checks.
Family Test 5: Check that style settings for each face is unique within Compatible Family group, in all languages.
Family Test 6: Check that the Compatible Family group has a base font and at least two faces, and check if weight class is valid.
Family Test 7: Check that all faces in the Preferred Family group have the same Copyright and Trademark string.
Family Test 8: Check the Compatible Family group style vs OS/2.usWeightClass settings. Max 2 usWeightClass allowed.
Family Test 9: Check that all faces in the Compatible Family group have the same OS/2.usWidthClass value.
Family Test 10: Check that if all faces in family have a Panose number and that CFF ISFixedPtch matches the Panose monospace setting.
Family Test 11: Check that Mac and Windows menu names differ for all but base font, and are the same for the base font.
Family Test 12: Check that GSUB/GPOS script and language feature lists are the same in all faces, and that DFLT/dflt and latn/dflt are present.
Family Test 13: Check that no two faces in a preferred group have the same weight/width/Italic-style values when the OS/2 table fsSelection bit 8 (WEIGHT_WIDTH_SLOPE_ONLY) is set.
Family Test 14: Check that all faces in a preferred group have the same fsType embedding values.
Family Test 15: Check that all faces in a preferred group have the same underline position and width.
Family Test 16: Check that for all faces in a preferred family group, that the width of any glyph is not more than 3 times the width of the same glyph in any other face.
Family Test 17: Check that fonts have OS/2 table version 4.
Family Test 18: Check that all faces in a Compatible Family group have the same array size of BlueValues and OtherBlues within a Compatible Family Name Italic or Regular sub-group of the family.
Family Test 19: Check that all faces in the Preferred Family group have the same values of FamilyBlues and FamilyOtherBlues, and are valid.
Family Test 20: Check that all faces in the Compatible Family group have the same BlueScale value.
Family Test 21: Check that all faces in the Compatible Family group have the same BlueShift value.

We should document the reasoning behind each of all of these checks ;-)
It seems the some of those are similar to checks we already have in the Google Fonts specification. So it would also be nice to compare and understand case-by-case why do we sometimes have slightly different criteria.

@miguelsousa and @cjchapman, here are some thoughts abour SingleTest 1 ("Length overrun check for name ID 18. Max 63 characters, must be unique within 31 chars."):

It is not really a single-font check since it compares the data of multiple font files to make sure they are all coherent (nameid 18 uniqueness).
Also it seems it is checking 2 different things (uniqueness and max length) So, for the sake of making is simple-to-read, I'd suggest splitting it into 2 separate checks.
And then both portions of the check would need some more detailed description of their purpose.

Please note that the example of porting the "SingleTest 1" check into Font Bakery is probably incorrectly implemented. Use that example only as a demonstration of the API and code style, but the actual implementation should be reviewed and fixed (for instance, taking care of issues like what I described in my previous comment above: https://github.com/googlefonts/fontbakery/issues/1992#issuecomment-427253635)

Fwiw, I know the rationale for a lot of the ”unexplained” checks. I could spend some time going over these. Some are simply spec-based. Others are due to app or OS limitations.

To discuss individual checks, I could:

create a shared spreadsheet with a line for each item, or
create separate issues, one for each item
or...?

Preferences?

I'd prefer a shared spreadsheet to begin with and then gradually open individual issues for each proposed new check only when we feel it is worthy working on them (i.e. after we figure out good check-id, rationale, etc) so that an individual issue would be actually ready for someone to fix.

I’m starting a spreadsheet. Once I have added enough commentary to be interesting, I will share the link and we can discuss.


TensorFlow documentation copyright issue

In dragon.vm.tensorflow, there are many documentation apparently copied from TensorFlow. For example, the documentation of matmul is exactly the same as tf.matmul.
However, the copyright header shows Copyright(c) 2017 SeetaTech, which is not compatible with the TensorFlow License.

Thanks, we will remove these documentation soon.
Currently，our team(actually just me) are busy on both coding and documenting.(:->)


Invalid syntax in index.py file

Syntax errors detected :
Line 67:
layers[index] = Image.open(f'{config["layers"][index]["trait_path"]}/{trait_files[attr][item[attr]]}.png').convert('RGBA')
^
SyntaxError: invalid syntax
Any idea how to resolve? Thanks

Did you edit the main index.py file? What version of python are you running?
Please send me your code via email at<EMAIL_ADDRESS>so I can debug it for you.

Thanks! Sending over now.

Code fixed, you were missing a closing bracket on line 118.
generate_unique_images(159, {
  "layers": [
    {
      "name": "Background",
      "values": ["Gen 3"],
      "trait_path": "./trait-layers/Background",
      "filename": ["Gen 3"],
      "weights": [100]
    },
    {
      "name": "Skin",
      "values": ["Black and White", "Black", "Brown", "Cosmic", "Glitter", "Gold", "Gray", "Leopard", "Monster", "White", "Zebra"],
      "trait_path": "./trait-layers/Skin",
      "filename": ["Black and White.png", "Black.png", "Brown.png", "Cosmic.png", "Glitter.png", "Gold.png", "Gray.png", "Leopard.png", "Monster.png", "White.png", "Zebra.png"],
      "weights": [15.7, 14.4, 12.5, 18.2, 7.5, 5.6, 17, 2.5, 3.7, 1.9, 1]
    },
  ],

  "baseURI": ".",
  "name": "NFT #",
  "description": "This is a description for this NFT series."
})

What python version? I noticed a file name with spaces in it. Does removing the spaces fix it?

Getting the same error. Is there a specific Python version needed?


Codegen for access helpers to Tuple data structures

Part of the Solidity structs epic: graph-node issue #766
This PR updates graph codegen to support Tuple access in the mappings.  It now generates:

A class per Tuple with accessors for each of it's parameters.
Tuple type accessors on the event that convert to a Tuple and reference one of the generated Tuple classes.

How is this different from #235?


Serverside rendring compatibility

Is it possible to build components with this boilerplate that support server side rending? I see this error when I import my component:
...\dist\manifest.js:152
/******/ ([]);
         ^
ReferenceError: window is not defined

Can you link to a small example? I would need more information to understand what's going on.

Since it happens on server side rendering I don't know how to provide an example for you. All I can say is that if you have a page that is using react server-side rendering and you add <GoogleTagManager /> script to it it will throw that error which clearly says window is not defined  because window is not present in Nodejs environment.

It's impossible for me to say why it fails. There's not enough information. Maybe some other boilerplate would fit your purposes better? I maintain this one quite randomly and it's far from popular. 😄

@ImanMh Any luck with this? I would need a project to study to say anything concrete.

@bebraw Sorry for delay I will try to create a repo that demonstrate this issue today.

Please run the following:
git clone git@github.com:ImanMh/test-react-component-boilerplate.git
cd test-react-component-boilerplate
npm i
vim src/routes/home/Home.js
# line 13 and 30 are important take a look at them then exit the vim
npm start

Now there is an error sounds like I couldn't even use the boilerplate. What do you think is the issue?
component repo: https://github.com/ImanMh/test-react-component-boilerplate
project repo: https://github.com/ImanMh/serverside-issue-demonstration

Would it be possible for you to use some other boilerplate instead? It might be the time to deprecate this one as I don't have resources to maintain it.

sure thanks. I think the concepts behind your work is amazing. When it comes to create a react component these are the things that are a pain and I rather not to handle my self:

Making gh-pages is hard your idea about automating this part is brilliant
Adding test framework and managing basic dependencies  is also a waste of time
Common tasks that you added like linting is also a grate feature

If you are about to create an other repo and deprecate this one please address the above issues. I will be your first user. Thank you.

Look into nwb and mrm. We are using latter for webpack-defaults and I think it solves the aforementioned problems better than any boilerplate can due to support for migrations.


(FLK-W291) Trailing whitespace detected

Description
There should be no whitespace after the final character in a line.
Occurrences
There are 6 occurrences of this issue in the repository.
See all occurrences on DeepSource → deepsource.io/gh/mikeysan/retweet_anything/issue/FLK-W291/occurrences/

HI, I would like to work on this, can you suggest me ways to get started?

Hey, I have removed the trailing whitespaces and created a PR.

Hi @PracticalMetal Jayesh has done a few of these but there are still some left. Follow this link https://deepsource.io/gh/mikeysan/retweet_anything/issue/FLK-W291/occurrences/ to see what's remaining and go for it.  The link will show you all the files and lines that have this issue.
Do you know how to link an issue to a PR? Eddie showed me once before, but I can't remember.
I think you simply add a comment to your PR with a link to this issue. Please try that when you finish and we will both learn something if it works 😄

Hi, I have removed the leftover trailing whitespaces mentioned in
deepsource and created a PR. But the checks have failed, can you please
look into the matter and revert back. That would be great.
Best Regards,
Jayesh Srivastava.
On Fri, Jul 9, 2021 at 3:43 PM Michael Mba @.***> wrote:

Hi @PracticalMetal https://github.com/PracticalMetal Jayesh has done a
few of these but there are still some left. Follow this link
https://deepsource.io/gh/mikeysan/retweet_anything/issue/FLK-W291/occurrences/
to see what's remaining and go for it. The link will show you all the files
and lines that have this issue.
Do you know how to link an issue to a PR? Eddie showed me once before, but
I can't remember.
I think you simply add a comment to your PR with a link to this issue.
Please try that when you finish and we will both learn something if it
works 😄
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/mikeysan/retweet_anything/issues/6#issuecomment-877076134,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALYNK5FJ335MERQTHDXW3YLTW3DUXANCNFSM474JPDVA
.

Thank you :) I'll check and merge as soon as possible.


how  to Deploy it on my device?

hi~
I get nocode and build an app.
but how can I deploy it on my noDevice?
waitting for reply~

That‘s a excellent question! you can deploy noapp on your noDevice.

you can to release page and download the last release version ,then you sure install the noapp in your nophone , may be the noapp have many error , please reboot you nodevice and restart it!

You don't.


[BUG] The Unreal project doen't add library libUE4.so and Process [...] exited cleanly,  Process  [...] has died

Information

Apktool Version (apktool -version) : 2.3.0 +2.4.0 + 2.5.0
Operating System (Mac, Linux, Windows) : Windows
APK From? (Playstore, ROM, Other) : Other and Playstore

Stacktrace/Logcat
Before reproduct
06-11 23:21:32.471 27488 27488 D houdini : [27488] Added shared library /data/app/com.tencent.ig-1/lib/arm/libhelpshiftlistener.so for ClassLoader by Native Bridge.
06-11 23:21:32.476 27488 27488 D houdini : [27488] Added shared library /data/app/com.tencent.ig-1/lib/arm/libIMSDK.so for ClassLoader by Native Bridge.
06-11 23:21:32.481 27488 27488 D houdini : [27488] Added shared library /data/app/com.tencent.ig-1/lib/arm/libigshare.so for ClassLoader by Native Bridge.
06-11 23:21:35.127 27488 27488 D houdini : [27488] **Added shared library /data/app/com.tencent.ig-1/lib/arm/libUE4.so for ClassLoader by Native Bridge.**
06-11 23:21:35.136  2472  2950 D VoldConnector: SND -> {15 volume mkdirs /storage/emulated/0/Android/obb/com.tencent.ig/}
06-11 23:21:35.139  2472  2516 D VoldConnector: RCV <- {200 15 Command succeeded}
06-11 23:21:35.144  2472  2683 D VoldConnector: SND -> {16 volume mkdirs /storage/emulated/0/Android/data/com.tencent.ig/files/}
06-11 23:21:35.146  2472  2516 D VoldConnector: RCV <- {200 16 Command succeeded}
06-11 23:21:35.147 27488 27488 D houdini : [27488] Added shared library /data/app/com.tencent.ig-1/lib/arm/libUE4.so for ClassLoader by Native Bridge.

After  reproduce
06-11 22:46:30.576 11416 11416 D houdini : [11416] Added shared library /data/app/com.tencent.ig-1/lib/arm/libhelpshiftlistener.so for ClassLoader by Native Bridge.
06-11 22:46:30.580 11416 11416 D houdini : [11416] Added shared library /data/app/com.tencent.ig-1/lib/arm/libIMSDK.so for ClassLoader by Native Bridge.
06-11 22:46:30.582 11416 11416 D houdini : [11416] Added shared library /data/app/com.tencent.ig-1/lib/arm/libigshare.so for ClassLoader by Native Bridge.
06-11 22:46:31.073 11416 11444 D ApplicationLoaders: ignored Vulkan layer search path /data/priv-downloads/com.google.android.gms/lib/x86:/data/priv-downloads/com.google.android.gms/com.google.android.gms.apk!/lib/x86:/system/lib:/vendor/lib:/data/downloads:/data/priv-downloads for namespace 0xceb80090
06-11 22:46:31.328  2472  2950 I ActivityManager: Process com.tencent.ig (pid 11416) has died
06-11 22:46:31.329  2472  2950 D ActivityManager: cleanUpApplicationRecord -- 11416
06-11 22:46:31.329  2187  2187 I Zygote  : Process 11416 exited cleanly (4)

Steps to Reproduce

apktool  d <file_name>.apk -o <folder_name>
apktool b <folder_name>
sign
zipalign (optional)

APK
PUBG on PlayStore
Questions to ask before submission

Have you tried apktool d, apktool b without changing anything? - no
If you are trying to install a modified apk, did you resign it? - yes
Are you using the latest apktool version? - 2.5.0

This game have protection, it exit itself if apk has been tampered. Bypassing such protections is beyond the scope of apktool

As mentioned above.


Add an empty alt attribute to the blur up image

Add an empty alt attribute to the blur up plugin to satisfy a11y recommendations. https://dequeuniversity.com/rules/axe/2.2/image-alt
The Accessibility audit in Google Chrome reports the blur image as a failing element.

Good catch! Could you also add either the role="presentation" or aria-hidden="true" attribute which are more clearer in this case.

Done!


Hash struct lacks an Ord implementation

Without an Ord implementation (or even a Hash implementation) blake3::Hash values cannot be used as keys in BTreeMaps or HashMaps, among many other valid uses for (vartime) orderings.
To be safe; these implementations ought to be constant-time. Either way, the subtle crate provides traits which are explicitly intended for constant time equality and ordering.
As a workaround, I'm using the newtype pattern to implement these traits on my own OrdHash type.
If a PR would be welcome for this addition, should the implementation be constant time or variable?

My understanding is not all of const-generics have landed, and RustCrypto need more than currently offered even by nightly.
https://github.com/RustCrypto/traits/issues/238#issuecomment-806931108

@oconnor663 Hi, is there any work done on that? I am trying to use Hash on my BtreeMap but I need to convert it to hex every time. :(

I haven't done any work on this myself, no. It looks like the right way to do it will be to replace our dependency on constant_time_eq with a dependency on subtle, which can do both Eq and Ord. If anyone's interested, this is probably a good beginner PR.
In the meantime, you might want to convert Hash value to bytes rather than hex, either with .as_bytes() or with .into(). That'll be the same size as the original Hash, which might be important if you're storing lots of them.

Shouldn't https://github.com/BLAKE3-team/BLAKE3/pull/203 be merged before eventually finding a better alternative?
Also why is a constant-time Ord implementation required?
After thinking a bit about how it could be done when comparing 2 Hash I realised that having a constant-time implementation for this would require to always go through the whole byte array. This would be the equivalent of the worst case scenario of the default implementation which stops the comparison whenever the bytes aren't equal, so I don't see why that would make sense.

Same reason Hash has a constant time Eq implementation. Though I can't think of an attack off-hand, I would bet there's some use case out there that leaks information though the time it takes to compare (probably many) hashes - especially if you could control what hashes it's being compared to...
Anyway, I'm glad there's already an issue open here with something of a plan, I'll take a look at subtle.

Basically whenever Blake3 is used as an HMAC you really really want CT comparison https://threatpost.com/timing-attack-google-keyczar-library-060209/72738/
I'd also say that I doubt this could be a bottleneck anywhere, it's 4 words xoring them instead of branching over them might even be faster

One issue to keep in mind here is that, even if Hash provided a constant-time comparison, you could still leak information by using it in a data structure that doesn't make higher-level constant-time guarantees. For example, suppose we have a search tree of MACs, and our application takes a MAC from the user and asks "is this in the tree?" Maybe the tree looks like this:
    mac2
   /    \
mac1    mac4
       /    \
     mac3  mac5

Even if comparing individual MACs is constant time, the tree structure itself still has a timing leak. If I query it with a MAC that's less than mac2, it's going to do 2 comparisons. But if I query it with a MAC that's greater than mac2, it's going to do 3. If I can measure that timing difference, I can work from the high bits down to the low bits and recover mac2 in ~256 queries! (In general, an oracle that answers "is your MAC equal to the valid one?" is normal and no problem, but an oracle that answers "is your MAC greater than the valid one?" is broken and quickly leaks the valid MAC.)
We could probably come up with some way to fix the tree. We could add a requirement that all the leaves are at the same depth, and we could design some sort of "empty node" concept to make that work. I'm sure someone somewhere has done this before, but it's a very exotic problem to be solving, and no ordinary tree-map implementation is going to do anything like this.
So one worry I have about a constant-time Ord implementation, is that it might inspire false confidence that putting MACs inside a BTreeSet is safe. But that's not safe, and there's nothing Hash can do to make it safe. I'm curious what other use cases folks here have in mind.

So one worry I have about a constant-time Ord implementation, is that it might inspire false confidence that putting MACs inside a BTreeSet is safe. But that's not safe, and there's nothing Hash can do to make it safe.

I agree with that concern. Even in a non-MAC scenario it could be a problem - if you can fetch data based on it's hash, the time until cache miss could reveal blocks that are present in the cache.

I'm curious what other use cases folks here have in mind.

I don't think I have an actual use case for a constant-time Ord implementation so much as any Ord implementation. Mainly for things like sorting keys during serialization to remove hash map leaks.

This https://github.com/BLAKE3-team/BLAKE3/pull/267#issuecomment-1321273326 seems relevant over here.

Actually I should've said that it's not clear (to me) that we want any Ord implementation at all. In my mind, forcing the caller to convert hashes to bytes to sort them has some value, because it makes it clear that the comparison semantics are the regular [u8] comparison semantics. Given that we do encourage users to rely on our constant-time Eq impl, I worry it would be confusing to expose an Ord impl without making a similar guarantee.

So the recommendation for types that want an Ord implementation and to contain a Hash would be to either make a wrapper, write it manually, or embed it as a [u8; 32] - which I guess is what everyone is doing now anyway :)

Yeah if you need to sort hashes or something like that, my instinct is to convert them to [u8; 32]. In --release mode that conversion is almost certainly a no-op, and it makes it maximally clear what's going on.

@oconnor663 One mild annoyance with using [u8; 32], though, is that it doesn't provide convenient operations to format it as hex, the way blake3::Hash does.

Yeah, in practice I make my own wrapper around [u8;32] (with all the implementations I want) and convert back and forth as needed.


support-rewards

PR-Codex overview
The focus of this PR is to add functionality for processing and storing data related to vault rewards claims.
Detailed summary

Added VaultRewardsClaim entity with properties
Implemented processing and storing of rewards claimed events
Added methods for handling rewards claimed events in processor.ts
Updated ABI and events related to rewards claimed

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

#2  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @zkSoju and the rest of your teammates on  Graphite


Wrong page size in text only pdf file

Environment

Tesseract Version: 5.0.1
Platform: intel macos 12.2

Current Behavior:
When using an input tiff file to create a text only pdf (with -c textonly_pdf=1) the pagewidth of the output pdf is calculated using the pixel width of the input tiff divided by the resolution of the tiff. However, something goes wrong when the tiff resolution is a decimal number (float) rather than an integer (int). Tesseract seems to use floor(resolution) in that case.
E.g. an input tiff with width=726 pixels and resolution 92.202 pixels/inch results in an output pdf with page size 568.17 pts (1 pt = 1/72 inch). Tesseract used 92 pixels/inch to get to that result. (I'm limiting the example to page width, but the same happens to page height.)
Expected Behavior and suggested fix:
Tesseract should use the exact resolution of the input tiff file to calculate the output pdf file page size.

I am afraid that there is no easy solution for this issue.
The Tesseract API only provides functions which use integer values for the number of pixels per inch. So does the Leptonica library which is used by Tesseract. The exact resolution of the input TIFF file is therefore not available.
TIFF files use a fraction value for the resolution, and mapping that to an integer value can always result in rounding errors.
Maybe we can get the output PDF page size without using the resolution if it is possible to get the physical dimensions of the TIFF image.

CC: @DanBloomberg

Yes, leptonica converts the resolution to pixels/inch by casting to int32.
if (resunit == RESUNIT_CENTIMETER) {  /* convert to ppi */
        *pxres = (l_int32)(2.54 * fxres + 0.5);
        *pyres = (l_int32)(2.54 * fyres + 0.5);
    } else {
        *pxres = (l_int32)fxres;
        *pyres = (l_int32)fyres;
    }

Would it be preferable to round the pixels/inch, as it does with pixels/cm?

Rounding might be better than just casting to int32, but would not solve the issue which is reported here where the resolution was 92.202 pixels/inch. The rounded value would be 92, too.

Maybe we can get the output PDF page size without using the resolution if it is possible to get the physical dimensions of the TIFF image.

IIRC, the the physical dimensions of the image is calculated based on DPI and number of pixels.

I did not find a Leptonica function which gets the physical dimensions. The existing functions return width and height in pixels.

Tesseract currently uses pixGetXRes for the line detection and pixGetYRes for the image resolution. That's not consistent, and it won't work for images with different x and y resolutions.
While looking at the code for the line detection, I noticed that it could use compiler optimizations like inlining. That's now realized in the main branch.

What i meant was that I don't think the image size in inches/centimeters is stored in the image metadata, and that tools like GIMP and ImageMagick calculate it from number of pixels and DPI.

Unless Leptpnica will give us resolution in float, we can't solve the issue in our side.

For leptonica to give the resolution as a float, it would need to capture it that way.
This requires a change in pix.h, but I think we can pull it off without too much disruption.
We would need to do the following:
(1) store the res data in the pix as a float
(2) make and use new accessors to get the float res data for the pdf files
(3) change the L_COMP_DATA struct to hold float res.
(4) change the functions that generate L_COMP_DATA from the pix, and the function that transfers it to the L_PDF_DATA struct.

and similar changes for PostScript generation in psio2.c

Returning float resolutions would be a possible solution, but it would also be possible to add Leptonica functions which return pixels per meter (which is used by PNG). 92.202 pixels/inch is 3630 pixels/meter, so there would be no rounding error, and in any case rounding errors for pixels/meter are much smaller than for pixels/inch.

As you can see in pdfio1.c, we have functions that generate pdf files from both image files (or sets of image files) and also pix and pixa.  The functions that start with files all go through pix (because you have to read the images into rasters).
So to make this work in general, the float resolution data needs to be in the pix.

Dan, your plan looks good to me :-)

Amit, why does your 25-bit github code look like a face   :-)
(besides the bilateral symmetry built in so it is really a 15-bit code)

Would you change the datatype of xres and yres from l_int32 to l_float32, or do you plan to add two additional new fields? The main problem is that I see no way how to do such changes without breaking compatibility, so a new major version would be required.

@stweil
What I said about having to go through pix to generate the pdf is not true, because for jpeg, jp2k and some png, we can generate the pdf data directly from the compressed file data (i.e., without transcoding through a pix).
But the general solution to the problem does require storing res data as a float whenever a pix is used (as in tiffG4) to make the pdf file.

Dan, :-)
Originally, GitHub automaticly generated an upside down version of what you see now. I didn't like it because it looked like a sad face, so I manually rotated it.
But I didn't use Leptonica for the rotation, sorry...

@stweil
When not transcoding through a pix, we get the resolution from jpeg files using fgetJpegResolution(), which returns integer values.   Ditto for fgetJp2kResolution() and fgetPngResolution().  I'll need to make new functions returning floats, to avoid the risk of breaking applications.

@stweil
Does it break compatibility to change them to floats?
People should use the accessors, but of course we can't rely on that.
So suppose someone does this:
int i = pix->xres;    (xres is now a float field)
The data is coerced into an int.  No cast is required and I don't even get a warning.
Likewise,
pix->xres = i;
No problem either.

It's not a problem as long as the code is compiled with new headers, but old binaries (object or library files) will continue to assume an l_int32 value and get a wrong value if they did not use the accessors.
Ideally Leptonica would hide the details of the implementation and force use of accessors.

But of course it's C, so we can't enforce private data.
Is it really possible to get a skew between allheaders.h and the compiled library, which uses allheaders.h for the declarations?  It seems to me that the compiled library will always be consistent with the headers and the struct definitions.
If there really is a problem, we can add two floats to the pix for resolution.

Even in C it is possible to hide the implementation details. For example the public Tesseract header files use pointers to struct BlamerBundle, but the definition is in the private header file blamer.h which is not part of the public API. Another example is FILE from stdio.h.
There will be no skew between allheaders.h and the Leptonica library from the same version.
But there would be a skew between allheaders.h and a third-party library which was compiled with an older version of allheaders.h.
The Tesseract library is an example of a library which directly uses Leptonica internals: it accesses members of L_Compressed_Data, so any change in that data structure would break the Tesseract code.

So even if we were to add two fields to the pix, instead of change the fields, would that break Tesseract?

Only changes of L_Compressed_Data would break Tesseract because no internals of other Leptonica data types are used in the Tesseract code.
So any modification of Pix would not affect Tesseract. For other software which uses Tesseract this can be different.

That's a problem, because we'd need to change the res field  of L_Compressed_Data from int32 to float32.
@stweil
So am I correct that if we are to fix this problem, by making any alterations in the leptonica structs,
we must go from so.5.4.0 to so.6.0.0?
Bringing Jeff into this as well, as that would be his headache in the Debian world.
@jbreiden
Jeff, if we're going to 6.0.0, perhaps we should additionally make the autotools library naming change that is hanging out there:
Issue #598
liblept --> libleptonica
Also, am I correct that PR #599 changed library naming, using the so numbers instead of the version number, or is that only with CMake?
@DanielEngberg
Referenced from Issue #599
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=260079#c3
Did FreeBSD switch to CMake and do they have any outstanding naming issues?

So am I correct that if we are to fix this problem, by making any alterations in the leptonica structs,
we must go from so.5.4.0 to so.6.0.0?

I am afraid, yes. As this is a major change, you might consider other breaking changes, too:

Replace the Leptonica integer data types (l_int32, ...) by POSIX data types (int32_t). To ease migration, the old data types could be provided optionally.
Hide internals of Leptonica data structures in public API headers.
Maybe more ...

@DanBloomberg
Current pending patch symlinks both naming variants to provide compatibility
https://bz-attachments.freebsd.org/attachment.cgi?id=230746 (post-install section)
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=260079 for more information

It would be good to avoid the necessity for such patches in the future!
On the built-in data types, I was not aware that there were any breakages resulting from these typedefs.
And even if we replaced all the l_* types with POSIX, we'd still need to keep all the typedefs in environ.h to support applications.
Still confused about data hiding in C.  Can you give me an example of how I could hide the L_COMP_DATA struct in a private header file, in such a way that an application couldn't access its fields?  Note that multiple C files in the library need access to its internal structure, as well as prog/pdfio1_reg.c.

https://abi-laboratory.pro/?view=timeline&l=leptonica
This report is produced by using some open source tools: https://github.com/lvc?tab=repositories

So there were already incompatible changes in the past without an update of the major version.
If that did not cause trouble for users, changing the resolution from l_int32 to l_float32 without a new major version might work, too.

On the built-in data types, I was not aware that there were any breakages resulting from these typedefs.

The Leptonica integer data types don't cause breakages. But they are simply no longer needed, because there already exist standard data types for signed and unsigned integers of all sizes with different names but exactly the same meaning since many years now.
Removing the Leptonica integer data types would break existing code which uses them. Such code would have to be modified to use the standard POSIX data types.

Thanks all.
I would like to go ahead with the l_int32 --> l_float32 conversion in the resolution fields in pix and L_Compress_Data.
However, I need guidance if it will cause issues with tesseract because of the use of L_Compress_Data.
I would also like to up-version to so.6.0.0, and am waiting on @jbreiden there.

Incompatible changes to Leptonica have enough cost that they should not be
done
lightly. It includes recompiling all programs using Leptonica, and for
those that need
modification (like jbig2enc) getting the modification done, plus making
them finicky
about which versions of Leptonica they link against.
So I'd like to take a step back here and discuss the problem being solved.
The complaint that started this bug was about an image that is a bit under
8 inches
wide. After Leptonica does some rounding (for pixels per inch) the PDF
produced
is the wrong size, but 0.017 inches.  For those metrically inclined, we are
talking
0.44 millimeters.
Perhaps this level of precision (or imprecision!) is acceptable? Could
Jasper or
someone else explain in more detail why this is not good enough?
Message ID: @.***>

Slight correction.  The issue came up with a screen resolution of 92 ppi.
The rounding causes a maximum error at 92 ppi of 0.5 ppi, which is a little
more than plus or minus 0.5%.
For a page dimension of 254 mm (10 inches), that max error is about 1.3 mm.
Still very small.
On Wed, Feb 16, 2022 at 1:51 PM jbreiden @.***> wrote:

Incompatible changes to Leptonica have enough cost that they should not be
done
lightly. It includes recompiling all programs using Leptonica, and for
those that need
modification (like jbig2enc) getting the modification done, plus making
them finicky
about which versions of Leptonica they link against.
So I'd like to take a step back here and discuss the problem being solved.
The complaint that started this bug was about an image that is a bit under
8 inches
wide. After Leptonica does some rounding (for pixels per inch) the PDF
produced
is the wrong size, but 0.017 inches. For those metrically inclined, we are
talking
0.44 millimeters.
Perhaps this level of precision (or imprecision!) is acceptable? Could
Jasper or
someone else explain in more detail why this is not good enough?
Message ID: @.***>

—
Reply to this email directly, view it on GitHub
https://github.com/tesseract-ocr/tesseract/issues/3738#issuecomment-1042343906,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AD7KMLEWHH5IESO2JMILTRLU3QL4NANCNFSM5NKDA56A
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>

While we wait for someone to speak to the benefit of the proposed
change, let's look into the costs in more detail.
The list of direct dependencies in Debian are quite small. That's good.
Each of these programs will have to change their builds if the Leptonica
library name changes. And endure the pain of becoming finicky about
Leptonica version.
I don't know if any of these programs would need a code change;
it probably makes sense to look at their source and see. I am
surprised that Debian is not shipping jbig2enc.
So yes, I think the cost are surmountable. But not negligible, and
it still makes sense to be thoughtful about whether the incompatible
change is worth it.
liblept5
Reverse Depends: ccextractor (0.93+ds2-1)
Reverse Depends: k2pdfopt (2.53+ds-1+build1)
Reverse Depends: kylin-scanner (1.0.0-1.1+build2)
Reverse Depends: leptonica-progs (1.82.0-3)
Reverse Depends: liblept5-dbgsym (= 1.82.0-3)
Reverse Depends: libleptonica-dev (= 1.82.0-3)
Reverse Depends: libtesseract4 (>= 4.1.1-2.1)
Reverse Depends: python3-tesserocr (2.5.2-1)
Reverse Depends: tesseract-ocr (>= 4.1.1-2.1)
Message ID: @.***>

Thank you, Jeff.
Following your input, let's do this:
(1) I'll fix the input resolution in the tiff reader to round instead of truncate.
Note that for png, jpeg and bmp, resolution is saved as an int, and we are properly rounding whenever the units
are changed (such as pixels/meter to pixels/inch for png, or pixels/cm to pixels/inch in jpeg).
(2) We'll not mess with saving resolution in the pix as a float.
At 100 ppi, the maximum error from rounding is plus/minus 0.5%.
For a 10 inch image, the results in a maximum page error size of 0.05 inch, slightly more than 1 mm.
So this is the best we will do on this issue.
Let's defer the library name change from liblept to libleptonica in autotools (and Debian).  I still plan
to do this, perhaps in a month, and we'll see what chaos results when I put it out as 1.83.0.
Question: in src/Makefile.am, will we still need the install-data-hook and uninstall-hook targets?
Changing the .so names to the canonical format and the .so number to 6.0.0 could happen later, as 1.84.0.

Question: in src/Makefile.am, will we still need the install-data-hook
and uninstall-hook targets?

I don't know. I've never heard of these targets before this question. I'm
pretty sure they aren't
explicitly required by Debian, but I have no idea what useful things they
might be doing under
the hood.

Dan passed this question to me. I hadn't noticed these targets before as they were added after I was last closely involved. They just install (and uninstall) a symlink from libleptonica.so to liblept.so (or similar) though. If you're renaming the library, do you want a symlink going back the other way for compatibility? If not, just delete them.
As the code stands, the install-data-hook target is broken in any case. If you're doing a parallel build (typical in Gentoo) then this target will usually be executed before the real library is installed. It checks for the library's presence with test -f so no symlink is created in this case.

@stweil, can we close this issue?


Custom error page not rendered when view path is not the default path

Laravel Version: 5.5.1
PHP Version: 7
Database Driver & Version:

Description:
From AppServiceProvider I'm adding dynamicaly view path like this:
view()->addLocation(realpath(base_path('resources/views/themes' . '/' . config('dc.theme'))));
Then i check:
dd(view()->getFinder()->getPaths());
The path is added but custom error page is not rendered. Default error page is rendered.
Path to my custom 404 error page:
resources\views\themes\simple\errors\404.blade.php
if i add custom view path in /config/view.php paths like this:
'paths' => [         resource_path('views'),         resource_path('views/themes/simple'),     ],
again the default 404 error page is shown
Steps To Reproduce:

quick fix in App\Exception\Handler.php render method
if ($exception instanceof NotFoundHttpException) {             return response()->view('errors.404', [], 404);         }
this will render the correct view

yes you'll need to manually tell laravel where to load the error view from since you're not using the default view location.

You may override renderHttpException inside your handler to take control over loading all kinds of HTTP exceptions not just 404

Why you just fix it? The default path is hard coded? In v 5.2 is working like a breeze?

This behavior is hard coded here why don't you just fix it to use the view paths not hard coded ones?:
`protected function renderHttpException(HttpException $e)
{
$status = $e->getStatusCode();
    view()->replaceNamespace('errors', [
        resource_path('views/errors'),
        __DIR__.'/views',
    ]);

    if (view()->exists($view = "errors::{$status}")) {
        return response()->view($view, ['exception' => $e], $status, $e->getHeaders());
    }

    return $this->convertExceptionToResponse($e);
}`


Auto scroll down (or) collapse other tree views on expanding the node inside a tree view with multiple tree views in display instead of manually scrolling down

Add auto scroll functionality on the current tree view (or) collapse the other expanded tree view in the explorer to make more UI space to view on expanding the node with multiple tree views in display.
VS Code Version: Version: 1.70.1
OS Version: MacOS Big Sur Version: 11.5.2
Steps to Reproduce:
Cloned the tree-view-sample vscode extension repo : tree-view-sample

Run these commands : npm install
npm run watch
F5 to start debugging
Once all the multiple tree views are displayed in the package explorer section, expand each individual tree view with expanding individual nodes inside the tree view

On expanding the node inside a tree view should either collapse other tree view which are currently not in use (or) auto scroll down giving more space on the UX for current expanded tree view to display all the tree nodes instead of scrolling down manually.
Video
https://user-images.githubusercontent.com/96312934/184672360-61a52629-8d06-47c0-aee4-ea9f6f7bc23d.mov

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

:slightly_frowning_face: In the last 60 days, this feature request has received less than 20 community upvotes and we closed it. Still a big Thank You to you for taking the time to create this issue! To learn more about how we handle feature requests, please see our documentation.
Happy Coding!


Feature: share access to subfolders within one grain

currently it only allows users to share the whole grain, is it possible to share a subfolder of a grain? thanks!

Unfortunately sandstorm sharing operates at the grain level, so there's no real way to share just a part of a grain.
One thing we could look into might be to use Sandstorm's publishing API for a sort of "share with link" functionality where you could request a hidden URL to a specific file that you could share. It wouldn't work as well for directories however, since we'd have to generate a static directory listing and publish it and it wouldn't get updated when the files were updated.
How I envision this working:
Currently the Publishing tab works by symlinking /var/davros/data to /var/www. Instead, we'd have an action that would create a random directory and symlink that to the file. For instance, if you had photo.jpg in the root of your davros grain and wanted to share it, we'd symlink /var/davros/data/photo.jpg to /var/www/tah6taiZfooch6OhahXahfo3/photo.jpg and give you that link.


Endpoints: put back EndpointsJsonResponse

Somehow, we lost the link formatting component on Endpoints. :see_no_evil:

Preview is available here:http://laboratory-pr1022.previews.kube001.services.stellar-ops.com/


lba2 has become open source

Is your feature request related to a problem? Please describe.
lba2 has get a open source release, at lba2-classic, would be nice the assets could come from this, so we don't need to find our 31 year old CD to get it running
Describe the solution you'd like
import assets

Hi @seocamo,
Although the LBA series has been open sourced, the assets are still copyrighted and not re-distributed.
I suggest you to buy the game on popular platforms like GoG, Steam, Itch which will support the Studio 2.21 behind creating the new LBA series game.
Here are the links to buy the games:
https://itch.io/s/61876/adeline-software-collection
https://www.gog.com/games?developers=adeline-software-international
https://store.steampowered.com/search/?publisher=[2.21]


As an MLOps Engineer, I want to use a Pipeline to build an immutable model container that utilizes was trained using OpenVino or TensorFlowLit

Closing this since it is too broad and has no specifics that are not already covered by other stories


non cuda run

Hi, as I wrote I am new in torch so to make it run in my non-nvidia laptop, I tried to change few lines. My final error seems a bit high. The lines I change are the following: Do you think I did it wrong?
"
err = optimizer:optimize(optim.sgd, torch.Tensor.double(inputs), labels, criterion)
local pred = torch.Tensor.double(model:forward(torch.Tensor.double(inputs)))
valError = valError + criterion:forward(pred, labels)
_, preds = pred:max(2)
  correct = correct + torch.Tensor.byte(preds):eq(torch.Tensor.byte(labels)):sum()

"
error log below.
epoch : 	30	trainError : 	0.14596691542095
correct=	9285
validation error : 	0.24075415878698
accuracy % : 	92.998798076923

the demo is not about the error but about showing the spatial transformer in action.
i guess it's fine.


Flex direction

Use case
Add flex direction in Flex widget, for set up widgets in Flex widget. Working like as flex-direction - CSS.Using in accordance with axis direction attribute and solve if is reverse or not.
Proposal
This feature working like as flex-direction - CSS, so for more details how to can work flex direction property, click here.

Hi @LeonardoRosaa
Can you please what flex-direction with axis direction? Provide some use cases


the block size of SM2 is zero

BouncyCastleProvider provider = new BouncyCastleProvider();

	KeyPairGenerator generator = KeyPairGenerator.getInstance("EC", provider);

	generator.initialize(new ECNamedCurveGenParameterSpec("sm2p256v1"));

	KeyPair keyPair = generator.generateKeyPair();

	Cipher cipher = Cipher.getInstance("SM2", provider);
	cipher.init(Cipher.ENCRYPT_MODE, keyPair.getPublic());

	System.out.println(cipher.getBlockSize());

Last I looked SM2 was not a block cipher. Is there a document out there we are not aware of?


Enhance sample data

At the moment, the sample data just containts 2 products, we should add some more, with more information: product description, product attributes,...and good images

Create a new services "sample-data" to centralize all the sample data. Put all the sample data scripts off all the services here.
Have a function to execute these scripts.

There are several issues with the back office when optimizing data
=> It seems like the new sample data may not have worked correctly due to some bugs :

[ ] #1051

[ ] #1064


[1.20.1] Breaking Time for Trees

When Dynamic Trees Quark is installed, all Dynamic Trees can't get "chopped" faster with an axe.
The breaking time is very long for all Dynamic Trees Blocks. :(
I tested it on 1.20.1 with the 2.5.0 version of the mod.

should be fixed on 2.5.1


[BUG] New YNAB UI changes causes markdown to appear twice in notes

Describe the bug
After new UI changes, with markdown enabled, both show up in the notes section. i.e raw text followed by markdown
Expected behavior
Only markdown should display
Screenshots

Hey @Numex106  the fix for this should be in our current release! If you notice the issue still exists and you're definitely running the newest version of the toolkit, please reopen! Thanks!
Please note, all browsers can take up to an hour to provide updates to all users. You can force an update if it's available for you by going to chrome://extensions and clicking the "Update" button. Firefox users can go to about:addons, click the setting cog, and click "Check for updates...".


IngesterConfig reporting: global flag to tell an ingester to only send minimal config block (or none at all)

What is the enhancement to be made?
Global ingester config that tells the Muxer to not throw a full config block, just the core.
Why should we make this change? (Business justification? What problem is the feature trying to solve?)
When we have 10K+ ingesters the config blocks are unruly, we still want to report UUID, but not the full config of the ingester
Any other comments?
We might think about having a "category" of an ingester, so that these "minimal" ingesters can be treated different by the GUI and missing lingesters list

maybe its an  "Ephemeral" flag that says "this ingester may come and go, treat its thing as different


CUDA_ERROR_LAUNCH_FAILED with TensorFlow example

Please go to Stack Overflow for help and support:
https://stackoverflow.com/questions/tagged/tensorflow
If you open a GitHub issue, here is our policy:

It must be a bug or a feature request.
The form below must be filled out.
It shouldn't be a TensorBoard issue. Those go here.

Here's why we have that policy: TensorFlow developers respond to issues. We want to focus on work that benefits the whole community, e.g., fixing bugs and adding features. Support only helps individuals. GitHub also notifies thousands of people when issues are filed. We want them to see you communicating an interesting problem, rather than being redirected to Stack Overflow.

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): No, this error happens when using TensorFlow example "mnist_deep.py". Modified the file to go for 1.000 iterations instead of the default 20.000 because it took a long time to finish, everything else is the same.
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 16.04 64-bit
TensorFlow installed from (source or binary): source
TensorFlow version (use command below): v1.3.0-0-g9e76bf3 1.3.0
Python version: Python 3 (Though the issue persists with python 2.7)
Bazel version (if compiling from source): bazel-0.5.2-dist
GCC/Compiler version (if compiling from source): GCC 5.4.0 20160609
CUDA/cuDNN version: CUDA: 8.0 cuDNN: 6.0
GPU model and memory: NVIDIA Tegra X2 8GB
Exact command to reproduce: python3 mnist_deep.py

I am using the Nvidia Jetson TX2 developer kit with Jetpack 3.1 (The architecture is aarch64). I have tried installing Tensorflow for Python 2 and 3, but the issue persists with both installations.
Describe the problem
Describe the problem clearly here. Be sure to convey here why it's a bug in TensorFlow or a feature request.
I had no problems installing from source for either Python 2.7 and 3. When executing "mnist_deep.py" I get a CUDA_ERROR_LAUNCH_FAILED error. Since I had no problems during install, I believe there is something wrong with communication between Tensorflow and CUDA, which is why I'm posting here.
I had no problems excuting "mnist_softmax.py", and so the issue seem to be related to more sophisticated CNNs.
Source code / logs
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached. Try to provide a reproducible test case that is the bare minimum necessary to generate the problem.
This is the terminal output:
`nvidia@tegra-ubuntu:~/Desktop/tensorflow-r1.3/tensorflow/examples/tutorials/mnist$ ./mnist_deep.py
Successfully downloaded train-images-idx3-ubyte.gz 9912422 bytes.
Extracting /tmp/tensorflow/mnist/input_data/train-images-idx3-ubyte.gz
Successfully downloaded train-labels-idx1-ubyte.gz 28881 bytes.
Extracting /tmp/tensorflow/mnist/input_data/train-labels-idx1-ubyte.gz
Successfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes.
Extracting /tmp/tensorflow/mnist/input_data/t10k-images-idx3-ubyte.gz
Successfully downloaded t10k-labels-idx1-ubyte.gz 4542 bytes.
Extracting /tmp/tensorflow/mnist/input_data/t10k-labels-idx1-ubyte.gz
Saving graph to: /tmp/tmpyJvseo
2017-12-02 00:56:23.092487: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:857] ARM64 does not support NUMA - returning NUMA node zero
2017-12-02 00:56:23.092610: I tensorflow/core/common_runtime/gpu/gpu_device.cc:955] Found device 0 with properties:
name: NVIDIA Tegra X2
major: 6 minor: 2 memoryClockRate (GHz) 1.3005
pciBusID 0000:00:00.0
Total memory: 7.67GiB
Free memory: 5.76GiB
2017-12-02 00:56:23.092659: I tensorflow/core/common_runtime/gpu/gpu_device.cc:976] DMA: 0
2017-12-02 00:56:23.092684: I tensorflow/core/common_runtime/gpu/gpu_device.cc:986] 0:   Y
2017-12-02 00:56:23.092710: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:0) -> (device: 0, name: NVIDIA Tegra X2, pci bus id: 0000:00:00.0)
step 0, training accuracy 0.04
step 100, training accuracy 0.86
step 200, training accuracy 0.96
step 300, training accuracy 0.94
step 400, training accuracy 0.86
step 500, training accuracy 0.92
step 600, training accuracy 0.96
step 700, training accuracy 0.96
step 800, training accuracy 0.96
step 900, training accuracy 1
2017-12-02 00:57:17.461035: E tensorflow/stream_executor/cuda/cuda_driver.cc:1068] failed to synchronize the stop event: CUDA_ERROR_LAUNCH_FAILED
2017-12-02 00:57:17.461146: E tensorflow/stream_executor/cuda/cuda_timer.cc:54] Internal: error destroying CUDA event in context 0x3372070: CUDA_ERROR_LAUNCH_FAILED
2017-12-02 00:57:17.461188: E tensorflow/stream_executor/cuda/cuda_timer.cc:59] Internal: error destroying CUDA event in context 0x3372070: CUDA_ERROR_LAUNCH_FAILED
Traceback (most recent call last):
File "./mnist_deep.py", line 177, in
tf.app.run(main=main, argv=[sys.argv[0]] + unparsed)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/app.py", line 48, in run
_sys.exit(main(sys.argv[:1] + flags_passthrough))
File "./mnist_deep.py", line 169, in main
x: mnist.test.images, y: mnist.test.labels, keep_prob: 1.0}))
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 541, in eval
return _eval_using_default_session(self, feed_dict, self.graph, session)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 4085, in _eval_using_default_session
return session.run(tensors, feed_dict)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 895, in run
run_metadata_ptr)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1124, in _run
feed_dict_tensor, options, run_metadata)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1321, in _do_run
options, run_metadata)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1340, in _do_call
raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.NotFoundError: No algorithm worked!
[[Node: conv1/Conv2D = Conv2D[T=DT_FLOAT, data_format="NHWC", padding="SAME", strides=[1, 1, 1, 1], use_cudnn_on_gpu=true, _device="/job:localhost/replica:0/task:0/gpu:0"](reshape/Reshape, conv1/Variable/read)]]
[[Node: Mean_1/_7 = _Recvclient_terminated=false, recv_device="/job:localhost/replica:0/task:0/cpu:0", send_device="/job:localhost/replica:0/task:0/gpu:0", send_device_incarnation=1, tensor_name="edge_79_Mean_1", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/cpu:0"]]
Caused by op u'conv1/Conv2D', defined at:
File "./mnist_deep.py", line 177, in
tf.app.run(main=main, argv=[sys.argv[0]] + unparsed)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/app.py", line 48, in run
_sys.exit(main(_sys.argv[:1] + flags_passthrough))
File "./mnist_deep.py", line 138, in main
y_conv, keep_prob = deepnn(x)
File "./mnist_deep.py", line 64, in deepnn
h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1)
File "./mnist_deep.py", line 106, in conv2d
return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/gen_nn_ops.py", line 397, in conv2d
data_format=data_format, name=name)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/op_def_library.py", line 767, in apply_op
op_def=op_def)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 2630, in create_op
original_op=self._default_original_op, op_def=op_def)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 1204, in init
self._traceback = self._graph._extract_stack()  # pylint: disable=protected-access
NotFoundError (see above for traceback): No algorithm worked!
[[Node: conv1/Conv2D = Conv2D[T=DT_FLOAT, data_format="NHWC", padding="SAME", strides=[1, 1, 1, 1], use_cudnn_on_gpu=true, _device="/job:localhost/replica:0/task:0/gpu:0"](reshape/Reshape, conv1/Variable/read)]]
[[Node: Mean_1/_7 = _Recvclient_terminated=false, recv_device="/job:localhost/replica:0/task:0/cpu:0", send_device="/job:localhost/replica:0/task:0/gpu:0", send_device_incarnation=1, tensor_name="edge_79_Mean_1", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/cpu:0"]]
2017-12-02 00:57:17.738653: E tensorflow/stream_executor/event.cc:33] error destroying CUDA event in context 0x3372070: CUDA_ERROR_LAUNCH_FAILED
2017-12-02 00:57:17.738769: E tensorflow/stream_executor/event.cc:33] error destroying CUDA event in context 0x3372070: CUDA_ERROR_LAUNCH_FAILED
2017-12-02 00:57:17.738800: E tensorflow/stream_executor/event.cc:33] error destroying CUDA event in context 0x3372070: CUDA_ERROR_LAUNCH_FAILED
2017-12-02 00:57:17.738824: E tensorflow/stream_executor/event.cc:33] error destroying CUDA event in context 0x3372070: CUDA_ERROR_LAUNCH_FAILED
nvidia@tegra-ubuntu:~/Desktop/tensorflow-r1.3/tensorflow/examples/tutorials/mnist$`

I don't have a Jetson TX2 developer kit to reproduce this on. @tfboyd do you know if anyone on the TensorFlow team has one?
@zheng-xq @yzhwang any guesses to what the issue might be?

James does.  If we are really interested (and have time to work on it) in this we should order them.  We almost came home with 2 from our visit last week.

I have tried installing cuDNN 7 also. Jetpack 3.1 only comes with cuDNN 6, but apparently, this install of Tensor RT from NVIDIA can update the system to version 7 as well. I did that, but the error persists.

It has been 14 days with no activity and the awaiting tensorflower label was assigned. Please update the label and/or status accordingly.

/CC @aaroey, any plans for Jetson TX2 support?

@aaroey is not working on Jetson TX2 support. Since no one is working on it currently, marking as contributions welcome.

I didn't use Jetson but got the same error on my side. The code could run for a couple of epochs but suddenly threw the CUDA_ERROR_LAUNCH_FAILED error like on your side. Please let me know if you have a solution, thank you!


Funding

Likelihood: 2.  In recent years ICES made funding for some key projects available through a release of the equity it had built up.  This has now been used up.  There is also a reduction in the funding available from ICES member countries due to the ongoing suspension of one of them.
Impact: 3. A reduction in funding might have a large impact on the work of the ICES Data Centre.  Although this will be managed within the Secretariat DIG might have a role in terms of advising on priorities.


Missing out on data because of gloss-concept-list-mismatch

We're missing out on quite a few data points here because of mismatches between the glosses:
Missing concepts

{"Job's tears (coix)": 2,
 'answer': 33,
 'ant (white), termite': 25,
 'arrive': 34,
 'ascend': 31,
 'ask (a question)': 35,
 'ask for': 31,
 'awake / awaken': 43,
 'back (body)': 41,
 'bank (edge)': 30,
 'bark (of tree)': 26,
 "basket (back, man's)": 17,
 "basket (back, woman's)": 8,
 'basket (generic)': 40,
 'basket (large, storage)': 14,
 'bat (animal)': 22,
 'be': 68,
 'bear (animal)': 33,
 'bear (fruit)': 21,
 'bear fruit': 1,
 'beat': 62,
 'become': 31,
 'before; at; to': 1,
 'begin': 35,
 'believe': 30,
 'belows': 1,
 'bind': 45,
 'birth, give': 26,
 'bite': 37,
 'bless': 25,
 'blow': 26,
 'boil': 30,
 'box / chest': 1,
 'break': 48,
 'breathe': 24,
 'bring': 45,
 'brinjal (bengan, eggplant)': 20,
 'build': 31,
 'burn': 54,
 'bury': 37,
 'buy': 39,
 'carry (generic)': 33,
 'carry (in hand)': 10,
 'carry (on back)': 14,
 'catch': 33,
 'chest': 34,
 'chief': 26,
 'chin': 25,
 'choose': 28,
 'climb': 33,
 'come': 48,
 'cook': 24,
 'cook3': 1,
 'cough': 25,
 'count': 27,
 'cover': 36,
 'crow (bird)': 33,
 'cry (weep)': 40,
 'curse': 24,
 'cut (generic)': 29,
 'cut (with axe)': 21,
 'cut (with knife)': 34,
 'dance': 45,
 'deceive': 29,
 'descend': 31,
 'desire': 36,
 'diarrhea': 18,
 'die': 36,
 'dig': 37,
 'ditch': 31,
 'divide': 34,
 'do': 49,
 'dream': 26,
 'drink': 42,
 'eat': 38,
 'egg ("bird-egg")': 1,
 'elevent': 1,
 'enter': 35,
 'extinguish': 29,
 'fall': 51,
 'fast': 25,
 'fear': 39,
 'fell': 23,
 'fight': 40,
 'fill': 34,
 'find': 40,
 'finish': 46,
 'flow': 23,
 'fly': 63,
 'follow': 32,
 'forget': 29,
 'forgive': 33,
 'gather': 35,
 'get': 35,
 'give': 50,
 'glad': 35,
 'go': 50,
 'go out': 33,
 'grave': 28,
 'green': 32,
 'grind': 21,
 'grow': 39,
 'grreen': 1,
 'hair': 13,
 'hat / helmet': 3,
 'hat, helmet': 29,
 'hate': 41,
 'heal': 25,
 'hear': 38,
 'heel ("foot-chicken-egg")': 1,
 'help': 30,
 "hen's egg": 1,
 'hide': 39,
 'hit': 51,
 'hold': 34,
 'hop': 18,
 'hope': 23,
 'hudnred': 1,
 'hunt': 19,
 'jewsharp': 11,
 'jobs tears (coix)': 9,
 'join': 27,
 'jump': 30,
 'keep': 39,
 'kick': 22,
 'kill': 44,
 'kiss': 30,
 'kiss; sniff': 1,
 'knock': 28,
 'know': 45,
 'laugh': 36,
 'lead': 30,
 'learn': 31,
 'left-hand': 35,
 'lick': 25,
 'lie (deceive)': 23,
 'lie down': 30,
 'lift': 43,
 'light (ignite)': 29,
 'lip (lower)': 1,
 'listen': 26,
 'little': 32,
 'live (to be alive)': 38,
 'look at': 33,
 'look for': 31,
 'lose': 39,
 'love': 44,
 'mad (insane)': 31,
 'make': 38,
 'mend': 30,
 'mind': 30,
 'move': 29,
 'neighbor': 24,
 'obey': 27,
 'open': 36,
 'orange': 26,
 'order': 33,
 'palm (hand)': 1,
 'pass by': 30,
 'pay': 32,
 'pierce': 36,
 'pig(wild)': 1,
 'place': 36,
 'plains': 27,
 'play (a game)': 24,
 'play (music)': 19,
 'praise': 22,
 'pray': 27,
 'prepare': 33,
 'press': 29,
 'pull': 41,
 'push': 31,
 'put': 51,
 'quarrel': 32,
 'question': 24,
 'rain': 36,
 'raise': 29,
 'read': 31,
 'reap': 32,
 'receive': 42,
 'remain': 42,
 'return (come back)': 32,
 'rice (paddy': 1,
 'right (correct)': 29,
 'right-hand': 35,
 'ring (finger ring)': 32,
 'rise': 41,
 'rope, cord': 1,
 'round': 31,
 'rub': 36,
 'run': 42,
 'save': 32,
 'saw': 16,
 'say': 49,
 'scratch': 19,
 'scratch the soil for grain (birds)': 1,
 'second': 27,
 'see': 57,
 'seek': 41,
 'seize': 33,
 'sell': 38,
 'send': 42,
 'serve': 25,
 'sew': 21,
 'shake': 35,
 'shine': 34,
 'shite': 1,
 'shoot': 21,
 'shout': 32,
 'sing': 42,
 'sink': 30,
 'sit': 42,
 'sleep': 38,
 'slip': 22,
 'smell': 27,
 'smile': 15,
 'sneaze': 1,
 'sneeze': 23,
 'snore': 22,
 'sow': 38,
 'speak': 47,
 'spin (cotton)': 20,
 'spit': 25,
 'split': 28,
 'squeeze': 17,
 'squirrel': 25,
 'stand': 40,
 'steal': 37,
 'stick': 31,
 'sting': 17,
 'stink': 21,
 'suck': 31,
 'suffer': 25,
 'swallow': 23,
 'swear': 25,
 'sweep': 30,
 'swim': 24,
 'take': 55,
 'talk': 38,
 'taste': 30,
 'teach': 31,
 'tear': 37,
 'thank': 22,
 'thatch': 21,
 'think': 35,
 'throw': 44,
 'tie': 42,
 'top (i.e. highest point': 1,
 'top (i.e. highest point)': 25,
 'touch': 40,
 'trap': 37,
 'tremble': 27,
 'turn': 28,
 'understand': 37,
 'untie': 32,
 'use': 21,
 'valey': 1,
 'vomit': 17,
 'wait': 30,
 'walk': 44,
 'want': 50,
 'warn': 22,
 'wash (clothes)': 25,
 'wash (face)': 22,
 'wash (generic)': 15,
 'wash (pots)': 19,
 'wash (self)': 31,
 'we (excl.)': 21,
 'we (incl.)': 35,
 'wear': 31,
 'weave': 27,
 'well': 29,
 'well (adv)': 26,
 'whisper': 26,
 'wind': 39,
 'wipe': 27,
 'wish': 45,
 'with (accompaniment)': 54,
 'without': 29,
 'work': 38,
 'worship': 28,
 'wound': 22,
 'wrap': 30,
 'write': 31})

This is either due to capitalization differences between the concept list (right-hand here in the raw data, Right-hand in the concept list), additional prefixes in the concept list (bite versus to bite), and other small differences (back (body) versus Back (of the body)) etc.
Do you have any preferences how you'd like to proceed here, @MacyL and @LinguList?

So what is the list we have on concepticon? I think, since the STEDT
list will remain stable, it would be good to add the missing concepts to
the concept list ON concepticon, in the columns where they belong to as
alias concepts, separated by, say, a semi-colon or something. IN this
way, we can link all concepts properly etc., but do not have to have a
custom list witth links to concepticon in the lexibank repository.

Good question, the first version of the list in Concepticon was akin to the original STEDT glosses, but it was later changed to the different capitalisations, different forms of the verbs, etc.

So we need also some new best practice for the case where a concept list has an official version and a different digital version in a lexibank dataset, so that we need to cope with mismatches, as we use the digitized version, but want to be true to the original non-digital version. I propose to really stick to the extra column, call it ALIAS, and have it separate by some useful symbol, e.g., also //, as this is rarely used, and then pull data from there. We don't want to maintain concepts.tsv on lexibank along with a concept list on concepticon, and this is not the only case (halenepal!).

Sounds reasonable, thanks for the suggestion. I'll open another issue in pylexibank for a brief discussion on this and keep this one open until the mappings have been fixed.

Check updated concept list and the usage of the LEXIBANK_GLOSS column, see:
https://github.com/concepticon/concepticon-data/pull/1006

I'll do this now!

Awesome, thank you!


CI: Skip with commit message

Sometimes I just want to share my changes but not run the pipeline and save resources, since I know its not my last commit.
Maybe we could introduce something like this.
When a commit message contains ci skip, the pipeline is skipped.
node {
  checkout scm
  result = sh (script: "git log -1 | grep '\\[ci skip\\]'", returnStatus: true)
  if (result != 0) {
    echo "performing build..."
  } else {
    echo "not running..."
  }
}

Thanks for sharing this idea!
I don't think you need to worry about this too much, it does not matter that the CI tries to build it (again and again). It has the advantage that whatever you push last gets build, which is an important property for reviewers.
If it is about saving energy, I think it is more urgent to solve #587, which would reduce load by half, without any additional manual effort.
In Elektra we don't build jobs that do not yet have a CHANGELOG entry, maybe this would be what you want?
Probably you can simply take the logic we have in Elektra? This is much easier to see for reviewers.

I see. That is a nice idea with the Changelog.


Move the Metadata parsing to the worker-thread

The only reason, as far as I can tell, for parsing the Metadata on the main-thread is how it was originally implemented. When Metadata support was first implemented, it utilized the DOMParser which isn't available in workers.
Today, with the custom XML-parser being used, that's no longer an issue and it seems reasonable to move the Metadata parsing to the worker-thread[1], since that's where all parsing should happen (for performance reasons).
Based on these changes, we'll be able to reduce the now unnecessary duplication of the XML-parser (and related code) in both of the built pdf.js/pdf.worker.js files.
Finally, this patch changes the _repair method to use "Array + join" rather than string concatenation.

[1] This needed the previous patch, to enable sending of Maps between threads with workers disabled.

/botio test

Yes, now that DOMParser is not used anymore this can be done. Thanks!


Data losing in select query

Every time i refresh my site, i got different number of records in result even though the query was not changed. (Sometimes i got 25, some times got 33 records with the same query, the total number of records in db is 36). Some records are missing.
Here is the video clip
https://youtu.be/myPizNIGMxo
I use mysql pool
DB.js
// Database connection
var config = require('../config')();
var mysql      = require('mysql');
var pool = mysql.createPool(config.db);

module.exports = {
    getConnection: function(callback){
        var self = this;
        pool.getConnection(function(err, connection){
            if (err) {
                console.log(err);
                callback(err, null);
                return;
            }
            callback(null, connection);
            connection.on('error', function(err){
                console.log(err);
                throw err;
                // self.getConnection(function(err, connection){
                //     callback(err, connection);
                // });
            });
        });
    }
};

query.js
query: function(options, callback){
        ...
        var DB = require('./DB');
        DB.getConnection(function(err, connection){
            if (err) {
                callback(null);
                return;
            }
            connection.query(sql, function(err, result){
                if (err) {
                    console.log('Error ' + err.code + 'in ' + sql);
                    if (callback) {
                        callback(null);
                    }
                    return;
                }
                if (callback) {
                    callback(result);
                }
            });
            connection.release();
        });

    }

Do u know why? Thank you!

I don't know exactly why it works wrong.
but, I'm sure the position of connection.release() is incorrect.
This should be moved into the connection.query().
Please check out the document below.
When you are done with a connection, just call connection.release() and the connection will return to the pool, ready to be used again by someone else.

Modified source below.
DB.getConnection(function(err, connection){
    if (err) {
        callback(null);
        return;
    }
    connection.query(sql, function(err, result){
        connection.release(); // This is the correct position.

        if (err) {
            console.log('Error ' + err.code + 'in ' + sql);
            if (callback) {
                callback(null);
            }
            return;
        }
        if (callback) {
            callback(result);
        }
    });
});

Thanks for replying.
But i had tried putting it in block first, then I tried putting outside, the result was the same.
So strange

You can turn on the debug setting to check the progress.
mysql.createPool({
    ....
    ....,
    debug : true
});

then, you can see protocol details. I hope you get a clue to the problem.

Hi there, I tried debuging but it didn't help.
Maybe the problem caused because I got and released connection for each query. Should I do that? Or i should keep the connection for multiple queries?
If yes, so when should I release the connection? Before rendering?

I'm sorry you didn't find a clue.
I think it depends on your structure.
For one thing, You should release used connections as soon as possible.
That's because the connection is not returned to the pool until release is called.
pool.getConnection(err, conn) {
    conn.query(...., function(err, results) {
        conn.release(); // Good
        process(results);
        render(results);
        conn.release(); // Bad
    }
}

So I have to release the connection after each query?
It seems not working perfectly.
For example, i have table authors, books and bookAuthors(bookID, authorID for many-to-many relationship). Then I retrieve bookID, then foreach bookID, i retrieve book detail.
Sometimes some books are missing.
I get connection and release it after each query

There has not been enough information provided to really say. In order to figure out what the issue is, we'll need you to help us setup your environment on our side so we can debug. This means we need to understand what your database looks like what your code is, and how you run your code to reproduce the issue. Once we can reproduce, we can debug the issue.

I'm going to close since I haven't heard anything back.


Remove deprecated datetime functions

Feature Request / Improvement
To support python 3.12 in #1068, we had to ignore warnings for deprecated datetime functions.
Let's remove these deprecated functions from the codebase and also remove the warning filters.
https://github.com/apache/iceberg-python/blob/f2f428ec4d3c7d66b104ccaa235fc73fd0910bf3/pyproject.toml#L618-L619

I can work on this issue


Add Pull Request (PR) Template to Repository

Adding a PR template will ensure consistency and clarity in contributions. It should include:

Description of changes
Related issue number
Documentation and formatting checklist

Assigning myself to this task.

Completed the task; closing the issue now.


tried so hard

I started getting this error last night. My suspicion is that it may be related to standard time switchover? Nothing has been changed with the code nor the configuration for months.
Code:
func (j *JobSpec) setNextTick(refTime time.Time, includeRefTime bool) error {
  if j.Cron != "" {
    t, err := gronx.NextTickAfter(j.Cron, refTime, includeRefTime)
    j.nextTick = t
    fmt.Printf("\njCron: %s, refTime: %v, includeRefTime: %v, %-v\n", j.Cron, refTime, includeRefTime, err)
    return err
  }
  return nil
}

Couple instance of failures:
jCron: 10 12 * * *, refTime: 2024-11-02 19:39:33.031482225 -0400 EDT, includeRefTime: true, tried so hard

jCron: 15 05 * * *, refTime: 2024-11-02 19:40:14.304755524 -0400 EDT, includeRefTime: true, tried so hard

jCron: 20 05 * * *, refTime: 2024-11-02 19:40:36.725177004 -0400 EDT, includeRefTime: true, tried so hard

The same code works for other instances:
jCron: 15 00  * * *, refTime: 2024-11-02 19:40:36.723989643 -0400 EDT, includeRefTime: true, <nil>

jCron: 25 00 * * *, refTime: 2024-11-02 19:40:36.724409077 -0400 EDT, includeRefTime: true, <nil>

jCron: 35 00 * * *, refTime: 2024-11-02 19:40:36.724593286 -0400 EDT, includeRefTime: true, <nil>

jCron: 0 0 1 * *, refTime: 2024-11-02 19:40:36.724980983 -0400 EDT, includeRefTime: true, <nil>

version is: github.com/adhocore/gronx v1.8.1

Update:
The following modification fixes the issue:
func (j *JobSpec) setNextTick(refTime time.Time, includeRefTime bool) error {
  if j.Cron != "" {
    refTime, _ = time.Parse(time.RFC3339, refTime.Format(time.RFC3339))
    t, err := gronx.NextTickAfter(j.Cron, refTime, includeRefTime)
    j.nextTick = t
    return err
  }
  return nil
}

 2024-11-02 19:40:36.723989643 -0400 EDT,
I'm not sure where this time format is coming from but it seems to be the source of the issue. The code replicating this issue is coming from cheek where s.loc is declared from America/New_York

hello Joe, thanks for reporting issue. first, could you check if latest version is working?

checking out the commit before my fix above, no longer produces the error as I had suspected. And the code is still producing the following format:
2024-11-10 15:54:42.130695329 -0500 EST

Commit:
https://github.com/joe-at-startupmedia/cheek-turner/commit/216a4becdeedca7fe467abf754512e4cc171fea2
I'd be of more service if I knew how to parse this format without errors.
15:54:42.130695329
In order to replicate the issue, the time has to go back to the following:
2024-11-02 19:40:36.725177004 -0400 EDT


Custom Category Names, Fields (this one is a head spinner for me)

Addon Version
v0.1.7
World of Warcraft Version
Retail
Describe the bug
Many items (regardless of any existing Blizzard taxonomy, as far as I can tell) cannot be added by dragging and dropping. They can, however, be added to custom categories that already have items in them.
At first, I thought this had to be a tooltip/elvUI/install thing; now and again, I could get a Lua Error to throw. But that was this bug.

Message: ...erface/AddOns/ElvUI/Core/Modules/Tooltip/Tooltip.lua:901: bad argument #1 to 'strmatch' (string expected, got nil)
Time: Wed Feb 21 11:20:15 2024
Count: 16
Stack: ...erface/AddOns/ElvUI/Core/Modules/Tooltip/Tooltip.lua:901: bad argument #1 to 'strmatch' (string expected, got nil)
[string "=[tsm error check]"]:1: in main chunk
[string "=(tail call)"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "@Interface/AddOns/ElvUI/Core/Modules/Tooltip/Tooltip.lua"]:901: in function <...erface/AddOns/ElvUI/Core/Modules/Tooltip/Tooltip.lua:898>
[string "=(tail call)"]: ?
[string "=[C]"]: in function `SetCurrencyToken'
[string "@Interface/AddOns/BetterBags/frames/currency.lua"]:85: in function <Interface/AddOns/BetterBags/frames/currency.lua:83>
The odd thing is that items that could be added first to other categories cannot be added to
I've tested renaming categories to irrelevant things outside of any BlizzardDB taxonomy,
It depends not just on the item but the category created and when that category was created. For instance, a category that works can be made after one that doesn't, where a previously immovable item can be moved into the category.
It appears that there's an issue with the category initialization in the Lua script. It could be that some data type parameter is not matching up, could be the dreaded missing parenthesis, or some other syntax disagreement. Hell, just two simple guesses, as I haven't had a chance to look under the hood.
Hope I get a cookie for doing all this work.
Steps to reproduce
Create custom category
try to grab and drop from any source to the field indicated
enjoy watching your brain explode as you test items endlessly to figure this out (this was me), I'm hoping you'll have an easy time with some pointers.

Details

critical usability flaw

Duplicate of #129


SparkSQL write operations fail when using raw JSON

When using SparkSQL, if a user tries to write a dataframe to Elasticsearch, it will fail if the es.input.json property is set to true.
When writing a Dataframe that would not be compatible with the write mode, the error message ends up as something like:
org.elasticsearch.hadoop.serialization.EsHadoopSerializationException: org.codehaus.jackson.JsonParseException: Unexpected character ('(' (code 40)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')
 at [Source: [B@25a91b8c; line: 1, column: 2]

or if using a Dataset[String] (which would reasonably be expected to work), the exception looks like:
org.elasticsearch.hadoop.rest.EsHadoopRemoteException: mapper_parsing_exception: failed to parse;org.elasticsearch.hadoop.rest.EsHadoopRemoteException: not_x_content_exception: Compressor detection can only be called on some xcontent bytes or compressed xcontent bytes
	{"index":{}}
([{"id": "id3", "email": "email1@gmail.com"}],StructType(StructField(value,StringType,true)))

The preferred solution here is to simply use a Spark RDD of type String instead, but it would be best if ES-Hadoop supported Dataset[String] for writing json data, checking for other incompatible situations and throwing appropriate errors.
relates #1280

Are there any updatese to this one?

Is there any update on this? I am using ES spark 7.17 and facing same issue as pointed out by @jbaiera


Update base images

The automation doesn't like multiple Dockerfiles in the same folder so we are stuck manually updating these until we separate them.

Related to: https://github.com/test-network-function/cnf-certification-test/pull/1327


Chore: move to Flit build backend

This PR removes setuptools as our build backend in favour of Flit. This means we can move to using only pyproject.toml for all of our build information, and allows us to use modern packaging tools.
NB This started out as a PR to use hatchling (hatch), but I moved to Flit to align with existing tools.

@mmcky do you have any spare cycles to look at merging this? :smile:

@agoose77 Super Sorry - this completely escaped my radar. I'll try and loop around to this soon. I'm not super familiar with flit but I'll give it a go.

At this point, I'd want to use Hatch; flit is increasingly looking to be the build-backend with zero dependencies as its selling point, rather than features. That is to say, there've been suggestions that flit-core's main use case will be underpinning all of the other PEP 517 build backends; repackagers can't use existing wheels, so they need to build everything from a single root build tool.
I started with Hatch here: 400c4a2
We'd need to rebase this PR, but I can do that if needs be!

flit is increasingly looking to be the build-backend with zero dependencies as its selling point, rather than features

just curious, why do you need features here though? This is a pure python package, so why complicate things?

@chrisjsewell not so much a need for features (particular not this repo!), but my guess is that flit-core will be less widely used down the road for the average repo. As such, we'd do well to standardise on the derived build backends like Hatch or PDM across all of our projects to maintain consistency and ease.
I'm not hugely fussed here; if we don't want to make any inconsistencies at this juncture, we can pursue flit-core in line with the rest of the repositories under this org, and migrate down the line if it seems appropriate.

but my guess is that flit-core will be less widely used down the road for the average repo.

I very much doubt that will be the case, and I haven't seen anything to suggest it. Is there somewhere that states this?

we'd do well to standardise on the derived build backends like Hatch or PDM across all of our projects to maintain consistency and ease.

Not fussed what you choose here really, but yeh I disagree with this, unless as mentioned there is something I am missing with regard to the flit roadmap

There are ongoing discussions about packaging over on the Discourse for Python. The first mention of this philosophical shift was here, but I've seen other comments scattered around IIRC.

Honestly I have not fully absorbed the move to flit over the standard setuptools packaging other than possibly simpler to maintain and easier to use (which are positives for sure). Given the majority of ExectuableBooks is using flit let's not diverge tools and stick with this one for now.
Thanks @agoose77 for the update on alternatives. I will have a quick read about Hatch

It's not a huge deal; as long as we're using a PEP 621-supporting backend, then it's not too tricky to change things at a later date ;)

In order to unblock main and reflect our changing maintenance schedules, I'm merging this as part of restoring CI.


Cursor misplaced in form inputs on reveal modal and off canvas components on iOS 11

We're experiencing same issues with our forms placed in fixed elements (reveal modal, off-canvas)  as reported here:
https://stackoverflow.com/questions/46567233/how-to-fix-the-ios-11-input-element-in-fixed-modals-bug
https://hackernoon.com/how-to-fix-the-ios-11-input-element-in-fixed-modals-bug-aaf66c7ba3f8
https://stackoverflow.com/questions/46339063/ios-11-safari-bootstrap-modal-text-area-outside-of-cursor
However, the fixes suggesting setting 'position: fixed' on the body don't seem to always work (they don't for us). It might be because our modals are quite big and have many inputs. Could we have the Foundation components using 'position: absolute' on iOS 11? Possibly with some JS making them behaving similar to fixed elements? Changing to position absolute seems to be the most robust workaround.

Can you provide a codepen to have a better understanding of the issue?
Is it just about using another position value on iOS 11?
CSS and JS can target also specific platforms with a few tricks.

Yes it is, but it's the newest version of a major browser, so maybe it's worthy to have a fix for that included in the framework? It could be optional, enabled by a SASS config or a special class.
Unfortunately, the solutions we found don't fully work for us. Probably because our form is quite long and scrolling is unavoidable.
Please let me know if you're willing to include a fix in the framework and I can work on a codepen.

Not sure if and how the fix should look like.

cc @SassNinja

I'm not sure as well. I was thinking about positioning modals and offcanvas absolutely instead of making the fixed. It'd be slightly different experience, because users could scroll away from the modal, but it should be OK in most cases.

I can confirm that disabling the overlay in reveal (which is fixed), removing "is-reveal-open" styles and forcing "position: absolute" on the modal itself fixes the problem. However, it gives slightly different user experience.

it gives slightly different user experience.

Well, I am unsure if and how we should solve this in the framework as this is an iOS specific bug.
cc @ncoden should we add a note about this with an example how this can be solved in projects or what should we do here?

It seems that foundation already has some code that significantly reduces the bad effects of the bug (in _reveal.scss):
mixin foundation-reveal {
  // [TODO] Is this necessary?
  body.is-reveal-open { // sass-lint:disable-line no-qualifying-elements
    overflow: hidden;
  }

  // html gets this class only in iOS
  html.is-reveal-open,
  html.is-reveal-open body {
    min-height: 100%;
    overflow: hidden;
    position: fixed;
    user-select: none;
  }

Without this, the issue gets worse. However, it's not a complete fix, because the cursor gets misplaced on longer forms, on 6 or 7th field.
It looks like the complete fix is to disable the classes above, use "position: absolute" on the modal and disable overlay, or implement it without using "position: fixed".

// [TODO] Is this necessary?
Is this in our code?
Yes, this is needed to remove scrollbars from the body when a reveal is open.
Disabling user-select is bad UX.

When I look at master, I don't see it, but it's in foundation-sites 6.4.3.
I used the reveal component from master, but it doesn't help.

When I look at master, I don't see it, but it's in foundation-sites 6.4.3.
I used the reveal component from master, but it doesn't help.

The next release will use the code of the current develop branch.

There is a reason for position: fixed.

As far as I remember Apple fixed thus in the last releases so I close this.
Feel free to reopen if it still occurs with 6.5.3 and the latest Safari and iOS version.


lazy pre loading for images in loop mode

This is a (multiple allowed):

[x] bug

[ ] enhancement

[ ] feature-discussion (RFC)

Swiper Version: 4.3.5

Platform/Target and Browser Versions: All

Live Link or JSFiddle/Codepen or website with isssue: https://codepen.io/minute/pen/RYVrpL

What you did
Testsetup: A swiper with 5 slides and lazy loading
If you navigate directly from slide 1 to slide 5 by pagination everthing works as aspected. But if you use the navigation (or touchMove) to go to slide 5 backwards, the preloading is not working correctly.
Expected Behavior
Testsetup: A swiper with 5 slides and lazy loading

Initial loading: Slide 5, Slide 1, Slide 2 are loaded
Slide to the left to Slide 5: Image of Slide 4 is loaded

Actual Behavior

Initial loading: Slide 5, Slide 1, Slide 2 are loaded
Slide to the left to Slide 5: Slide 4 is not loaded.

I think the problem is a wrong index caused by the duplicated slides in loop mode.

We have this exact same problem.

We also encounter this proble. @sixty-nine Did you fount a solution or workaround?

We are also facing the same problem. Do we have any workaround for this ?

@JeroenMetsemakers unfortunately not. We have tried forcing the load of the images with swiper.lazy.load() or swiper.lazy.loadInSlide(index) without much success.
It's always the same image that causes problems and it look definitely related to the count of duplicated images in loop mode.

We have added the following function to set the image src of the last 3 items.
    on: {
      slideChange: function() {
        if (this.activeIndex === 0) {
          this.lazy.loadInSlide(this.slides.length - 3);
        }
      },
    }

How about this ?
`
swiper.slides[swiper.slides.length - 1].querySelector("img").classList.remove("swiper-lazy-loading");
swiper.lazy.loadInSlide(this.el.swiper.slides.length - 1)
`

I have the same issue: seems to be unsolved yet. I could also fix the issue by
  on: {       slideChange: function() {         if (this.activeIndex === 0) {           this.lazy.loadInSlide(this.slides.length - 3);         }       },     }


[Feature Request] Option to disable auto-wrap parentheses

If text is selected, typing a parenthesis adds parens around the selection instead of replacing the selection. I'd love a way to disable that behavior!

Cool, thanks for considering it! I appreciate your app and use it constantly.


CNI environnement not updated between trials (here K8S_TOKEN)

After certificate change on a Kubernetes cluster using Calico CNI, the service accounts where recreated to generate valid tokens. After calico-node pods where recreated, with the right token put in the configuration, containerd (or the CRI plugin?) continued to use the previous and invalid token, resulting in "Unauthorized" errors (see logs below).

Restarting the kubelet didn't resolve the problem.
Restarting containerd did solve the problem.

Steps to reproduce the issue:
(probably)

Setup a Kubernetes cluster with TLS
Schedule a pod
Change all the TLS keys
Schedule a pod

Describe the results you received:
(stripped) log of the error:
utils.go 289: Configured environment: [CNI_COMMAND=ADD CNI_CONTAINERID=5910...a9 CNI_NETNS=/var/run/netns/cni-9ad...0774c CNI_ARGS=IgnoreUnknown=1;IgnoreUnknown=1;K8S_POD_NAMESPACE=test-ns;K8S_POD_NAME=test-pod;K8S_POD_INFRA_CONTAINER_ID=5910...a9 CNI_IFNAME=eth0 CNI_PATH=/opt/cni/bin ip=:dhcp:9000 PWD=/ HOME=/ TERM=linux SHLVL=0 PATH=... ETCD_ENDPOINTS=... KUBECONFIG=/etc/cni/net.d/calico-kubeconfig K8S_API_TOKEN=<OLD TOKEN>]
client.go 202: Loading config from environment
Calico CNI checking for existing endpoint: <nil>
k8s.go 67: Extracted identifiers for CmdAddK8s Node="node-1" Orchestrator="k8s" Workload="test-pod"
level=error msg="RunPodSandbox for &PodSandboxMetadata{Name:test-podb,Uid:a3...3a,Namespace:cdo,Attempt:0,} failed, error" error="failed to setup network for sandbox "5910...a9": Unauthorized"

Describe the results you expected:
utils.go 289: Configured environment: [CNI_COMMAND=ADD CNI_CONTAINERID=5910...a9 CNI_NETNS=/var/run/netns/cni-9ad...0774c CNI_ARGS=IgnoreUnknown=1;IgnoreUnknown=1;K8S_POD_NAMESPACE=test-ns;K8S_POD_NAME=test-pod;K8S_POD_INFRA_CONTAINER_ID=5910...a9 CNI_IFNAME=eth0 CNI_PATH=/opt/cni/bin ip=:dhcp:9000 PWD=/ HOME=/ TERM=linux SHLVL=0 PATH=... ETCD_ENDPOINTS=... KUBECONFIG=/etc/cni/net.d/calico-kubeconfig K8S_API_TOKEN=<SHINNY NEW TOKEN>]

Output of containerd --version:
containerd github.com/containerd/containerd v1.1.0 209a7fc3e4a32ef71a8c7b50c68fc8398415badf

I just deployed a calico cluster using
kubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/rbac-kdd.yaml
kubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml

The calico's cni config using KUBECONFIG=/etc/cni/net.d/calico-kubeconfig to configure k8s api authorization. This file path environment instead of K8S_API_TOKEN will not changed around your TLS changing.

@BSWANG yeah I'm on an aged cluster now :o What you describe is a good solution, but specific to calico, so I still think containerd should catch the change. I can be a low priority issue of course ;)

@Random-Liu yes, it's put this way:
# cat /etc/cni/net.d/10-calico.conf
{
    "name": "k8s-pod-network",
    "cniVersion": "0.1.0",
    "type": "calico",
    "etcd_endpoints": "http://...",
    "etcd_key_file": "...",
    "etcd_cert_file": "...",
    "etcd_ca_cert_file": "...",
    "log_level": "info",
    "mtu": 1500,
    "ipam": {
        "type": "calico-ipam"
    },
    "policy": {
        "type": "k8s",
        "k8s_api_root": "https://<IP_ADDRESS>:443",
        "k8s_auth_token": "<TOKEN DATA>"
    },
    "kubernetes": {
        "kubeconfig": "/etc/cni/net.d/calico-kubeconfig"
    }
}

@mcluseau I see. That is the problem.
We don't allow cni config update intentionally, because some networking config update will just confuse the system. https://github.com/containerd/cri/issues/545
However, I don't know people are using cni config to do this kind of thing...
@abhi What do you think about this? Another "use case"...

@Random-Liu if it's intentional, and taken in account in Calico as noted by @BSWANG (Calico is not using the cni config to store the token anymore), then feel free to close this issue of course. Thanks!

@Random-Liu Yeah I understand this use case. At this point this is a plugin implementation specific scenario. We can discuss.

Fixed by https://github.com/containerd/cri/pull/825